summaryrefslogtreecommitdiff
path: root/source4/librpc/ndr
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc/ndr')
-rw-r--r--source4/librpc/ndr/ndr_lsa.c669
-rw-r--r--source4/librpc/ndr/ndr_lsa.h519
2 files changed, 1099 insertions, 89 deletions
diff --git a/source4/librpc/ndr/ndr_lsa.c b/source4/librpc/ndr/ndr_lsa.c
index 651ba9de08..54c81d2b49 100644
--- a/source4/librpc/ndr/ndr_lsa.c
+++ b/source4/librpc/ndr/ndr_lsa.c
@@ -2,6 +2,85 @@
#include "includes.h"
+NTSTATUS ndr_push_lsa_Close(struct ndr_push *ndr, struct lsa_Close *r)
+{
+ NDR_CHECK(ndr_push_policy_handle(ndr, r->in.handle));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_lsa_Close(struct ndr_pull *ndr, struct lsa_Close *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_lsa_Delete(struct ndr_push *ndr, struct lsa_Delete *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_lsa_Delete(struct ndr_pull *ndr, struct lsa_Delete *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_lsa_EnumPrivs(struct ndr_push *ndr, struct lsa_EnumPrivs *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_lsa_EnumPrivs(struct ndr_pull *ndr, struct lsa_EnumPrivs *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_lsa_QuerySecObj(struct ndr_push *ndr, struct lsa_QuerySecObj *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_lsa_QuerySecObj(struct ndr_pull *ndr, struct lsa_QuerySecObj *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_lsa_SetSecObj(struct ndr_push *ndr, struct lsa_SetSecObj *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_lsa_SetSecObj(struct ndr_pull *ndr, struct lsa_SetSecObj *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_lsa_ChangePassword(struct ndr_push *ndr, struct lsa_ChangePassword *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_lsa_ChangePassword(struct ndr_pull *ndr, struct lsa_ChangePassword *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
static NTSTATUS ndr_push_lsa_QosInfo(struct ndr_push *ndr, int ndr_flags, struct lsa_QosInfo *r)
{
struct ndr_push_save _save1, _save2, _save3;
@@ -154,21 +233,53 @@ NTSTATUS ndr_pull_lsa_OpenPolicy(struct ndr_pull *ndr, struct lsa_OpenPolicy *r)
return NT_STATUS_OK;
}
-NTSTATUS ndr_push_lsa_OpenPolicy2(struct ndr_push *ndr, struct lsa_OpenPolicy2 *r)
+NTSTATUS ndr_push_lsa_QueryInfoPolicy(struct ndr_push *ndr, struct lsa_QueryInfoPolicy *r)
{
- NDR_CHECK(ndr_push_ptr(ndr, r->in.system_name));
- if (r->in.system_name) {
- NDR_CHECK(ndr_push_unistr(ndr, r->in.system_name));
- }
- NDR_CHECK(ndr_push_lsa_ObjectAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.attr));
- NDR_CHECK(ndr_push_uint32(ndr, r->in.desired_access));
return NT_STATUS_OK;
}
-NTSTATUS ndr_pull_lsa_OpenPolicy2(struct ndr_pull *ndr, struct lsa_OpenPolicy2 *r)
+NTSTATUS ndr_pull_lsa_QueryInfoPolicy(struct ndr_pull *ndr, struct lsa_QueryInfoPolicy *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_lsa_SetInfoPolicy(struct ndr_push *ndr, struct lsa_SetInfoPolicy *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_lsa_SetInfoPolicy(struct ndr_pull *ndr, struct lsa_SetInfoPolicy *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_lsa_ClearAuditLog(struct ndr_push *ndr, struct lsa_ClearAuditLog *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_lsa_ClearAuditLog(struct ndr_pull *ndr, struct lsa_ClearAuditLog *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_lsa_CreateAccount(struct ndr_push *ndr, struct lsa_CreateAccount *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_lsa_CreateAccount(struct ndr_pull *ndr, struct lsa_CreateAccount *r)
{
- NDR_CHECK(ndr_pull_policy_handle(ndr, r->out.handle));
NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
return NT_STATUS_OK;
@@ -241,7 +352,7 @@ done:
return NT_STATUS_OK;
}
-NTSTATUS ndr_push_lsa_EnumSids(struct ndr_push *ndr, struct lsa_EnumSids *r)
+NTSTATUS ndr_push_lsa_EnumAccounts(struct ndr_push *ndr, struct lsa_EnumAccounts *r)
{
NDR_CHECK(ndr_push_policy_handle(ndr, r->in.handle));
NDR_CHECK(ndr_push_uint32(ndr, *r->in.resume_handle));
@@ -250,7 +361,7 @@ NTSTATUS ndr_push_lsa_EnumSids(struct ndr_push *ndr, struct lsa_EnumSids *r)
return NT_STATUS_OK;
}
-NTSTATUS ndr_pull_lsa_EnumSids(struct ndr_pull *ndr, struct lsa_EnumSids *r)
+NTSTATUS ndr_pull_lsa_EnumAccounts(struct ndr_pull *ndr, struct lsa_EnumAccounts *r)
{
NDR_CHECK(ndr_pull_uint32(ndr, r->out.resume_handle));
NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sids));
@@ -259,6 +370,32 @@ NTSTATUS ndr_pull_lsa_EnumSids(struct ndr_pull *ndr, struct lsa_EnumSids *r)
return NT_STATUS_OK;
}
+NTSTATUS ndr_push_lsa_CreateTrustDom(struct ndr_push *ndr, struct lsa_CreateTrustDom *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_lsa_CreateTrustDom(struct ndr_pull *ndr, struct lsa_CreateTrustDom *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_lsa_EnumTrustDom(struct ndr_push *ndr, struct lsa_EnumTrustDom *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_lsa_EnumTrustDom(struct ndr_pull *ndr, struct lsa_EnumTrustDom *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
static NTSTATUS ndr_push_lsa_Name(struct ndr_push *ndr, int ndr_flags, struct lsa_Name *r)
{
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
@@ -295,62 +432,60 @@ done:
return NT_STATUS_OK;
}
-static NTSTATUS ndr_push_lsa_TranslatedName(struct ndr_push *ndr, int ndr_flags, struct lsa_TranslatedName *r)
+static NTSTATUS ndr_push_lsa_TranslatedSid(struct ndr_push *ndr, int ndr_flags, struct lsa_TranslatedSid *r)
{
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_push_uint16(ndr, r->sid_type));
- NDR_CHECK(ndr_push_lsa_Name(ndr, NDR_SCALARS, &r->name));
+ NDR_CHECK(ndr_push_uint32(ndr, r->rid));
NDR_CHECK(ndr_push_uint32(ndr, r->sid_index));
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
- NDR_CHECK(ndr_push_lsa_Name(ndr, ndr_flags, &r->name));
done:
return NT_STATUS_OK;
}
-static NTSTATUS ndr_pull_lsa_TranslatedName(struct ndr_pull *ndr, int ndr_flags, struct lsa_TranslatedName *r)
+static NTSTATUS ndr_pull_lsa_TranslatedSid(struct ndr_pull *ndr, int ndr_flags, struct lsa_TranslatedSid *r)
{
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_pull_uint16(ndr, &r->sid_type));
- NDR_CHECK(ndr_pull_lsa_Name(ndr, NDR_SCALARS, &r->name));
+ NDR_CHECK(ndr_pull_uint32(ndr, &r->rid));
NDR_CHECK(ndr_pull_uint32(ndr, &r->sid_index));
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
- NDR_CHECK(ndr_pull_lsa_Name(ndr, ndr_flags, &r->name));
done:
return NT_STATUS_OK;
}
-static NTSTATUS ndr_push_lsa_TransNameArray(struct ndr_push *ndr, int ndr_flags, struct lsa_TransNameArray *r)
+static NTSTATUS ndr_push_lsa_TransSidArray(struct ndr_push *ndr, int ndr_flags, struct lsa_TransSidArray *r)
{
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_push_uint32(ndr, r->count));
- NDR_CHECK(ndr_push_ptr(ndr, r->names));
+ NDR_CHECK(ndr_push_ptr(ndr, r->sids));
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
- if (r->names) {
- NDR_CHECK(ndr_push_array(ndr, ndr_flags, r->names, sizeof(r->names[0]), r->count, (ndr_push_flags_fn_t)ndr_push_lsa_TranslatedName));
+ if (r->sids) {
+ NDR_CHECK(ndr_push_array(ndr, ndr_flags, r->sids, sizeof(r->sids[0]), r->count, (ndr_push_flags_fn_t)ndr_push_lsa_TranslatedSid));
}
done:
return NT_STATUS_OK;
}
-static NTSTATUS ndr_pull_lsa_TransNameArray(struct ndr_pull *ndr, int ndr_flags, struct lsa_TransNameArray *r)
+static NTSTATUS ndr_pull_lsa_TransSidArray(struct ndr_pull *ndr, int ndr_flags, struct lsa_TransSidArray *r)
{
- uint32 _ptr_names;
+ uint32 _ptr_sids;
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_pull_uint32(ndr, &r->count));
- NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_names));
- if (_ptr_names) {
- NDR_ALLOC(ndr, r->names);
+ NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_sids));
+ if (_ptr_sids) {
+ NDR_ALLOC(ndr, r->sids);
} else {
- r->names = NULL;
+ r->sids = NULL;
}
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
- if (r->names) {
- NDR_ALLOC_N_SIZE(ndr, r->names, r->count, sizeof(r->names[0]));
- NDR_CHECK(ndr_pull_array(ndr, ndr_flags, (void **)r->names, sizeof(r->names[0]), r->count, (ndr_pull_flags_fn_t)ndr_pull_lsa_TranslatedName));
+ if (r->sids) {
+ NDR_ALLOC_N_SIZE(ndr, r->sids, r->count, sizeof(r->sids[0]));
+ NDR_CHECK(ndr_pull_array(ndr, ndr_flags, (void **)r->sids, sizeof(r->sids[0]), r->count, (ndr_pull_flags_fn_t)ndr_pull_lsa_TranslatedSid));
}
done:
return NT_STATUS_OK;
@@ -429,18 +564,22 @@ done:
return NT_STATUS_OK;
}
-NTSTATUS ndr_push_lsa_LookupSids(struct ndr_push *ndr, struct lsa_LookupSids *r)
+NTSTATUS ndr_push_lsa_LookupNames(struct ndr_push *ndr, struct lsa_LookupNames *r)
{
NDR_CHECK(ndr_push_policy_handle(ndr, r->in.handle));
- NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
- NDR_CHECK(ndr_push_lsa_TransNameArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.names));
+ NDR_CHECK(ndr_push_uint32(ndr, r->in.num_names));
+ if (r->in.names) {
+ int ndr_flags = NDR_SCALARS|NDR_BUFFERS;
+ NDR_CHECK(ndr_push_array(ndr, ndr_flags, r->in.names, sizeof(r->in.names[0]), r->in.num_names, (ndr_push_flags_fn_t)ndr_push_lsa_Name));
+ }
+ NDR_CHECK(ndr_push_lsa_TransSidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
NDR_CHECK(ndr_push_uint16(ndr, r->in.level));
NDR_CHECK(ndr_push_uint32(ndr, *r->in.count));
return NT_STATUS_OK;
}
-NTSTATUS ndr_pull_lsa_LookupSids(struct ndr_pull *ndr, struct lsa_LookupSids *r)
+NTSTATUS ndr_pull_lsa_LookupNames(struct ndr_pull *ndr, struct lsa_LookupNames *r)
{
uint32 _ptr_domains;
NDR_ALLOC(ndr, r->out.domains);
@@ -453,88 +592,86 @@ NTSTATUS ndr_pull_lsa_LookupSids(struct ndr_pull *ndr, struct lsa_LookupSids *r)
if (r->out.domains) {
NDR_CHECK(ndr_pull_lsa_RefDomainList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.domains));
}
- NDR_CHECK(ndr_pull_lsa_TransNameArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.names));
+ NDR_CHECK(ndr_pull_lsa_TransSidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sids));
NDR_CHECK(ndr_pull_uint32(ndr, r->out.count));
NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
return NT_STATUS_OK;
}
-static NTSTATUS ndr_push_lsa_TranslatedSid(struct ndr_push *ndr, int ndr_flags, struct lsa_TranslatedSid *r)
+static NTSTATUS ndr_push_lsa_TranslatedName(struct ndr_push *ndr, int ndr_flags, struct lsa_TranslatedName *r)
{
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_push_uint16(ndr, r->sid_type));
- NDR_CHECK(ndr_push_uint32(ndr, r->rid));
+ NDR_CHECK(ndr_push_lsa_Name(ndr, NDR_SCALARS, &r->name));
NDR_CHECK(ndr_push_uint32(ndr, r->sid_index));
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
+ NDR_CHECK(ndr_push_lsa_Name(ndr, ndr_flags, &r->name));
done:
return NT_STATUS_OK;
}
-static NTSTATUS ndr_pull_lsa_TranslatedSid(struct ndr_pull *ndr, int ndr_flags, struct lsa_TranslatedSid *r)
+static NTSTATUS ndr_pull_lsa_TranslatedName(struct ndr_pull *ndr, int ndr_flags, struct lsa_TranslatedName *r)
{
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_pull_uint16(ndr, &r->sid_type));
- NDR_CHECK(ndr_pull_uint32(ndr, &r->rid));
+ NDR_CHECK(ndr_pull_lsa_Name(ndr, NDR_SCALARS, &r->name));
NDR_CHECK(ndr_pull_uint32(ndr, &r->sid_index));
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
+ NDR_CHECK(ndr_pull_lsa_Name(ndr, ndr_flags, &r->name));
done:
return NT_STATUS_OK;
}
-static NTSTATUS ndr_push_lsa_TransSidArray(struct ndr_push *ndr, int ndr_flags, struct lsa_TransSidArray *r)
+static NTSTATUS ndr_push_lsa_TransNameArray(struct ndr_push *ndr, int ndr_flags, struct lsa_TransNameArray *r)
{
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_push_uint32(ndr, r->count));
- NDR_CHECK(ndr_push_ptr(ndr, r->sids));
+ NDR_CHECK(ndr_push_ptr(ndr, r->names));
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
- if (r->sids) {
- NDR_CHECK(ndr_push_array(ndr, ndr_flags, r->sids, sizeof(r->sids[0]), r->count, (ndr_push_flags_fn_t)ndr_push_lsa_TranslatedSid));
+ if (r->names) {
+ NDR_CHECK(ndr_push_array(ndr, ndr_flags, r->names, sizeof(r->names[0]), r->count, (ndr_push_flags_fn_t)ndr_push_lsa_TranslatedName));
}
done:
return NT_STATUS_OK;
}
-static NTSTATUS ndr_pull_lsa_TransSidArray(struct ndr_pull *ndr, int ndr_flags, struct lsa_TransSidArray *r)
+static NTSTATUS ndr_pull_lsa_TransNameArray(struct ndr_pull *ndr, int ndr_flags, struct lsa_TransNameArray *r)
{
- uint32 _ptr_sids;
+ uint32 _ptr_names;
if (!(ndr_flags & NDR_SCALARS)) goto buffers;
NDR_CHECK(ndr_pull_uint32(ndr, &r->count));
- NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_sids));
- if (_ptr_sids) {
- NDR_ALLOC(ndr, r->sids);
+ NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_names));
+ if (_ptr_names) {
+ NDR_ALLOC(ndr, r->names);
} else {
- r->sids = NULL;
+ r->names = NULL;
}
buffers:
if (!(ndr_flags & NDR_BUFFERS)) goto done;
- if (r->sids) {
- NDR_ALLOC_N_SIZE(ndr, r->sids, r->count, sizeof(r->sids[0]));
- NDR_CHECK(ndr_pull_array(ndr, ndr_flags, (void **)r->sids, sizeof(r->sids[0]), r->count, (ndr_pull_flags_fn_t)ndr_pull_lsa_TranslatedSid));
+ if (r->names) {
+ NDR_ALLOC_N_SIZE(ndr, r->names, r->count, sizeof(r->names[0]));
+ NDR_CHECK(ndr_pull_array(ndr, ndr_flags, (void **)r->names, sizeof(r->names[0]), r->count, (ndr_pull_flags_fn_t)ndr_pull_lsa_TranslatedName));
}
done:
return NT_STATUS_OK;
}
-NTSTATUS ndr_push_lsa_LookupNames(struct ndr_push *ndr, struct lsa_LookupNames *r)
+NTSTATUS ndr_push_lsa_LookupSids(struct ndr_push *ndr, struct lsa_LookupSids *r)
{
NDR_CHECK(ndr_push_policy_handle(ndr, r->in.handle));
- NDR_CHECK(ndr_push_uint32(ndr, r->in.num_names));
- if (r->in.names) {
- int ndr_flags = NDR_SCALARS|NDR_BUFFERS;
- NDR_CHECK(ndr_push_array(ndr, ndr_flags, r->in.names, sizeof(r->in.names[0]), r->in.num_names, (ndr_push_flags_fn_t)ndr_push_lsa_Name));
- }
- NDR_CHECK(ndr_push_lsa_TransSidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
+ NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
+ NDR_CHECK(ndr_push_lsa_TransNameArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.names));
NDR_CHECK(ndr_push_uint16(ndr, r->in.level));
NDR_CHECK(ndr_push_uint32(ndr, *r->in.count));
return NT_STATUS_OK;
}
-NTSTATUS ndr_pull_lsa_LookupNames(struct ndr_pull *ndr, struct lsa_LookupNames *r)
+NTSTATUS ndr_pull_lsa_LookupSids(struct ndr_pull *ndr, struct lsa_LookupSids *r)
{
uint32 _ptr_domains;
NDR_ALLOC(ndr, r->out.domains);
@@ -547,10 +684,420 @@ NTSTATUS ndr_pull_lsa_LookupNames(struct ndr_pull *ndr, struct lsa_LookupNames *
if (r->out.domains) {
NDR_CHECK(ndr_pull_lsa_RefDomainList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.domains));
}
- NDR_CHECK(ndr_pull_lsa_TransSidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sids));
+ NDR_CHECK(ndr_pull_lsa_TransNameArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.names));
NDR_CHECK(ndr_pull_uint32(ndr, r->out.count));
NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
return NT_STATUS_OK;
}
+NTSTATUS ndr_push_CREATESECRET(struct ndr_push *ndr, struct CREATESECRET *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_CREATESECRET(struct ndr_pull *ndr, struct CREATESECRET *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_OPENACCOUNT(struct ndr_push *ndr, struct OPENACCOUNT *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_OPENACCOUNT(struct ndr_pull *ndr, struct OPENACCOUNT *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_ENUMPRIVSACCOUNT(struct ndr_push *ndr, struct ENUMPRIVSACCOUNT *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_ENUMPRIVSACCOUNT(struct ndr_pull *ndr, struct ENUMPRIVSACCOUNT *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_ADDPRIVS(struct ndr_push *ndr, struct ADDPRIVS *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_ADDPRIVS(struct ndr_pull *ndr, struct ADDPRIVS *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_REMOVEPRIVS(struct ndr_push *ndr, struct REMOVEPRIVS *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_REMOVEPRIVS(struct ndr_pull *ndr, struct REMOVEPRIVS *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_GETQUOTAS(struct ndr_push *ndr, struct GETQUOTAS *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_GETQUOTAS(struct ndr_pull *ndr, struct GETQUOTAS *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_SETQUOTAS(struct ndr_push *ndr, struct SETQUOTAS *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_SETQUOTAS(struct ndr_pull *ndr, struct SETQUOTAS *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_GETSYSTEMACCOUNT(struct ndr_push *ndr, struct GETSYSTEMACCOUNT *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_GETSYSTEMACCOUNT(struct ndr_pull *ndr, struct GETSYSTEMACCOUNT *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_SETSYSTEMACCOUNT(struct ndr_push *ndr, struct SETSYSTEMACCOUNT *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_SETSYSTEMACCOUNT(struct ndr_pull *ndr, struct SETSYSTEMACCOUNT *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_OPENTRUSTDOM(struct ndr_push *ndr, struct OPENTRUSTDOM *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_OPENTRUSTDOM(struct ndr_pull *ndr, struct OPENTRUSTDOM *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_QUERYTRUSTDOM(struct ndr_push *ndr, struct QUERYTRUSTDOM *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_QUERYTRUSTDOM(struct ndr_pull *ndr, struct QUERYTRUSTDOM *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_SETINFOTRUSTDOM(struct ndr_push *ndr, struct SETINFOTRUSTDOM *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_SETINFOTRUSTDOM(struct ndr_pull *ndr, struct SETINFOTRUSTDOM *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_OPENSECRET(struct ndr_push *ndr, struct OPENSECRET *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_OPENSECRET(struct ndr_pull *ndr, struct OPENSECRET *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_SETSECRET(struct ndr_push *ndr, struct SETSECRET *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_SETSECRET(struct ndr_pull *ndr, struct SETSECRET *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_QUERYSECRET(struct ndr_push *ndr, struct QUERYSECRET *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_QUERYSECRET(struct ndr_pull *ndr, struct QUERYSECRET *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_LOOKUPPRIVVALUE(struct ndr_push *ndr, struct LOOKUPPRIVVALUE *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_LOOKUPPRIVVALUE(struct ndr_pull *ndr, struct LOOKUPPRIVVALUE *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_LOOKUPPRIVNAME(struct ndr_push *ndr, struct LOOKUPPRIVNAME *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_LOOKUPPRIVNAME(struct ndr_pull *ndr, struct LOOKUPPRIVNAME *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_PRIV_GET_DISPNAME(struct ndr_push *ndr, struct PRIV_GET_DISPNAME *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_PRIV_GET_DISPNAME(struct ndr_pull *ndr, struct PRIV_GET_DISPNAME *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_DELETEOBJECT(struct ndr_push *ndr, struct DELETEOBJECT *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_DELETEOBJECT(struct ndr_pull *ndr, struct DELETEOBJECT *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_ENUMACCTWITHRIGHT(struct ndr_push *ndr, struct ENUMACCTWITHRIGHT *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_ENUMACCTWITHRIGHT(struct ndr_pull *ndr, struct ENUMACCTWITHRIGHT *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_ENUMACCTRIGHTS(struct ndr_push *ndr, struct ENUMACCTRIGHTS *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_ENUMACCTRIGHTS(struct ndr_pull *ndr, struct ENUMACCTRIGHTS *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_ADDACCTRIGHTS(struct ndr_push *ndr, struct ADDACCTRIGHTS *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_ADDACCTRIGHTS(struct ndr_pull *ndr, struct ADDACCTRIGHTS *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_REMOVEACCTRIGHTS(struct ndr_push *ndr, struct REMOVEACCTRIGHTS *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_REMOVEACCTRIGHTS(struct ndr_pull *ndr, struct REMOVEACCTRIGHTS *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_QUERYTRUSTDOMINFO(struct ndr_push *ndr, struct QUERYTRUSTDOMINFO *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_QUERYTRUSTDOMINFO(struct ndr_pull *ndr, struct QUERYTRUSTDOMINFO *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_SETTRUSTDOMINFO(struct ndr_push *ndr, struct SETTRUSTDOMINFO *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_SETTRUSTDOMINFO(struct ndr_pull *ndr, struct SETTRUSTDOMINFO *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_DELETETRUSTDOM(struct ndr_push *ndr, struct DELETETRUSTDOM *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_DELETETRUSTDOM(struct ndr_pull *ndr, struct DELETETRUSTDOM *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_STOREPRIVDATA(struct ndr_push *ndr, struct STOREPRIVDATA *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_STOREPRIVDATA(struct ndr_pull *ndr, struct STOREPRIVDATA *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_RETRPRIVDATA(struct ndr_push *ndr, struct RETRPRIVDATA *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_RETRPRIVDATA(struct ndr_pull *ndr, struct RETRPRIVDATA *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_lsa_OpenPolicy2(struct ndr_push *ndr, struct lsa_OpenPolicy2 *r)
+{
+ NDR_CHECK(ndr_push_ptr(ndr, r->in.system_name));
+ if (r->in.system_name) {
+ NDR_CHECK(ndr_push_unistr(ndr, r->in.system_name));
+ }
+ NDR_CHECK(ndr_push_lsa_ObjectAttribute(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.attr));
+ NDR_CHECK(ndr_push_uint32(ndr, r->in.desired_access));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_lsa_OpenPolicy2(struct ndr_pull *ndr, struct lsa_OpenPolicy2 *r)
+{
+ NDR_CHECK(ndr_pull_policy_handle(ndr, r->out.handle));
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_UNK_GET_CONNUSER(struct ndr_push *ndr, struct UNK_GET_CONNUSER *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_UNK_GET_CONNUSER(struct ndr_pull *ndr, struct UNK_GET_CONNUSER *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_push_QUERYINFO2(struct ndr_push *ndr, struct QUERYINFO2 *r)
+{
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS ndr_pull_QUERYINFO2(struct ndr_pull *ndr, struct QUERYINFO2 *r)
+{
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result));
+
+ return NT_STATUS_OK;
+}
+
diff --git a/source4/librpc/ndr/ndr_lsa.h b/source4/librpc/ndr/ndr_lsa.h
index ddb0eed323..92f596b692 100644
--- a/source4/librpc/ndr/ndr_lsa.h
+++ b/source4/librpc/ndr/ndr_lsa.h
@@ -1,5 +1,66 @@
/* header auto-generated by pidl */
+struct lsa_Close {
+ struct {
+ struct policy_handle *handle;
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct lsa_Delete {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct lsa_EnumPrivs {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct lsa_QuerySecObj {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct lsa_SetSecObj {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct lsa_ChangePassword {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
struct lsa_QosInfo {
uint16 impersonation_level;
uint8 context_mode;
@@ -28,15 +89,41 @@ struct lsa_OpenPolicy {
};
-struct lsa_OpenPolicy2 {
+struct lsa_QueryInfoPolicy {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct lsa_SetInfoPolicy {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct lsa_ClearAuditLog {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct lsa_CreateAccount {
struct {
- const char *system_name;
- struct lsa_ObjectAttribute *attr;
- uint32 desired_access;
} in;
struct {
- struct policy_handle *handle;
NTSTATUS result;
} out;
@@ -51,7 +138,7 @@ struct lsa_SidArray {
struct lsa_SidPtr *sids;
};
-struct lsa_EnumSids {
+struct lsa_EnumAccounts {
struct {
struct policy_handle *handle;
uint32 *resume_handle;
@@ -66,21 +153,41 @@ struct lsa_EnumSids {
};
+struct lsa_CreateTrustDom {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct lsa_EnumTrustDom {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
struct lsa_Name {
uint16 name_len;
uint16 name_size;
const char *name;
};
-struct lsa_TranslatedName {
+struct lsa_TranslatedSid {
uint16 sid_type;
- struct lsa_Name name;
+ uint32 rid;
uint32 sid_index;
};
-struct lsa_TransNameArray {
+struct lsa_TransSidArray {
uint32 count;
- struct lsa_TranslatedName *names;
+ struct lsa_TranslatedSid *sids;
};
struct lsa_TrustInformation {
@@ -94,56 +201,412 @@ struct lsa_RefDomainList {
uint32 max_count;
};
-struct lsa_LookupSids {
+struct lsa_LookupNames {
struct {
struct policy_handle *handle;
- struct lsa_SidArray *sids;
- struct lsa_TransNameArray *names;
+ uint32 num_names;
+ struct lsa_Name *names;
+ struct lsa_TransSidArray *sids;
uint16 level;
uint32 *count;
} in;
struct {
struct lsa_RefDomainList *domains;
- struct lsa_TransNameArray *names;
+ struct lsa_TransSidArray *sids;
uint32 *count;
NTSTATUS result;
} out;
};
-struct lsa_TranslatedSid {
+struct lsa_TranslatedName {
uint16 sid_type;
- uint32 rid;
+ struct lsa_Name name;
uint32 sid_index;
};
-struct lsa_TransSidArray {
+struct lsa_TransNameArray {
uint32 count;
- struct lsa_TranslatedSid *sids;
+ struct lsa_TranslatedName *names;
};
-struct lsa_LookupNames {
+struct lsa_LookupSids {
struct {
struct policy_handle *handle;
- uint32 num_names;
- struct lsa_Name *names;
- struct lsa_TransSidArray *sids;
+ struct lsa_SidArray *sids;
+ struct lsa_TransNameArray *names;
uint16 level;
uint32 *count;
} in;
struct {
struct lsa_RefDomainList *domains;
- struct lsa_TransSidArray *sids;
+ struct lsa_TransNameArray *names;
uint32 *count;
NTSTATUS result;
} out;
};
-#define DCERPC_LSA_OPENPOLICY 0
-#define DCERPC_LSA_OPENPOLICY2 1
-#define DCERPC_LSA_ENUMSIDS 2
-#define DCERPC_LSA_LOOKUPSIDS 3
-#define DCERPC_LSA_LOOKUPNAMES 4
+struct CREATESECRET {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct OPENACCOUNT {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct ENUMPRIVSACCOUNT {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct ADDPRIVS {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct REMOVEPRIVS {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct GETQUOTAS {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct SETQUOTAS {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct GETSYSTEMACCOUNT {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct SETSYSTEMACCOUNT {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct OPENTRUSTDOM {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct QUERYTRUSTDOM {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct SETINFOTRUSTDOM {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct OPENSECRET {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct SETSECRET {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct QUERYSECRET {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct LOOKUPPRIVVALUE {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct LOOKUPPRIVNAME {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct PRIV_GET_DISPNAME {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct DELETEOBJECT {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct ENUMACCTWITHRIGHT {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct ENUMACCTRIGHTS {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct ADDACCTRIGHTS {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct REMOVEACCTRIGHTS {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct QUERYTRUSTDOMINFO {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct SETTRUSTDOMINFO {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct DELETETRUSTDOM {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct STOREPRIVDATA {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct RETRPRIVDATA {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct lsa_OpenPolicy2 {
+ struct {
+ const char *system_name;
+ struct lsa_ObjectAttribute *attr;
+ uint32 desired_access;
+ } in;
+
+ struct {
+ struct policy_handle *handle;
+ NTSTATUS result;
+ } out;
+
+};
+
+struct UNK_GET_CONNUSER {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+struct QUERYINFO2 {
+ struct {
+ } in;
+
+ struct {
+ NTSTATUS result;
+ } out;
+
+};
+
+#define DCERPC_LSA_CLOSE 0
+#define DCERPC_LSA_DELETE 1
+#define DCERPC_LSA_ENUMPRIVS 2
+#define DCERPC_LSA_QUERYSECOBJ 3
+#define DCERPC_LSA_SETSECOBJ 4
+#define DCERPC_LSA_CHANGEPASSWORD 5
+#define DCERPC_LSA_OPENPOLICY 6
+#define DCERPC_LSA_QUERYINFOPOLICY 7
+#define DCERPC_LSA_SETINFOPOLICY 8
+#define DCERPC_LSA_CLEARAUDITLOG 9
+#define DCERPC_LSA_CREATEACCOUNT 10
+#define DCERPC_LSA_ENUMACCOUNTS 11
+#define DCERPC_LSA_CREATETRUSTDOM 12
+#define DCERPC_LSA_ENUMTRUSTDOM 13
+#define DCERPC_LSA_LOOKUPNAMES 14
+#define DCERPC_LSA_LOOKUPSIDS 15
+#define DCERPC_CREATESECRET 16
+#define DCERPC_OPENACCOUNT 17
+#define DCERPC_ENUMPRIVSACCOUNT 18
+#define DCERPC_ADDPRIVS 19
+#define DCERPC_REMOVEPRIVS 20
+#define DCERPC_GETQUOTAS 21
+#define DCERPC_SETQUOTAS 22
+#define DCERPC_GETSYSTEMACCOUNT 23
+#define DCERPC_SETSYSTEMACCOUNT 24
+#define DCERPC_OPENTRUSTDOM 25
+#define DCERPC_QUERYTRUSTDOM 26
+#define DCERPC_SETINFOTRUSTDOM 27
+#define DCERPC_OPENSECRET 28
+#define DCERPC_SETSECRET 29
+#define DCERPC_QUERYSECRET 30
+#define DCERPC_LOOKUPPRIVVALUE 31
+#define DCERPC_LOOKUPPRIVNAME 32
+#define DCERPC_PRIV_GET_DISPNAME 33
+#define DCERPC_DELETEOBJECT 34
+#define DCERPC_ENUMACCTWITHRIGHT 35
+#define DCERPC_ENUMACCTRIGHTS 36
+#define DCERPC_ADDACCTRIGHTS 37
+#define DCERPC_REMOVEACCTRIGHTS 38
+#define DCERPC_QUERYTRUSTDOMINFO 39
+#define DCERPC_SETTRUSTDOMINFO 40
+#define DCERPC_DELETETRUSTDOM 41
+#define DCERPC_STOREPRIVDATA 42
+#define DCERPC_RETRPRIVDATA 43
+#define DCERPC_LSA_OPENPOLICY2 44
+#define DCERPC_UNK_GET_CONNUSER 45
+#define DCERPC_QUERYINFO2 46