summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc')
-rw-r--r--source4/librpc/idl/lsa.idl179
-rw-r--r--source4/librpc/ndr/ndr_lsa.c669
-rw-r--r--source4/librpc/ndr/ndr_lsa.h519
-rw-r--r--source4/librpc/rpc/rpc_echo.c40
-rw-r--r--source4/librpc/rpc/rpc_lsa.c662
5 files changed, 1861 insertions, 208 deletions
diff --git a/source4/librpc/idl/lsa.idl b/source4/librpc/idl/lsa.idl
index 886b8fd225..f71a4e4c8c 100644
--- a/source4/librpc/idl/lsa.idl
+++ b/source4/librpc/idl/lsa.idl
@@ -7,7 +7,35 @@
pointer_default(unique)
] interface lsarpc
{
+ /******************/
+ /* Function: 0x00 */
+ NTSTATUS lsa_Close (
+ [in,ref] policy_handle *handle
+ );
+ /******************/
+ /* Function: 0x01 */
+ NTSTATUS lsa_Delete ();
+
+ /******************/
+ /* Function: 0x02 */
+ NTSTATUS lsa_EnumPrivs ();
+
+ /******************/
+ /* Function: 0x03 */
+ NTSTATUS lsa_QuerySecObj ();
+
+ /******************/
+ /* Function: 0x04 */
+ NTSTATUS lsa_SetSecObj ();
+
+ /******************/
+ /* Function: 0x05 */
+ NTSTATUS lsa_ChangePassword ();
+
+
+ /******************/
+ /* Function: 0x06 */
typedef struct {
[struct_len] uint32 _len;
uint16 impersonation_level;
@@ -31,13 +59,26 @@
[out,ref] policy_handle *handle
);
- NTSTATUS lsa_OpenPolicy2 (
- [in] unistr *system_name,
- [in,ref] lsa_ObjectAttribute *attr,
- [in] uint32 desired_access,
- [out,ref] policy_handle *handle
- );
+ /******************/
+ /* Function: 0x07 */
+ NTSTATUS lsa_QueryInfoPolicy ();
+
+ /******************/
+ /* Function: 0x08 */
+ NTSTATUS lsa_SetInfoPolicy ();
+
+ /******************/
+ /* Function: 0x09 */
+ NTSTATUS lsa_ClearAuditLog ();
+
+ /******************/
+ /* Function: 0x0a */
+ NTSTATUS lsa_CreateAccount ();
+
+
+ /******************/
+ /* Function: 0x0b */
typedef struct {
dom_sid2 *sid;
} lsa_SidPtr;
@@ -47,13 +88,26 @@
[size_is(num_sids)] lsa_SidPtr *sids;
} lsa_SidArray;
- NTSTATUS lsa_EnumSids (
+ NTSTATUS lsa_EnumAccounts (
[in,ref] policy_handle *handle,
[in,out,ref] uint32 *resume_handle,
[in] uint32 num_entries,
[out,ref] lsa_SidArray *sids
);
+
+ /*************************************************/
+ /* Function: 0x0c */
+ NTSTATUS lsa_CreateTrustDom ();
+
+ /******************/
+ /* Function: 0x0d */
+ NTSTATUS lsa_EnumTrustDom ();
+
+
+ /******************/
+ /* Function: 0x0e */
+
typedef struct {
uint16 name_len;
uint16 name_size;
@@ -62,14 +116,14 @@
typedef struct {
uint16 sid_type;
- lsa_Name name;
+ uint32 rid;
uint32 sid_index;
- } lsa_TranslatedName;
+ } lsa_TranslatedSid;
typedef struct {
uint32 count;
- [size_is(count)] lsa_TranslatedName *names;
- } lsa_TransNameArray;
+ [size_is(count)] lsa_TranslatedSid *sids;
+ } lsa_TransSidArray;
typedef struct {
lsa_Name name;
@@ -82,33 +136,114 @@
uint32 max_count;
} lsa_RefDomainList;
- NTSTATUS lsa_LookupSids (
+ NTSTATUS lsa_LookupNames (
[in,ref] policy_handle *handle,
- [in,ref] lsa_SidArray *sids,
+ [in] uint32 num_names,
+ [in,ref,size_is(num_names)] lsa_Name *names,
[out] lsa_RefDomainList *domains,
- [in,out,ref] lsa_TransNameArray *names,
+ [in,out,ref] lsa_TransSidArray *sids,
[in] uint16 level,
[in,out,ref] uint32 *count
);
+
+ /******************/
+ /* Function: 0x0f */
+
typedef struct {
uint16 sid_type;
- uint32 rid;
+ lsa_Name name;
uint32 sid_index;
- } lsa_TranslatedSid;
+ } lsa_TranslatedName;
typedef struct {
uint32 count;
- [size_is(count)] lsa_TranslatedSid *sids;
- } lsa_TransSidArray;
+ [size_is(count)] lsa_TranslatedName *names;
+ } lsa_TransNameArray;
- NTSTATUS lsa_LookupNames (
+ NTSTATUS lsa_LookupSids (
[in,ref] policy_handle *handle,
- [in] uint32 num_names,
- [in,ref,size_is(num_names)] lsa_Name *names,
+ [in,ref] lsa_SidArray *sids,
[out] lsa_RefDomainList *domains,
- [in,out,ref] lsa_TransSidArray *sids,
+ [in,out,ref] lsa_TransNameArray *names,
[in] uint16 level,
[in,out,ref] uint32 *count
);
+
+
+ /* Function: 0x10 */
+ NTSTATUS CREATESECRET ();
+ /* Function: 0x11 */
+ NTSTATUS OPENACCOUNT ();
+ /* Function: 0x12 */
+ NTSTATUS ENUMPRIVSACCOUNT ();
+ /* Function: 0x13 */
+ NTSTATUS ADDPRIVS ();
+ /* Function: 0x14 */
+ NTSTATUS REMOVEPRIVS ();
+ /* Function: 0x15 */
+ NTSTATUS GETQUOTAS ();
+ /* Function: 0x16 */
+ NTSTATUS SETQUOTAS ();
+ /* Function: 0x17 */
+ NTSTATUS GETSYSTEMACCOUNT ();
+ /* Function: 0x18 */
+ NTSTATUS SETSYSTEMACCOUNT ();
+ /* Function: 0x19 */
+ NTSTATUS OPENTRUSTDOM ();
+ /* Function: 0x1a */
+ NTSTATUS QUERYTRUSTDOM ();
+ /* Function: 0x1b */
+ NTSTATUS SETINFOTRUSTDOM ();
+ /* Function: 0x1c */
+ NTSTATUS OPENSECRET ();
+ /* Function: 0x1d */
+ NTSTATUS SETSECRET ();
+ /* Function: 0x1e */
+ NTSTATUS QUERYSECRET ();
+ /* Function: 0x1f */
+ NTSTATUS LOOKUPPRIVVALUE ();
+ /* Function: 0x20 */
+ NTSTATUS LOOKUPPRIVNAME ();
+ /* Function: 0x21 */
+ NTSTATUS PRIV_GET_DISPNAME ();
+ /* Function: 0x22 */
+ NTSTATUS DELETEOBJECT ();
+ /* Function: 0x23 */
+ NTSTATUS ENUMACCTWITHRIGHT ();
+ /* Function: 0x24 */
+ NTSTATUS ENUMACCTRIGHTS ();
+ /* Function: 0x25 */
+ NTSTATUS ADDACCTRIGHTS ();
+ /* Function: 0x26 */
+ NTSTATUS REMOVEACCTRIGHTS ();
+ /* Function: 0x27 */
+ NTSTATUS QUERYTRUSTDOMINFO ();
+ /* Function: 0x28 */
+ NTSTATUS SETTRUSTDOMINFO ();
+ /* Function: 0x29 */
+ NTSTATUS DELETETRUSTDOM ();
+ /* Function: 0x2a */
+ NTSTATUS STOREPRIVDATA ();
+ /* Function: 0x2b */
+ NTSTATUS RETRPRIVDATA ();
+
+
+ /**********************/
+ /* Function: 0x2c */
+ NTSTATUS lsa_OpenPolicy2 (
+ [in] unistr *system_name,
+ [in,ref] lsa_ObjectAttribute *attr,
+ [in] uint32 desired_access,
+ [out,ref] policy_handle *handle
+ );
+
+
+ /* Function: 0x2d */
+ NTSTATUS UNK_GET_CONNUSER ();
+ /* Function: 0x2e */
+ NTSTATUS QUERYINFO2 ();
+
+
+
}
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
diff --git a/source4/librpc/rpc/rpc_echo.c b/source4/librpc/rpc/rpc_echo.c
index 9cf81a23ac..e5cbb913a1 100644
--- a/source4/librpc/rpc/rpc_echo.c
+++ b/source4/librpc/rpc/rpc_echo.c
@@ -1,30 +1,9 @@
-/*
- Unix SMB/CIFS implementation.
-
- rpc echo pipe calls
-
- Copyright (C) Andrew Tridgell 2003
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
+/* dcerpc client calls auto-generated by pidl */
#include "includes.h"
-NTSTATUS dcerpc_echo_AddOne(struct dcerpc_pipe *p,
- TALLOC_CTX *mem_ctx,
- struct echo_AddOne *r)
+
+NTSTATUS dcerpc_echo_AddOne(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct echo_AddOne *r)
{
return dcerpc_ndr_request(p, DCERPC_ECHO_ADDONE, mem_ctx,
(ndr_push_fn_t) ndr_push_echo_AddOne,
@@ -32,10 +11,7 @@ NTSTATUS dcerpc_echo_AddOne(struct dcerpc_pipe *p,
r);
}
-
-NTSTATUS dcerpc_echo_EchoData(struct dcerpc_pipe *p,
- TALLOC_CTX *mem_ctx,
- struct echo_EchoData *r)
+NTSTATUS dcerpc_echo_EchoData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct echo_EchoData *r)
{
return dcerpc_ndr_request(p, DCERPC_ECHO_ECHODATA, mem_ctx,
(ndr_push_fn_t) ndr_push_echo_EchoData,
@@ -43,9 +19,7 @@ NTSTATUS dcerpc_echo_EchoData(struct dcerpc_pipe *p,
r);
}
-NTSTATUS dcerpc_echo_SinkData(struct dcerpc_pipe *p,
- TALLOC_CTX *mem_ctx,
- struct echo_SinkData *r)
+NTSTATUS dcerpc_echo_SinkData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct echo_SinkData *r)
{
return dcerpc_ndr_request(p, DCERPC_ECHO_SINKDATA, mem_ctx,
(ndr_push_fn_t) ndr_push_echo_SinkData,
@@ -53,9 +27,7 @@ NTSTATUS dcerpc_echo_SinkData(struct dcerpc_pipe *p,
r);
}
-NTSTATUS dcerpc_echo_SourceData(struct dcerpc_pipe *p,
- TALLOC_CTX *mem_ctx,
- struct echo_SourceData *r)
+NTSTATUS dcerpc_echo_SourceData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct echo_SourceData *r)
{
return dcerpc_ndr_request(p, DCERPC_ECHO_SOURCEDATA, mem_ctx,
(ndr_push_fn_t) ndr_push_echo_SourceData,
diff --git a/source4/librpc/rpc/rpc_lsa.c b/source4/librpc/rpc/rpc_lsa.c
index ee8075d5bd..bc2f00c33d 100644
--- a/source4/librpc/rpc/rpc_lsa.c
+++ b/source4/librpc/rpc/rpc_lsa.c
@@ -1,38 +1,96 @@
-/*
- Unix SMB/CIFS implementation.
-
- rpc lsa pipe calls
-
- Copyright (C) Andrew Tridgell 2003
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
+/* dcerpc client calls auto-generated by pidl */
#include "includes.h"
-/*
- OpenPolicy interface
-*/
-NTSTATUS dcerpc_lsa_OpenPolicy(struct dcerpc_pipe *p,
- TALLOC_CTX *mem_ctx,
- struct lsa_OpenPolicy *r)
+NTSTATUS dcerpc_lsa_Close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_Close *r)
{
NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_CLOSE, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_Close,
+ (ndr_pull_fn_t) ndr_pull_lsa_Close,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_lsa_Delete(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_Delete *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_DELETE, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_Delete,
+ (ndr_pull_fn_t) ndr_pull_lsa_Delete,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_lsa_EnumPrivs(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_EnumPrivs *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_ENUMPRIVS, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_EnumPrivs,
+ (ndr_pull_fn_t) ndr_pull_lsa_EnumPrivs,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_lsa_QuerySecObj(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_QuerySecObj *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_QUERYSECOBJ, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_QuerySecObj,
+ (ndr_pull_fn_t) ndr_pull_lsa_QuerySecObj,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_lsa_SetSecObj(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_SetSecObj *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_SETSECOBJ, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_SetSecObj,
+ (ndr_pull_fn_t) ndr_pull_lsa_SetSecObj,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_lsa_ChangePassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_ChangePassword *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_CHANGEPASSWORD, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_ChangePassword,
+ (ndr_pull_fn_t) ndr_pull_lsa_ChangePassword,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
- status = dcerpc_ndr_request(p, LSA_OPENPOLICY, mem_ctx,
+NTSTATUS dcerpc_lsa_OpenPolicy(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_OpenPolicy *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_OPENPOLICY, mem_ctx,
(ndr_push_fn_t) ndr_push_lsa_OpenPolicy,
(ndr_pull_fn_t) ndr_pull_lsa_OpenPolicy,
r);
@@ -43,40 +101,82 @@ NTSTATUS dcerpc_lsa_OpenPolicy(struct dcerpc_pipe *p,
return r->out.result;
}
+NTSTATUS dcerpc_lsa_QueryInfoPolicy(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_QueryInfoPolicy *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_QUERYINFOPOLICY, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_QueryInfoPolicy,
+ (ndr_pull_fn_t) ndr_pull_lsa_QueryInfoPolicy,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
-/*
- OpenPolicy2 interface
-*/
-NTSTATUS dcerpc_lsa_OpenPolicy2(struct dcerpc_pipe *p,
- TALLOC_CTX *mem_ctx,
- struct lsa_OpenPolicy2 *r)
+NTSTATUS dcerpc_lsa_SetInfoPolicy(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_SetInfoPolicy *r)
{
NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_SETINFOPOLICY, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_SetInfoPolicy,
+ (ndr_pull_fn_t) ndr_pull_lsa_SetInfoPolicy,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
- status = dcerpc_ndr_request(p, LSA_OPENPOLICY2, mem_ctx,
- (ndr_push_fn_t) ndr_push_lsa_OpenPolicy2,
- (ndr_pull_fn_t) ndr_pull_lsa_OpenPolicy2,
+NTSTATUS dcerpc_lsa_ClearAuditLog(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_ClearAuditLog *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_CLEARAUDITLOG, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_ClearAuditLog,
+ (ndr_pull_fn_t) ndr_pull_lsa_ClearAuditLog,
r);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
+
+ return r->out.result;
+}
+NTSTATUS dcerpc_lsa_CreateAccount(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_CreateAccount *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_CREATEACCOUNT, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_CreateAccount,
+ (ndr_pull_fn_t) ndr_pull_lsa_CreateAccount,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
return r->out.result;
}
-/*
- EnumSids interface
-*/
-NTSTATUS dcerpc_lsa_EnumSids(struct dcerpc_pipe *p,
- TALLOC_CTX *mem_ctx,
- struct lsa_EnumSids *r)
+NTSTATUS dcerpc_lsa_EnumAccounts(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_EnumAccounts *r)
{
NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_ENUMACCOUNTS, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_EnumAccounts,
+ (ndr_pull_fn_t) ndr_pull_lsa_EnumAccounts,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
- /* make the call */
- status = dcerpc_ndr_request(p, LSA_ENUM_ACCOUNTS, mem_ctx,
- (ndr_push_fn_t) ndr_push_lsa_EnumSids,
- (ndr_pull_fn_t) ndr_pull_lsa_EnumSids,
+NTSTATUS dcerpc_lsa_CreateTrustDom(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_CreateTrustDom *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_CREATETRUSTDOM, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_CreateTrustDom,
+ (ndr_pull_fn_t) ndr_pull_lsa_CreateTrustDom,
r);
if (!NT_STATUS_IS_OK(status)) {
return status;
@@ -85,16 +185,38 @@ NTSTATUS dcerpc_lsa_EnumSids(struct dcerpc_pipe *p,
return r->out.result;
}
-/*
- LookupSids interface
-*/
-NTSTATUS dcerpc_lsa_LookupSids(struct dcerpc_pipe *p,
- TALLOC_CTX *mem_ctx,
- struct lsa_LookupSids *r)
+NTSTATUS dcerpc_lsa_EnumTrustDom(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_EnumTrustDom *r)
{
NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_ENUMTRUSTDOM, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_EnumTrustDom,
+ (ndr_pull_fn_t) ndr_pull_lsa_EnumTrustDom,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
- status = dcerpc_ndr_request(p, LSA_LOOKUPSIDS, mem_ctx,
+NTSTATUS dcerpc_lsa_LookupNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_LookupNames *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_LOOKUPNAMES, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_LookupNames,
+ (ndr_pull_fn_t) ndr_pull_lsa_LookupNames,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_lsa_LookupSids(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_LookupSids *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_LOOKUPSIDS, mem_ctx,
(ndr_push_fn_t) ndr_push_lsa_LookupSids,
(ndr_pull_fn_t) ndr_pull_lsa_LookupSids,
r);
@@ -105,18 +227,432 @@ NTSTATUS dcerpc_lsa_LookupSids(struct dcerpc_pipe *p,
return r->out.result;
}
-/*
- LookupNames interface
-*/
-NTSTATUS dcerpc_lsa_LookupNames(struct dcerpc_pipe *p,
- TALLOC_CTX *mem_ctx,
- struct lsa_LookupNames *r)
+NTSTATUS dcerpc_CREATESECRET(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct CREATESECRET *r)
{
NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_CREATESECRET, mem_ctx,
+ (ndr_push_fn_t) ndr_push_CREATESECRET,
+ (ndr_pull_fn_t) ndr_pull_CREATESECRET,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
- status = dcerpc_ndr_request(p, LSA_LOOKUPNAMES, mem_ctx,
- (ndr_push_fn_t) ndr_push_lsa_LookupNames,
- (ndr_pull_fn_t) ndr_pull_lsa_LookupNames,
+NTSTATUS dcerpc_OPENACCOUNT(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct OPENACCOUNT *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_OPENACCOUNT, mem_ctx,
+ (ndr_push_fn_t) ndr_push_OPENACCOUNT,
+ (ndr_pull_fn_t) ndr_pull_OPENACCOUNT,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_ENUMPRIVSACCOUNT(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct ENUMPRIVSACCOUNT *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_ENUMPRIVSACCOUNT, mem_ctx,
+ (ndr_push_fn_t) ndr_push_ENUMPRIVSACCOUNT,
+ (ndr_pull_fn_t) ndr_pull_ENUMPRIVSACCOUNT,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_ADDPRIVS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct ADDPRIVS *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_ADDPRIVS, mem_ctx,
+ (ndr_push_fn_t) ndr_push_ADDPRIVS,
+ (ndr_pull_fn_t) ndr_pull_ADDPRIVS,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_REMOVEPRIVS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct REMOVEPRIVS *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_REMOVEPRIVS, mem_ctx,
+ (ndr_push_fn_t) ndr_push_REMOVEPRIVS,
+ (ndr_pull_fn_t) ndr_pull_REMOVEPRIVS,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_GETQUOTAS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct GETQUOTAS *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_GETQUOTAS, mem_ctx,
+ (ndr_push_fn_t) ndr_push_GETQUOTAS,
+ (ndr_pull_fn_t) ndr_pull_GETQUOTAS,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_SETQUOTAS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct SETQUOTAS *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_SETQUOTAS, mem_ctx,
+ (ndr_push_fn_t) ndr_push_SETQUOTAS,
+ (ndr_pull_fn_t) ndr_pull_SETQUOTAS,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_GETSYSTEMACCOUNT(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct GETSYSTEMACCOUNT *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_GETSYSTEMACCOUNT, mem_ctx,
+ (ndr_push_fn_t) ndr_push_GETSYSTEMACCOUNT,
+ (ndr_pull_fn_t) ndr_pull_GETSYSTEMACCOUNT,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_SETSYSTEMACCOUNT(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct SETSYSTEMACCOUNT *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_SETSYSTEMACCOUNT, mem_ctx,
+ (ndr_push_fn_t) ndr_push_SETSYSTEMACCOUNT,
+ (ndr_pull_fn_t) ndr_pull_SETSYSTEMACCOUNT,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_OPENTRUSTDOM(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct OPENTRUSTDOM *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_OPENTRUSTDOM, mem_ctx,
+ (ndr_push_fn_t) ndr_push_OPENTRUSTDOM,
+ (ndr_pull_fn_t) ndr_pull_OPENTRUSTDOM,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_QUERYTRUSTDOM(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct QUERYTRUSTDOM *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_QUERYTRUSTDOM, mem_ctx,
+ (ndr_push_fn_t) ndr_push_QUERYTRUSTDOM,
+ (ndr_pull_fn_t) ndr_pull_QUERYTRUSTDOM,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_SETINFOTRUSTDOM(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct SETINFOTRUSTDOM *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_SETINFOTRUSTDOM, mem_ctx,
+ (ndr_push_fn_t) ndr_push_SETINFOTRUSTDOM,
+ (ndr_pull_fn_t) ndr_pull_SETINFOTRUSTDOM,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_OPENSECRET(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct OPENSECRET *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_OPENSECRET, mem_ctx,
+ (ndr_push_fn_t) ndr_push_OPENSECRET,
+ (ndr_pull_fn_t) ndr_pull_OPENSECRET,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_SETSECRET(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct SETSECRET *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_SETSECRET, mem_ctx,
+ (ndr_push_fn_t) ndr_push_SETSECRET,
+ (ndr_pull_fn_t) ndr_pull_SETSECRET,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_QUERYSECRET(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct QUERYSECRET *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_QUERYSECRET, mem_ctx,
+ (ndr_push_fn_t) ndr_push_QUERYSECRET,
+ (ndr_pull_fn_t) ndr_pull_QUERYSECRET,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_LOOKUPPRIVVALUE(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct LOOKUPPRIVVALUE *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LOOKUPPRIVVALUE, mem_ctx,
+ (ndr_push_fn_t) ndr_push_LOOKUPPRIVVALUE,
+ (ndr_pull_fn_t) ndr_pull_LOOKUPPRIVVALUE,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_LOOKUPPRIVNAME(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct LOOKUPPRIVNAME *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LOOKUPPRIVNAME, mem_ctx,
+ (ndr_push_fn_t) ndr_push_LOOKUPPRIVNAME,
+ (ndr_pull_fn_t) ndr_pull_LOOKUPPRIVNAME,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_PRIV_GET_DISPNAME(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct PRIV_GET_DISPNAME *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_PRIV_GET_DISPNAME, mem_ctx,
+ (ndr_push_fn_t) ndr_push_PRIV_GET_DISPNAME,
+ (ndr_pull_fn_t) ndr_pull_PRIV_GET_DISPNAME,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_DELETEOBJECT(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct DELETEOBJECT *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_DELETEOBJECT, mem_ctx,
+ (ndr_push_fn_t) ndr_push_DELETEOBJECT,
+ (ndr_pull_fn_t) ndr_pull_DELETEOBJECT,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_ENUMACCTWITHRIGHT(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct ENUMACCTWITHRIGHT *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_ENUMACCTWITHRIGHT, mem_ctx,
+ (ndr_push_fn_t) ndr_push_ENUMACCTWITHRIGHT,
+ (ndr_pull_fn_t) ndr_pull_ENUMACCTWITHRIGHT,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_ENUMACCTRIGHTS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct ENUMACCTRIGHTS *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_ENUMACCTRIGHTS, mem_ctx,
+ (ndr_push_fn_t) ndr_push_ENUMACCTRIGHTS,
+ (ndr_pull_fn_t) ndr_pull_ENUMACCTRIGHTS,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_ADDACCTRIGHTS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct ADDACCTRIGHTS *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_ADDACCTRIGHTS, mem_ctx,
+ (ndr_push_fn_t) ndr_push_ADDACCTRIGHTS,
+ (ndr_pull_fn_t) ndr_pull_ADDACCTRIGHTS,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_REMOVEACCTRIGHTS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct REMOVEACCTRIGHTS *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_REMOVEACCTRIGHTS, mem_ctx,
+ (ndr_push_fn_t) ndr_push_REMOVEACCTRIGHTS,
+ (ndr_pull_fn_t) ndr_pull_REMOVEACCTRIGHTS,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_QUERYTRUSTDOMINFO(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct QUERYTRUSTDOMINFO *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_QUERYTRUSTDOMINFO, mem_ctx,
+ (ndr_push_fn_t) ndr_push_QUERYTRUSTDOMINFO,
+ (ndr_pull_fn_t) ndr_pull_QUERYTRUSTDOMINFO,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_SETTRUSTDOMINFO(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct SETTRUSTDOMINFO *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_SETTRUSTDOMINFO, mem_ctx,
+ (ndr_push_fn_t) ndr_push_SETTRUSTDOMINFO,
+ (ndr_pull_fn_t) ndr_pull_SETTRUSTDOMINFO,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_DELETETRUSTDOM(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct DELETETRUSTDOM *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_DELETETRUSTDOM, mem_ctx,
+ (ndr_push_fn_t) ndr_push_DELETETRUSTDOM,
+ (ndr_pull_fn_t) ndr_pull_DELETETRUSTDOM,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_STOREPRIVDATA(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct STOREPRIVDATA *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_STOREPRIVDATA, mem_ctx,
+ (ndr_push_fn_t) ndr_push_STOREPRIVDATA,
+ (ndr_pull_fn_t) ndr_pull_STOREPRIVDATA,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_RETRPRIVDATA(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct RETRPRIVDATA *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_RETRPRIVDATA, mem_ctx,
+ (ndr_push_fn_t) ndr_push_RETRPRIVDATA,
+ (ndr_pull_fn_t) ndr_pull_RETRPRIVDATA,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_lsa_OpenPolicy2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct lsa_OpenPolicy2 *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_LSA_OPENPOLICY2, mem_ctx,
+ (ndr_push_fn_t) ndr_push_lsa_OpenPolicy2,
+ (ndr_pull_fn_t) ndr_pull_lsa_OpenPolicy2,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_UNK_GET_CONNUSER(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct UNK_GET_CONNUSER *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_UNK_GET_CONNUSER, mem_ctx,
+ (ndr_push_fn_t) ndr_push_UNK_GET_CONNUSER,
+ (ndr_pull_fn_t) ndr_pull_UNK_GET_CONNUSER,
+ r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r->out.result;
+}
+
+NTSTATUS dcerpc_QUERYINFO2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct QUERYINFO2 *r)
+{
+ NTSTATUS status;
+ status = dcerpc_ndr_request(p, DCERPC_QUERYINFO2, mem_ctx,
+ (ndr_push_fn_t) ndr_push_QUERYINFO2,
+ (ndr_pull_fn_t) ndr_pull_QUERYINFO2,
r);
if (!NT_STATUS_IS_OK(status)) {
return status;