From ba5a060136145abdfa4915fe0fecc4afe1180627 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 15 Nov 2003 06:00:21 +0000 Subject: added the first couple of calls from samr as IDL samr_EnumDomains() works nicely (This used to be commit 7c162eaf3bb0195f9a2da05d6acd3c8e620f08d1) --- source4/librpc/idl/samr.idl | 317 +++++++++++++ source4/librpc/ndr/libndr.h | 2 + source4/librpc/ndr/ndr_samr.c | 1018 +++++++++++++++++++++++++++++++++++++++++ source4/librpc/ndr/ndr_samr.h | 779 +++++++++++++++++++++++++++++++ source4/librpc/rpc/rpc_samr.c | 956 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 3072 insertions(+) create mode 100644 source4/librpc/idl/samr.idl create mode 100644 source4/librpc/ndr/ndr_samr.c create mode 100644 source4/librpc/ndr/ndr_samr.h create mode 100644 source4/librpc/rpc/rpc_samr.c (limited to 'source4/librpc') diff --git a/source4/librpc/idl/samr.idl b/source4/librpc/idl/samr.idl new file mode 100644 index 0000000000..fd71c49369 --- /dev/null +++ b/source4/librpc/idl/samr.idl @@ -0,0 +1,317 @@ +/* + samr interface definition +*/ + +[ uuid(12345778-1234-abcd-ef00-0123456789ac), + version(1.0), + pointer_default(unique) +] interface lsarpc +{ + /******************/ + /* Function: 0x00 */ + NTSTATUS samr_Connect ( + /* notice the lack of [string] */ + [in] uint16 *system_name, + [in] uint32 access_mask, + [out,ref] policy_handle *handle + ); + + + /******************/ + /* Function: 0x01 */ + NTSTATUS samr_Close (); + + /******************/ + /* Function: 0x02 */ + NTSTATUS samr_SetSecurity (); + + /******************/ + /* Function: 0x03 */ + NTSTATUS samr_QuerySecurity (); + + /******************/ + /* Function: 0x04 */ + NTSTATUS samr_Shutdown (); + + /******************/ + /* Function: 0x05 */ + NTSTATUS samr_LookupDomain (); + + /******************/ + /* Function: 0x06 */ + + typedef struct { + uint16 name_len; + uint16 name_size; + unistr_noterm *name; + } samr_Name; + + typedef struct { + uint32 rid; + samr_Name name; + } samr_SamEntry; + + typedef struct { + uint32 count; + [size_is(count)] samr_SamEntry *entries; + } samr_SamArray; + + NTSTATUS samr_EnumDomains ( + [in,ref] policy_handle *handle, + [in,out,ref] uint32 *resume_handle, + [in] uint32 buf_size, + [out] samr_SamArray *sam, + [out,ref] uint32 *num_entries + ); + + + /************************/ + /* Function 0x07 */ + NTSTATUS samr_OPEN_DOMAIN(); + + /************************/ + /* Function 0x08 */ + NTSTATUS samr_QUERY_DOMAIN_INFO(); + + /************************/ + /* Function 0x09 */ + NTSTATUS samr_SET_DOMAIN_INFO(); + + /************************/ + /* Function 0x0a */ + NTSTATUS samr_CREATE_DOM_GROUP(); + + /************************/ + /* Function 0x0b */ + NTSTATUS samr_ENUM_DOM_GROUPS(); + + /************************/ + /* Function 0x0c */ + NTSTATUS samr_CREATE_USER_IN_DOMAIN(); + + /************************/ + /* Function 0x0d */ + NTSTATUS samr_ENUM_DOM_USERS(); + + /************************/ + /* Function 0x0e */ + NTSTATUS samr_CREATE_DOM_ALIAS(); + + /************************/ + /* Function 0x0f */ + NTSTATUS samr_ENUM_DOM_ALIASES(); + + /************************/ + /* Function 0x10 */ + NTSTATUS samr_GET_ALIAS_MEMBERSHIP(); + + /************************/ + /* Function 0x11 */ + NTSTATUS samr_LOOKUP_NAMES(); + + /************************/ + /* Function 0x12 */ + NTSTATUS samr_LOOKUP_RIDS(); + + /************************/ + /* Function 0x13 */ + NTSTATUS samr_OPEN_GROUP(); + + /************************/ + /* Function 0x14 */ + NTSTATUS samr_QUERY_GROUPINFO(); + + /************************/ + /* Function 0x15 */ + NTSTATUS samr_SET_GROUPINFO(); + + /************************/ + /* Function 0x16 */ + NTSTATUS samr_ADD_GROUPMEM(); + + /************************/ + /* Function 0x17 */ + NTSTATUS samr_DELETE_DOM_GROUP(); + + /************************/ + /* Function 0x18 */ + NTSTATUS samr_DEL_GROUPMEM(); + + /************************/ + /* Function 0x19 */ + NTSTATUS samr_QUERY_GROUPMEM(); + + /************************/ + /* Function 0x1a */ + NTSTATUS samr_SET_MEMBER_ATTRIBUTES_OF_GROUP(); + + /************************/ + /* Function 0x1b */ + NTSTATUS samr_OPEN_ALIAS(); + + /************************/ + /* Function 0x1c */ + NTSTATUS samr_QUERY_ALIASINFO(); + + /************************/ + /* Function 0x1d */ + NTSTATUS samr_SET_ALIASINFO(); + + /************************/ + /* Function 0x1e */ + NTSTATUS samr_DELETE_DOM_ALIAS(); + + /************************/ + /* Function 0x1f */ + NTSTATUS samr_ADD_ALIASMEM(); + + /************************/ + /* Function 0x20 */ + NTSTATUS samr_DEL_ALIASMEM(); + + /************************/ + /* Function 0x21 */ + NTSTATUS samr_GET_MEMBERS_IN_ALIAS(); + + /************************/ + /* Function 0x22 */ + NTSTATUS samr_OPEN_USER(); + + /************************/ + /* Function 0x23 */ + NTSTATUS samr_DELETE_DOM_USER(); + + /************************/ + /* Function 0x24 */ + NTSTATUS samr_QUERY_USERINFO(); + + /************************/ + /* Function 0x25 */ + NTSTATUS samr_SET_USERINFO(); + + /************************/ + /* Function 0x26 */ + NTSTATUS samr_CHANGE_PASSWORD_USER(); + + /************************/ + /* Function 0x27 */ + NTSTATUS samr_GET_GROUPS_FOR_USER(); + + /************************/ + /* Function 0x28 */ + NTSTATUS samr_QUERY_DISPINFO(); + + /************************/ + /* Function 0x29 */ + NTSTATUS samr_GET_DISPLAY_ENUMERATION_INDEX(); + + /************************/ + /* Function 0x2a */ + NTSTATUS samr_TEST_PRIVATE_FUNCTIONS_DOMAIN(); + + /************************/ + /* Function 0x2b */ + NTSTATUS samr_TEST_PRIVATE_FUNCTIONS_USER(); + + /************************/ + /* Function 0x2c */ + NTSTATUS samr_GET_USRDOM_PWINFO(); + + /************************/ + /* Function 0x2d */ + NTSTATUS samr_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN(); + + /************************/ + /* Function 0x2e */ + NTSTATUS samr_QUERY_INFORMATION_DOMAIN2(); + + /************************/ + /* Function 0x2f */ + NTSTATUS samr_QUERY_INFORMATION_USER2(); + + /************************/ + /* Function 0x30 */ + NTSTATUS samr_QUERY_DISPINFO2(); + + /************************/ + /* Function 0x31 */ + NTSTATUS samr_GET_DISPLAY_ENUMERATION_INDEX2(); + + /************************/ + /* Function 0x32 */ + NTSTATUS samr_CREATE_USER2_IN_DOMAIN(); + + /************************/ + /* Function 0x33 */ + NTSTATUS samr_QUERY_DISPINFO3(); + + /************************/ + /* Function 0x34 */ + NTSTATUS samr_ADD_MULTIPLE_MEMBERS_TO_ALIAS(); + + /************************/ + /* Function 0x35 */ + NTSTATUS samr_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS(); + + /************************/ + /* Function 0x36 */ + NTSTATUS samr_OEM_CHANGE_PASSWORD_USER2(); + + /************************/ + /* Function 0x37 */ + NTSTATUS samr_UNICODE_CHANGE_PASSWORD_USER2(); + + /************************/ + /* Function 0x38 */ + NTSTATUS samr_GET_DOM_PWINFO(); + + /************************/ + /* Function 0x39 */ + NTSTATUS samr_CONNECT2(); + + /************************/ + /* Function 0x3a */ + NTSTATUS samr_SET_USERINFO2(); + + /************************/ + /* Function 0x3b */ + NTSTATUS samr_SET_BOOT_KEY_INFORMATION(); + + /************************/ + /* Function 0x3c */ + NTSTATUS samr_GET_BOOT_KEY_INFORMATION(); + + /************************/ + /* Function 0x3d */ + NTSTATUS samr_CONNECT3(); + + /************************/ + /* Function 0x3e */ + NTSTATUS samr_CONNECT4( + [in] unistr *system_name, + [in] uint32 unknown, + [in] uint32 access_mask, + [out,ref] policy_handle *handle + ); + + /************************/ + /* Function 0x3f */ + NTSTATUS samr_UNICODE_CHANGE_PASSWORD_USER3(); + + /************************/ + /* Function 0x40 */ + NTSTATUS samr_CONNECT5(); + + /************************/ + /* Function 0x41 */ + NTSTATUS samr_RID_TO_SID(); + + /************************/ + /* Function 0x42 */ + NTSTATUS samr_SET_DSRM_PASSWORD(); + + /************************/ + /* Function 0x43 */ + NTSTATUS samr_VALIDATE_PASSWORD(); + +} diff --git a/source4/librpc/ndr/libndr.h b/source4/librpc/ndr/libndr.h index 140001c06d..25ed1fc6f1 100644 --- a/source4/librpc/ndr/libndr.h +++ b/source4/librpc/ndr/libndr.h @@ -153,3 +153,5 @@ typedef void (*ndr_print_union_fn_t)(struct ndr_print *, const char *, uint16, v #include "librpc/ndr/ndr_lsa.h" #include "librpc/ndr/ndr_dfs.h" #include "librpc/ndr/ndr_spoolss.h" +#include "librpc/ndr/ndr_samr.h" + diff --git a/source4/librpc/ndr/ndr_samr.c b/source4/librpc/ndr/ndr_samr.c new file mode 100644 index 0000000000..8258fe6bdf --- /dev/null +++ b/source4/librpc/ndr/ndr_samr.c @@ -0,0 +1,1018 @@ +/* parser auto-generated by pidl */ + +#include "includes.h" + +NTSTATUS ndr_push_samr_Connect(struct ndr_push *ndr, struct samr_Connect *r) +{ + NDR_CHECK(ndr_push_ptr(ndr, r->in.system_name)); + if (r->in.system_name) { + NDR_CHECK(ndr_push_uint16(ndr, *r->in.system_name)); + } + NDR_CHECK(ndr_push_uint32(ndr, r->in.access_mask)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_Close(struct ndr_push *ndr, struct samr_Close *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_SetSecurity(struct ndr_push *ndr, struct samr_SetSecurity *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_QuerySecurity(struct ndr_push *ndr, struct samr_QuerySecurity *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_Shutdown(struct ndr_push *ndr, struct samr_Shutdown *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_LookupDomain(struct ndr_push *ndr, struct samr_LookupDomain *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_EnumDomains(struct ndr_push *ndr, struct samr_EnumDomains *r) +{ + NDR_CHECK(ndr_push_policy_handle(ndr, r->in.handle)); + NDR_CHECK(ndr_push_uint32(ndr, *r->in.resume_handle)); + NDR_CHECK(ndr_push_uint32(ndr, r->in.buf_size)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_OPEN_DOMAIN(struct ndr_push *ndr, struct samr_OPEN_DOMAIN *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_QUERY_DOMAIN_INFO(struct ndr_push *ndr, struct samr_QUERY_DOMAIN_INFO *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_SET_DOMAIN_INFO(struct ndr_push *ndr, struct samr_SET_DOMAIN_INFO *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_CREATE_DOM_GROUP(struct ndr_push *ndr, struct samr_CREATE_DOM_GROUP *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_ENUM_DOM_GROUPS(struct ndr_push *ndr, struct samr_ENUM_DOM_GROUPS *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_CREATE_USER_IN_DOMAIN(struct ndr_push *ndr, struct samr_CREATE_USER_IN_DOMAIN *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_ENUM_DOM_USERS(struct ndr_push *ndr, struct samr_ENUM_DOM_USERS *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_CREATE_DOM_ALIAS(struct ndr_push *ndr, struct samr_CREATE_DOM_ALIAS *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_ENUM_DOM_ALIASES(struct ndr_push *ndr, struct samr_ENUM_DOM_ALIASES *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_GET_ALIAS_MEMBERSHIP(struct ndr_push *ndr, struct samr_GET_ALIAS_MEMBERSHIP *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_LOOKUP_NAMES(struct ndr_push *ndr, struct samr_LOOKUP_NAMES *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_LOOKUP_RIDS(struct ndr_push *ndr, struct samr_LOOKUP_RIDS *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_OPEN_GROUP(struct ndr_push *ndr, struct samr_OPEN_GROUP *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_QUERY_GROUPINFO(struct ndr_push *ndr, struct samr_QUERY_GROUPINFO *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_SET_GROUPINFO(struct ndr_push *ndr, struct samr_SET_GROUPINFO *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_ADD_GROUPMEM(struct ndr_push *ndr, struct samr_ADD_GROUPMEM *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_DELETE_DOM_GROUP(struct ndr_push *ndr, struct samr_DELETE_DOM_GROUP *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_DEL_GROUPMEM(struct ndr_push *ndr, struct samr_DEL_GROUPMEM *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_QUERY_GROUPMEM(struct ndr_push *ndr, struct samr_QUERY_GROUPMEM *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_SET_MEMBER_ATTRIBUTES_OF_GROUP(struct ndr_push *ndr, struct samr_SET_MEMBER_ATTRIBUTES_OF_GROUP *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_OPEN_ALIAS(struct ndr_push *ndr, struct samr_OPEN_ALIAS *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_QUERY_ALIASINFO(struct ndr_push *ndr, struct samr_QUERY_ALIASINFO *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_SET_ALIASINFO(struct ndr_push *ndr, struct samr_SET_ALIASINFO *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_DELETE_DOM_ALIAS(struct ndr_push *ndr, struct samr_DELETE_DOM_ALIAS *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_ADD_ALIASMEM(struct ndr_push *ndr, struct samr_ADD_ALIASMEM *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_DEL_ALIASMEM(struct ndr_push *ndr, struct samr_DEL_ALIASMEM *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_GET_MEMBERS_IN_ALIAS(struct ndr_push *ndr, struct samr_GET_MEMBERS_IN_ALIAS *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_OPEN_USER(struct ndr_push *ndr, struct samr_OPEN_USER *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_DELETE_DOM_USER(struct ndr_push *ndr, struct samr_DELETE_DOM_USER *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_QUERY_USERINFO(struct ndr_push *ndr, struct samr_QUERY_USERINFO *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_SET_USERINFO(struct ndr_push *ndr, struct samr_SET_USERINFO *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_CHANGE_PASSWORD_USER(struct ndr_push *ndr, struct samr_CHANGE_PASSWORD_USER *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_GET_GROUPS_FOR_USER(struct ndr_push *ndr, struct samr_GET_GROUPS_FOR_USER *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_QUERY_DISPINFO(struct ndr_push *ndr, struct samr_QUERY_DISPINFO *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_GET_DISPLAY_ENUMERATION_INDEX(struct ndr_push *ndr, struct samr_GET_DISPLAY_ENUMERATION_INDEX *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_TEST_PRIVATE_FUNCTIONS_DOMAIN(struct ndr_push *ndr, struct samr_TEST_PRIVATE_FUNCTIONS_DOMAIN *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_TEST_PRIVATE_FUNCTIONS_USER(struct ndr_push *ndr, struct samr_TEST_PRIVATE_FUNCTIONS_USER *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_GET_USRDOM_PWINFO(struct ndr_push *ndr, struct samr_GET_USRDOM_PWINFO *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN(struct ndr_push *ndr, struct samr_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_QUERY_INFORMATION_DOMAIN2(struct ndr_push *ndr, struct samr_QUERY_INFORMATION_DOMAIN2 *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_QUERY_INFORMATION_USER2(struct ndr_push *ndr, struct samr_QUERY_INFORMATION_USER2 *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_QUERY_DISPINFO2(struct ndr_push *ndr, struct samr_QUERY_DISPINFO2 *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_GET_DISPLAY_ENUMERATION_INDEX2(struct ndr_push *ndr, struct samr_GET_DISPLAY_ENUMERATION_INDEX2 *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_CREATE_USER2_IN_DOMAIN(struct ndr_push *ndr, struct samr_CREATE_USER2_IN_DOMAIN *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_QUERY_DISPINFO3(struct ndr_push *ndr, struct samr_QUERY_DISPINFO3 *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_ADD_MULTIPLE_MEMBERS_TO_ALIAS(struct ndr_push *ndr, struct samr_ADD_MULTIPLE_MEMBERS_TO_ALIAS *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS(struct ndr_push *ndr, struct samr_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_OEM_CHANGE_PASSWORD_USER2(struct ndr_push *ndr, struct samr_OEM_CHANGE_PASSWORD_USER2 *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_UNICODE_CHANGE_PASSWORD_USER2(struct ndr_push *ndr, struct samr_UNICODE_CHANGE_PASSWORD_USER2 *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_GET_DOM_PWINFO(struct ndr_push *ndr, struct samr_GET_DOM_PWINFO *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_CONNECT2(struct ndr_push *ndr, struct samr_CONNECT2 *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_SET_USERINFO2(struct ndr_push *ndr, struct samr_SET_USERINFO2 *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_SET_BOOT_KEY_INFORMATION(struct ndr_push *ndr, struct samr_SET_BOOT_KEY_INFORMATION *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_GET_BOOT_KEY_INFORMATION(struct ndr_push *ndr, struct samr_GET_BOOT_KEY_INFORMATION *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_CONNECT3(struct ndr_push *ndr, struct samr_CONNECT3 *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_CONNECT4(struct ndr_push *ndr, struct samr_CONNECT4 *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_uint32(ndr, r->in.unknown)); + NDR_CHECK(ndr_push_uint32(ndr, r->in.access_mask)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_UNICODE_CHANGE_PASSWORD_USER3(struct ndr_push *ndr, struct samr_UNICODE_CHANGE_PASSWORD_USER3 *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_CONNECT5(struct ndr_push *ndr, struct samr_CONNECT5 *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_RID_TO_SID(struct ndr_push *ndr, struct samr_RID_TO_SID *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_SET_DSRM_PASSWORD(struct ndr_push *ndr, struct samr_SET_DSRM_PASSWORD *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_push_samr_VALIDATE_PASSWORD(struct ndr_push *ndr, struct samr_VALIDATE_PASSWORD *r) +{ + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_Connect(struct ndr_pull *ndr, struct samr_Connect *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_pull_samr_Close(struct ndr_pull *ndr, struct samr_Close *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_SetSecurity(struct ndr_pull *ndr, struct samr_SetSecurity *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_QuerySecurity(struct ndr_pull *ndr, struct samr_QuerySecurity *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_Shutdown(struct ndr_pull *ndr, struct samr_Shutdown *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_LookupDomain(struct ndr_pull *ndr, struct samr_LookupDomain *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +static NTSTATUS ndr_pull_samr_Name(struct ndr_pull *ndr, int ndr_flags, struct samr_Name *r) +{ + uint32 _ptr_name; + NDR_CHECK(ndr_pull_align(ndr, 4)); + if (!(ndr_flags & NDR_SCALARS)) goto buffers; + NDR_CHECK(ndr_pull_uint16(ndr, &r->name_len)); + NDR_CHECK(ndr_pull_uint16(ndr, &r->name_size)); + NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_name)); + if (_ptr_name) { + NDR_ALLOC(ndr, r->name); + } else { + r->name = NULL; + } +buffers: + if (!(ndr_flags & NDR_BUFFERS)) goto done; + if (r->name) { + NDR_CHECK(ndr_pull_unistr_noterm(ndr, &r->name)); + } +done: + return NT_STATUS_OK; +} + +static NTSTATUS ndr_pull_samr_SamEntry(struct ndr_pull *ndr, int ndr_flags, struct samr_SamEntry *r) +{ + NDR_CHECK(ndr_pull_align(ndr, 4)); + if (!(ndr_flags & NDR_SCALARS)) goto buffers; + NDR_CHECK(ndr_pull_uint32(ndr, &r->rid)); + NDR_CHECK(ndr_pull_samr_Name(ndr, NDR_SCALARS, &r->name)); +buffers: + if (!(ndr_flags & NDR_BUFFERS)) goto done; + NDR_CHECK(ndr_pull_samr_Name(ndr, NDR_BUFFERS, &r->name)); +done: + return NT_STATUS_OK; +} + +static NTSTATUS ndr_pull_samr_SamArray(struct ndr_pull *ndr, int ndr_flags, struct samr_SamArray *r) +{ + uint32 _ptr_entries; + NDR_CHECK(ndr_pull_align(ndr, 4)); + if (!(ndr_flags & NDR_SCALARS)) goto buffers; + NDR_CHECK(ndr_pull_uint32(ndr, &r->count)); + NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_entries)); + if (_ptr_entries) { + NDR_ALLOC(ndr, r->entries); + } else { + r->entries = NULL; + } +buffers: + if (!(ndr_flags & NDR_BUFFERS)) goto done; + if (r->entries) { + { + uint32 _array_size; + NDR_CHECK(ndr_pull_uint32(ndr, &_array_size)); + if (r->count > _array_size) { + return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should be %u", _array_size, r->count); + } + } + NDR_ALLOC_N_SIZE(ndr, r->entries, r->count, sizeof(r->entries[0])); + NDR_CHECK(ndr_pull_array(ndr, NDR_SCALARS|NDR_BUFFERS, (void **)r->entries, sizeof(r->entries[0]), r->count, (ndr_pull_flags_fn_t)ndr_pull_samr_SamEntry)); + } +done: + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_EnumDomains(struct ndr_pull *ndr, struct samr_EnumDomains *r) +{ + uint32 _ptr_sam; + NDR_CHECK(ndr_pull_uint32(ndr, r->out.resume_handle)); + NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_sam)); + if (_ptr_sam) { + NDR_ALLOC(ndr, r->out.sam); + } else { + r->out.sam = NULL; + } + if (r->out.sam) { + NDR_CHECK(ndr_pull_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sam)); + } + NDR_CHECK(ndr_pull_uint32(ndr, r->out.num_entries)); + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_OPEN_DOMAIN(struct ndr_pull *ndr, struct samr_OPEN_DOMAIN *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_QUERY_DOMAIN_INFO(struct ndr_pull *ndr, struct samr_QUERY_DOMAIN_INFO *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_SET_DOMAIN_INFO(struct ndr_pull *ndr, struct samr_SET_DOMAIN_INFO *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_CREATE_DOM_GROUP(struct ndr_pull *ndr, struct samr_CREATE_DOM_GROUP *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_ENUM_DOM_GROUPS(struct ndr_pull *ndr, struct samr_ENUM_DOM_GROUPS *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_CREATE_USER_IN_DOMAIN(struct ndr_pull *ndr, struct samr_CREATE_USER_IN_DOMAIN *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_ENUM_DOM_USERS(struct ndr_pull *ndr, struct samr_ENUM_DOM_USERS *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_CREATE_DOM_ALIAS(struct ndr_pull *ndr, struct samr_CREATE_DOM_ALIAS *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_ENUM_DOM_ALIASES(struct ndr_pull *ndr, struct samr_ENUM_DOM_ALIASES *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_GET_ALIAS_MEMBERSHIP(struct ndr_pull *ndr, struct samr_GET_ALIAS_MEMBERSHIP *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_LOOKUP_NAMES(struct ndr_pull *ndr, struct samr_LOOKUP_NAMES *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_LOOKUP_RIDS(struct ndr_pull *ndr, struct samr_LOOKUP_RIDS *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_OPEN_GROUP(struct ndr_pull *ndr, struct samr_OPEN_GROUP *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_QUERY_GROUPINFO(struct ndr_pull *ndr, struct samr_QUERY_GROUPINFO *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_SET_GROUPINFO(struct ndr_pull *ndr, struct samr_SET_GROUPINFO *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_ADD_GROUPMEM(struct ndr_pull *ndr, struct samr_ADD_GROUPMEM *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_DELETE_DOM_GROUP(struct ndr_pull *ndr, struct samr_DELETE_DOM_GROUP *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_DEL_GROUPMEM(struct ndr_pull *ndr, struct samr_DEL_GROUPMEM *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_QUERY_GROUPMEM(struct ndr_pull *ndr, struct samr_QUERY_GROUPMEM *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_SET_MEMBER_ATTRIBUTES_OF_GROUP(struct ndr_pull *ndr, struct samr_SET_MEMBER_ATTRIBUTES_OF_GROUP *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_OPEN_ALIAS(struct ndr_pull *ndr, struct samr_OPEN_ALIAS *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_QUERY_ALIASINFO(struct ndr_pull *ndr, struct samr_QUERY_ALIASINFO *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_SET_ALIASINFO(struct ndr_pull *ndr, struct samr_SET_ALIASINFO *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_DELETE_DOM_ALIAS(struct ndr_pull *ndr, struct samr_DELETE_DOM_ALIAS *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_ADD_ALIASMEM(struct ndr_pull *ndr, struct samr_ADD_ALIASMEM *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_DEL_ALIASMEM(struct ndr_pull *ndr, struct samr_DEL_ALIASMEM *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_GET_MEMBERS_IN_ALIAS(struct ndr_pull *ndr, struct samr_GET_MEMBERS_IN_ALIAS *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_OPEN_USER(struct ndr_pull *ndr, struct samr_OPEN_USER *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_DELETE_DOM_USER(struct ndr_pull *ndr, struct samr_DELETE_DOM_USER *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_QUERY_USERINFO(struct ndr_pull *ndr, struct samr_QUERY_USERINFO *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_SET_USERINFO(struct ndr_pull *ndr, struct samr_SET_USERINFO *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_CHANGE_PASSWORD_USER(struct ndr_pull *ndr, struct samr_CHANGE_PASSWORD_USER *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_GET_GROUPS_FOR_USER(struct ndr_pull *ndr, struct samr_GET_GROUPS_FOR_USER *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_QUERY_DISPINFO(struct ndr_pull *ndr, struct samr_QUERY_DISPINFO *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_GET_DISPLAY_ENUMERATION_INDEX(struct ndr_pull *ndr, struct samr_GET_DISPLAY_ENUMERATION_INDEX *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_TEST_PRIVATE_FUNCTIONS_DOMAIN(struct ndr_pull *ndr, struct samr_TEST_PRIVATE_FUNCTIONS_DOMAIN *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_TEST_PRIVATE_FUNCTIONS_USER(struct ndr_pull *ndr, struct samr_TEST_PRIVATE_FUNCTIONS_USER *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_GET_USRDOM_PWINFO(struct ndr_pull *ndr, struct samr_GET_USRDOM_PWINFO *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN(struct ndr_pull *ndr, struct samr_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_QUERY_INFORMATION_DOMAIN2(struct ndr_pull *ndr, struct samr_QUERY_INFORMATION_DOMAIN2 *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_QUERY_INFORMATION_USER2(struct ndr_pull *ndr, struct samr_QUERY_INFORMATION_USER2 *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_QUERY_DISPINFO2(struct ndr_pull *ndr, struct samr_QUERY_DISPINFO2 *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_GET_DISPLAY_ENUMERATION_INDEX2(struct ndr_pull *ndr, struct samr_GET_DISPLAY_ENUMERATION_INDEX2 *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_CREATE_USER2_IN_DOMAIN(struct ndr_pull *ndr, struct samr_CREATE_USER2_IN_DOMAIN *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_QUERY_DISPINFO3(struct ndr_pull *ndr, struct samr_QUERY_DISPINFO3 *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_ADD_MULTIPLE_MEMBERS_TO_ALIAS(struct ndr_pull *ndr, struct samr_ADD_MULTIPLE_MEMBERS_TO_ALIAS *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS(struct ndr_pull *ndr, struct samr_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_OEM_CHANGE_PASSWORD_USER2(struct ndr_pull *ndr, struct samr_OEM_CHANGE_PASSWORD_USER2 *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_UNICODE_CHANGE_PASSWORD_USER2(struct ndr_pull *ndr, struct samr_UNICODE_CHANGE_PASSWORD_USER2 *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_GET_DOM_PWINFO(struct ndr_pull *ndr, struct samr_GET_DOM_PWINFO *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_CONNECT2(struct ndr_pull *ndr, struct samr_CONNECT2 *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_SET_USERINFO2(struct ndr_pull *ndr, struct samr_SET_USERINFO2 *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_SET_BOOT_KEY_INFORMATION(struct ndr_pull *ndr, struct samr_SET_BOOT_KEY_INFORMATION *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_GET_BOOT_KEY_INFORMATION(struct ndr_pull *ndr, struct samr_GET_BOOT_KEY_INFORMATION *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_CONNECT3(struct ndr_pull *ndr, struct samr_CONNECT3 *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_CONNECT4(struct ndr_pull *ndr, struct samr_CONNECT4 *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_pull_samr_UNICODE_CHANGE_PASSWORD_USER3(struct ndr_pull *ndr, struct samr_UNICODE_CHANGE_PASSWORD_USER3 *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_CONNECT5(struct ndr_pull *ndr, struct samr_CONNECT5 *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_RID_TO_SID(struct ndr_pull *ndr, struct samr_RID_TO_SID *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_SET_DSRM_PASSWORD(struct ndr_pull *ndr, struct samr_SET_DSRM_PASSWORD *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +NTSTATUS ndr_pull_samr_VALIDATE_PASSWORD(struct ndr_pull *ndr, struct samr_VALIDATE_PASSWORD *r) +{ + NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); + + return NT_STATUS_OK; +} + +void ndr_print_samr_Name(struct ndr_print *ndr, const char *name, struct samr_Name *r) +{ + ndr_print_struct(ndr, name, "samr_Name"); + ndr->depth++; + ndr_print_uint16(ndr, "name_len", r->name_len); + ndr_print_uint16(ndr, "name_size", r->name_size); + ndr_print_ptr(ndr, "name", r->name); + ndr->depth++; + if (r->name) { + ndr_print_unistr_noterm(ndr, "name", r->name); + } + ndr->depth--; + ndr->depth--; +} + +void ndr_print_samr_SamEntry(struct ndr_print *ndr, const char *name, struct samr_SamEntry *r) +{ + ndr_print_struct(ndr, name, "samr_SamEntry"); + ndr->depth++; + ndr_print_uint32(ndr, "rid", r->rid); + ndr_print_samr_Name(ndr, "name", &r->name); + ndr->depth--; +} + +void ndr_print_samr_SamArray(struct ndr_print *ndr, const char *name, struct samr_SamArray *r) +{ + ndr_print_struct(ndr, name, "samr_SamArray"); + ndr->depth++; + ndr_print_uint32(ndr, "count", r->count); + ndr_print_ptr(ndr, "entries", r->entries); + ndr->depth++; + if (r->entries) { + ndr_print_array(ndr, "entries", r->entries, sizeof(r->entries[0]), r->count, (ndr_print_fn_t)ndr_print_samr_SamEntry); + } + ndr->depth--; + ndr->depth--; +} + diff --git a/source4/librpc/ndr/ndr_samr.h b/source4/librpc/ndr/ndr_samr.h new file mode 100644 index 0000000000..20b58685de --- /dev/null +++ b/source4/librpc/ndr/ndr_samr.h @@ -0,0 +1,779 @@ +/* header auto-generated by pidl */ + +struct samr_Connect { + struct { + uint16 *system_name; + uint32 access_mask; + } in; + + struct { + struct policy_handle *handle; + NTSTATUS result; + } out; + +}; + +struct samr_Close { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_SetSecurity { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_QuerySecurity { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_Shutdown { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_LookupDomain { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_Name { + uint16 name_len; + uint16 name_size; + const char *name; +}; + +struct samr_SamEntry { + uint32 rid; + struct samr_Name name; +}; + +struct samr_SamArray { + uint32 count; + struct samr_SamEntry *entries; +}; + +struct samr_EnumDomains { + struct { + struct policy_handle *handle; + uint32 *resume_handle; + uint32 buf_size; + } in; + + struct { + uint32 *resume_handle; + struct samr_SamArray *sam; + uint32 *num_entries; + NTSTATUS result; + } out; + +}; + +struct samr_OPEN_DOMAIN { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_QUERY_DOMAIN_INFO { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_SET_DOMAIN_INFO { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_CREATE_DOM_GROUP { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_ENUM_DOM_GROUPS { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_CREATE_USER_IN_DOMAIN { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_ENUM_DOM_USERS { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_CREATE_DOM_ALIAS { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_ENUM_DOM_ALIASES { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_GET_ALIAS_MEMBERSHIP { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_LOOKUP_NAMES { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_LOOKUP_RIDS { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_OPEN_GROUP { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_QUERY_GROUPINFO { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_SET_GROUPINFO { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_ADD_GROUPMEM { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_DELETE_DOM_GROUP { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_DEL_GROUPMEM { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_QUERY_GROUPMEM { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_SET_MEMBER_ATTRIBUTES_OF_GROUP { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_OPEN_ALIAS { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_QUERY_ALIASINFO { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_SET_ALIASINFO { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_DELETE_DOM_ALIAS { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_ADD_ALIASMEM { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_DEL_ALIASMEM { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_GET_MEMBERS_IN_ALIAS { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_OPEN_USER { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_DELETE_DOM_USER { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_QUERY_USERINFO { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_SET_USERINFO { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_CHANGE_PASSWORD_USER { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_GET_GROUPS_FOR_USER { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_QUERY_DISPINFO { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_GET_DISPLAY_ENUMERATION_INDEX { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_TEST_PRIVATE_FUNCTIONS_DOMAIN { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_TEST_PRIVATE_FUNCTIONS_USER { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_GET_USRDOM_PWINFO { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_QUERY_INFORMATION_DOMAIN2 { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_QUERY_INFORMATION_USER2 { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_QUERY_DISPINFO2 { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_GET_DISPLAY_ENUMERATION_INDEX2 { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_CREATE_USER2_IN_DOMAIN { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_QUERY_DISPINFO3 { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_ADD_MULTIPLE_MEMBERS_TO_ALIAS { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_OEM_CHANGE_PASSWORD_USER2 { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_UNICODE_CHANGE_PASSWORD_USER2 { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_GET_DOM_PWINFO { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_CONNECT2 { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_SET_USERINFO2 { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_SET_BOOT_KEY_INFORMATION { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_GET_BOOT_KEY_INFORMATION { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_CONNECT3 { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_CONNECT4 { + struct { + const char *system_name; + uint32 unknown; + uint32 access_mask; + } in; + + struct { + struct policy_handle *handle; + NTSTATUS result; + } out; + +}; + +struct samr_UNICODE_CHANGE_PASSWORD_USER3 { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_CONNECT5 { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_RID_TO_SID { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_SET_DSRM_PASSWORD { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +struct samr_VALIDATE_PASSWORD { + struct { + } in; + + struct { + NTSTATUS result; + } out; + +}; + +#define DCERPC_SAMR_CONNECT 0 +#define DCERPC_SAMR_CLOSE 1 +#define DCERPC_SAMR_SETSECURITY 2 +#define DCERPC_SAMR_QUERYSECURITY 3 +#define DCERPC_SAMR_SHUTDOWN 4 +#define DCERPC_SAMR_LOOKUPDOMAIN 5 +#define DCERPC_SAMR_ENUMDOMAINS 6 +#define DCERPC_SAMR_OPEN_DOMAIN 7 +#define DCERPC_SAMR_QUERY_DOMAIN_INFO 8 +#define DCERPC_SAMR_SET_DOMAIN_INFO 9 +#define DCERPC_SAMR_CREATE_DOM_GROUP 10 +#define DCERPC_SAMR_ENUM_DOM_GROUPS 11 +#define DCERPC_SAMR_CREATE_USER_IN_DOMAIN 12 +#define DCERPC_SAMR_ENUM_DOM_USERS 13 +#define DCERPC_SAMR_CREATE_DOM_ALIAS 14 +#define DCERPC_SAMR_ENUM_DOM_ALIASES 15 +#define DCERPC_SAMR_GET_ALIAS_MEMBERSHIP 16 +#define DCERPC_SAMR_LOOKUP_NAMES 17 +#define DCERPC_SAMR_LOOKUP_RIDS 18 +#define DCERPC_SAMR_OPEN_GROUP 19 +#define DCERPC_SAMR_QUERY_GROUPINFO 20 +#define DCERPC_SAMR_SET_GROUPINFO 21 +#define DCERPC_SAMR_ADD_GROUPMEM 22 +#define DCERPC_SAMR_DELETE_DOM_GROUP 23 +#define DCERPC_SAMR_DEL_GROUPMEM 24 +#define DCERPC_SAMR_QUERY_GROUPMEM 25 +#define DCERPC_SAMR_SET_MEMBER_ATTRIBUTES_OF_GROUP 26 +#define DCERPC_SAMR_OPEN_ALIAS 27 +#define DCERPC_SAMR_QUERY_ALIASINFO 28 +#define DCERPC_SAMR_SET_ALIASINFO 29 +#define DCERPC_SAMR_DELETE_DOM_ALIAS 30 +#define DCERPC_SAMR_ADD_ALIASMEM 31 +#define DCERPC_SAMR_DEL_ALIASMEM 32 +#define DCERPC_SAMR_GET_MEMBERS_IN_ALIAS 33 +#define DCERPC_SAMR_OPEN_USER 34 +#define DCERPC_SAMR_DELETE_DOM_USER 35 +#define DCERPC_SAMR_QUERY_USERINFO 36 +#define DCERPC_SAMR_SET_USERINFO 37 +#define DCERPC_SAMR_CHANGE_PASSWORD_USER 38 +#define DCERPC_SAMR_GET_GROUPS_FOR_USER 39 +#define DCERPC_SAMR_QUERY_DISPINFO 40 +#define DCERPC_SAMR_GET_DISPLAY_ENUMERATION_INDEX 41 +#define DCERPC_SAMR_TEST_PRIVATE_FUNCTIONS_DOMAIN 42 +#define DCERPC_SAMR_TEST_PRIVATE_FUNCTIONS_USER 43 +#define DCERPC_SAMR_GET_USRDOM_PWINFO 44 +#define DCERPC_SAMR_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN 45 +#define DCERPC_SAMR_QUERY_INFORMATION_DOMAIN2 46 +#define DCERPC_SAMR_QUERY_INFORMATION_USER2 47 +#define DCERPC_SAMR_QUERY_DISPINFO2 48 +#define DCERPC_SAMR_GET_DISPLAY_ENUMERATION_INDEX2 49 +#define DCERPC_SAMR_CREATE_USER2_IN_DOMAIN 50 +#define DCERPC_SAMR_QUERY_DISPINFO3 51 +#define DCERPC_SAMR_ADD_MULTIPLE_MEMBERS_TO_ALIAS 52 +#define DCERPC_SAMR_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS 53 +#define DCERPC_SAMR_OEM_CHANGE_PASSWORD_USER2 54 +#define DCERPC_SAMR_UNICODE_CHANGE_PASSWORD_USER2 55 +#define DCERPC_SAMR_GET_DOM_PWINFO 56 +#define DCERPC_SAMR_CONNECT2 57 +#define DCERPC_SAMR_SET_USERINFO2 58 +#define DCERPC_SAMR_SET_BOOT_KEY_INFORMATION 59 +#define DCERPC_SAMR_GET_BOOT_KEY_INFORMATION 60 +#define DCERPC_SAMR_CONNECT3 61 +#define DCERPC_SAMR_CONNECT4 62 +#define DCERPC_SAMR_UNICODE_CHANGE_PASSWORD_USER3 63 +#define DCERPC_SAMR_CONNECT5 64 +#define DCERPC_SAMR_RID_TO_SID 65 +#define DCERPC_SAMR_SET_DSRM_PASSWORD 66 +#define DCERPC_SAMR_VALIDATE_PASSWORD 67 diff --git a/source4/librpc/rpc/rpc_samr.c b/source4/librpc/rpc/rpc_samr.c new file mode 100644 index 0000000000..d007ebe07f --- /dev/null +++ b/source4/librpc/rpc/rpc_samr.c @@ -0,0 +1,956 @@ +/* dcerpc client calls auto-generated by pidl */ + +#include "includes.h" + + +NTSTATUS dcerpc_samr_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_Connect *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_CONNECT, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_Connect, + (ndr_pull_fn_t) ndr_pull_samr_Connect, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_Close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_Close *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_CLOSE, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_Close, + (ndr_pull_fn_t) ndr_pull_samr_Close, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_SetSecurity(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_SetSecurity *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_SETSECURITY, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_SetSecurity, + (ndr_pull_fn_t) ndr_pull_samr_SetSecurity, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_QuerySecurity(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_QuerySecurity *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_QUERYSECURITY, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_QuerySecurity, + (ndr_pull_fn_t) ndr_pull_samr_QuerySecurity, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_Shutdown(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_Shutdown *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_SHUTDOWN, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_Shutdown, + (ndr_pull_fn_t) ndr_pull_samr_Shutdown, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_LookupDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_LookupDomain *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_LOOKUPDOMAIN, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_LookupDomain, + (ndr_pull_fn_t) ndr_pull_samr_LookupDomain, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_EnumDomains(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_EnumDomains *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_ENUMDOMAINS, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_EnumDomains, + (ndr_pull_fn_t) ndr_pull_samr_EnumDomains, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_OPEN_DOMAIN(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_OPEN_DOMAIN *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_OPEN_DOMAIN, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_OPEN_DOMAIN, + (ndr_pull_fn_t) ndr_pull_samr_OPEN_DOMAIN, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_QUERY_DOMAIN_INFO(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_QUERY_DOMAIN_INFO *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_QUERY_DOMAIN_INFO, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_QUERY_DOMAIN_INFO, + (ndr_pull_fn_t) ndr_pull_samr_QUERY_DOMAIN_INFO, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_SET_DOMAIN_INFO(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_SET_DOMAIN_INFO *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_SET_DOMAIN_INFO, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_SET_DOMAIN_INFO, + (ndr_pull_fn_t) ndr_pull_samr_SET_DOMAIN_INFO, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_CREATE_DOM_GROUP(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_CREATE_DOM_GROUP *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_CREATE_DOM_GROUP, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_CREATE_DOM_GROUP, + (ndr_pull_fn_t) ndr_pull_samr_CREATE_DOM_GROUP, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_ENUM_DOM_GROUPS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_ENUM_DOM_GROUPS *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_ENUM_DOM_GROUPS, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_ENUM_DOM_GROUPS, + (ndr_pull_fn_t) ndr_pull_samr_ENUM_DOM_GROUPS, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_CREATE_USER_IN_DOMAIN(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_CREATE_USER_IN_DOMAIN *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_CREATE_USER_IN_DOMAIN, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_CREATE_USER_IN_DOMAIN, + (ndr_pull_fn_t) ndr_pull_samr_CREATE_USER_IN_DOMAIN, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_ENUM_DOM_USERS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_ENUM_DOM_USERS *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_ENUM_DOM_USERS, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_ENUM_DOM_USERS, + (ndr_pull_fn_t) ndr_pull_samr_ENUM_DOM_USERS, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_CREATE_DOM_ALIAS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_CREATE_DOM_ALIAS *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_CREATE_DOM_ALIAS, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_CREATE_DOM_ALIAS, + (ndr_pull_fn_t) ndr_pull_samr_CREATE_DOM_ALIAS, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_ENUM_DOM_ALIASES(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_ENUM_DOM_ALIASES *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_ENUM_DOM_ALIASES, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_ENUM_DOM_ALIASES, + (ndr_pull_fn_t) ndr_pull_samr_ENUM_DOM_ALIASES, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_GET_ALIAS_MEMBERSHIP(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_GET_ALIAS_MEMBERSHIP *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_GET_ALIAS_MEMBERSHIP, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_GET_ALIAS_MEMBERSHIP, + (ndr_pull_fn_t) ndr_pull_samr_GET_ALIAS_MEMBERSHIP, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_LOOKUP_NAMES(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_LOOKUP_NAMES *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_LOOKUP_NAMES, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_LOOKUP_NAMES, + (ndr_pull_fn_t) ndr_pull_samr_LOOKUP_NAMES, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_LOOKUP_RIDS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_LOOKUP_RIDS *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_LOOKUP_RIDS, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_LOOKUP_RIDS, + (ndr_pull_fn_t) ndr_pull_samr_LOOKUP_RIDS, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_OPEN_GROUP(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_OPEN_GROUP *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_OPEN_GROUP, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_OPEN_GROUP, + (ndr_pull_fn_t) ndr_pull_samr_OPEN_GROUP, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_QUERY_GROUPINFO(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_QUERY_GROUPINFO *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_QUERY_GROUPINFO, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_QUERY_GROUPINFO, + (ndr_pull_fn_t) ndr_pull_samr_QUERY_GROUPINFO, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_SET_GROUPINFO(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_SET_GROUPINFO *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_SET_GROUPINFO, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_SET_GROUPINFO, + (ndr_pull_fn_t) ndr_pull_samr_SET_GROUPINFO, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_ADD_GROUPMEM(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_ADD_GROUPMEM *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_ADD_GROUPMEM, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_ADD_GROUPMEM, + (ndr_pull_fn_t) ndr_pull_samr_ADD_GROUPMEM, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_DELETE_DOM_GROUP(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_DELETE_DOM_GROUP *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_DELETE_DOM_GROUP, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_DELETE_DOM_GROUP, + (ndr_pull_fn_t) ndr_pull_samr_DELETE_DOM_GROUP, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_DEL_GROUPMEM(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_DEL_GROUPMEM *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_DEL_GROUPMEM, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_DEL_GROUPMEM, + (ndr_pull_fn_t) ndr_pull_samr_DEL_GROUPMEM, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_QUERY_GROUPMEM(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_QUERY_GROUPMEM *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_QUERY_GROUPMEM, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_QUERY_GROUPMEM, + (ndr_pull_fn_t) ndr_pull_samr_QUERY_GROUPMEM, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_SET_MEMBER_ATTRIBUTES_OF_GROUP(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_SET_MEMBER_ATTRIBUTES_OF_GROUP *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_SET_MEMBER_ATTRIBUTES_OF_GROUP, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_SET_MEMBER_ATTRIBUTES_OF_GROUP, + (ndr_pull_fn_t) ndr_pull_samr_SET_MEMBER_ATTRIBUTES_OF_GROUP, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_OPEN_ALIAS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_OPEN_ALIAS *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_OPEN_ALIAS, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_OPEN_ALIAS, + (ndr_pull_fn_t) ndr_pull_samr_OPEN_ALIAS, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_QUERY_ALIASINFO(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_QUERY_ALIASINFO *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_QUERY_ALIASINFO, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_QUERY_ALIASINFO, + (ndr_pull_fn_t) ndr_pull_samr_QUERY_ALIASINFO, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_SET_ALIASINFO(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_SET_ALIASINFO *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_SET_ALIASINFO, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_SET_ALIASINFO, + (ndr_pull_fn_t) ndr_pull_samr_SET_ALIASINFO, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_DELETE_DOM_ALIAS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_DELETE_DOM_ALIAS *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_DELETE_DOM_ALIAS, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_DELETE_DOM_ALIAS, + (ndr_pull_fn_t) ndr_pull_samr_DELETE_DOM_ALIAS, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_ADD_ALIASMEM(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_ADD_ALIASMEM *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_ADD_ALIASMEM, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_ADD_ALIASMEM, + (ndr_pull_fn_t) ndr_pull_samr_ADD_ALIASMEM, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_DEL_ALIASMEM(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_DEL_ALIASMEM *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_DEL_ALIASMEM, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_DEL_ALIASMEM, + (ndr_pull_fn_t) ndr_pull_samr_DEL_ALIASMEM, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_GET_MEMBERS_IN_ALIAS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_GET_MEMBERS_IN_ALIAS *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_GET_MEMBERS_IN_ALIAS, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_GET_MEMBERS_IN_ALIAS, + (ndr_pull_fn_t) ndr_pull_samr_GET_MEMBERS_IN_ALIAS, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_OPEN_USER(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_OPEN_USER *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_OPEN_USER, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_OPEN_USER, + (ndr_pull_fn_t) ndr_pull_samr_OPEN_USER, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_DELETE_DOM_USER(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_DELETE_DOM_USER *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_DELETE_DOM_USER, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_DELETE_DOM_USER, + (ndr_pull_fn_t) ndr_pull_samr_DELETE_DOM_USER, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_QUERY_USERINFO(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_QUERY_USERINFO *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_QUERY_USERINFO, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_QUERY_USERINFO, + (ndr_pull_fn_t) ndr_pull_samr_QUERY_USERINFO, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_SET_USERINFO(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_SET_USERINFO *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_SET_USERINFO, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_SET_USERINFO, + (ndr_pull_fn_t) ndr_pull_samr_SET_USERINFO, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_CHANGE_PASSWORD_USER(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_CHANGE_PASSWORD_USER *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_CHANGE_PASSWORD_USER, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_CHANGE_PASSWORD_USER, + (ndr_pull_fn_t) ndr_pull_samr_CHANGE_PASSWORD_USER, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_GET_GROUPS_FOR_USER(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_GET_GROUPS_FOR_USER *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_GET_GROUPS_FOR_USER, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_GET_GROUPS_FOR_USER, + (ndr_pull_fn_t) ndr_pull_samr_GET_GROUPS_FOR_USER, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_QUERY_DISPINFO(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_QUERY_DISPINFO *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_QUERY_DISPINFO, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_QUERY_DISPINFO, + (ndr_pull_fn_t) ndr_pull_samr_QUERY_DISPINFO, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_GET_DISPLAY_ENUMERATION_INDEX(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_GET_DISPLAY_ENUMERATION_INDEX *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_GET_DISPLAY_ENUMERATION_INDEX, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_GET_DISPLAY_ENUMERATION_INDEX, + (ndr_pull_fn_t) ndr_pull_samr_GET_DISPLAY_ENUMERATION_INDEX, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_TEST_PRIVATE_FUNCTIONS_DOMAIN(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_TEST_PRIVATE_FUNCTIONS_DOMAIN *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_TEST_PRIVATE_FUNCTIONS_DOMAIN, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_TEST_PRIVATE_FUNCTIONS_DOMAIN, + (ndr_pull_fn_t) ndr_pull_samr_TEST_PRIVATE_FUNCTIONS_DOMAIN, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_TEST_PRIVATE_FUNCTIONS_USER(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_TEST_PRIVATE_FUNCTIONS_USER *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_TEST_PRIVATE_FUNCTIONS_USER, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_TEST_PRIVATE_FUNCTIONS_USER, + (ndr_pull_fn_t) ndr_pull_samr_TEST_PRIVATE_FUNCTIONS_USER, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_GET_USRDOM_PWINFO(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_GET_USRDOM_PWINFO *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_GET_USRDOM_PWINFO, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_GET_USRDOM_PWINFO, + (ndr_pull_fn_t) ndr_pull_samr_GET_USRDOM_PWINFO, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN, + (ndr_pull_fn_t) ndr_pull_samr_REMOVE_MEMBER_FROM_FOREIGN_DOMAIN, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_QUERY_INFORMATION_DOMAIN2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_QUERY_INFORMATION_DOMAIN2 *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_QUERY_INFORMATION_DOMAIN2, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_QUERY_INFORMATION_DOMAIN2, + (ndr_pull_fn_t) ndr_pull_samr_QUERY_INFORMATION_DOMAIN2, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_QUERY_INFORMATION_USER2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_QUERY_INFORMATION_USER2 *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_QUERY_INFORMATION_USER2, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_QUERY_INFORMATION_USER2, + (ndr_pull_fn_t) ndr_pull_samr_QUERY_INFORMATION_USER2, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_QUERY_DISPINFO2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_QUERY_DISPINFO2 *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_QUERY_DISPINFO2, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_QUERY_DISPINFO2, + (ndr_pull_fn_t) ndr_pull_samr_QUERY_DISPINFO2, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_GET_DISPLAY_ENUMERATION_INDEX2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_GET_DISPLAY_ENUMERATION_INDEX2 *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_GET_DISPLAY_ENUMERATION_INDEX2, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_GET_DISPLAY_ENUMERATION_INDEX2, + (ndr_pull_fn_t) ndr_pull_samr_GET_DISPLAY_ENUMERATION_INDEX2, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_CREATE_USER2_IN_DOMAIN(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_CREATE_USER2_IN_DOMAIN *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_CREATE_USER2_IN_DOMAIN, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_CREATE_USER2_IN_DOMAIN, + (ndr_pull_fn_t) ndr_pull_samr_CREATE_USER2_IN_DOMAIN, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_QUERY_DISPINFO3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_QUERY_DISPINFO3 *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_QUERY_DISPINFO3, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_QUERY_DISPINFO3, + (ndr_pull_fn_t) ndr_pull_samr_QUERY_DISPINFO3, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_ADD_MULTIPLE_MEMBERS_TO_ALIAS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_ADD_MULTIPLE_MEMBERS_TO_ALIAS *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_ADD_MULTIPLE_MEMBERS_TO_ALIAS, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_ADD_MULTIPLE_MEMBERS_TO_ALIAS, + (ndr_pull_fn_t) ndr_pull_samr_ADD_MULTIPLE_MEMBERS_TO_ALIAS, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS, + (ndr_pull_fn_t) ndr_pull_samr_REMOVE_MULTIPLE_MEMBERS_FROM_ALIAS, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_OEM_CHANGE_PASSWORD_USER2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_OEM_CHANGE_PASSWORD_USER2 *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_OEM_CHANGE_PASSWORD_USER2, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_OEM_CHANGE_PASSWORD_USER2, + (ndr_pull_fn_t) ndr_pull_samr_OEM_CHANGE_PASSWORD_USER2, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_UNICODE_CHANGE_PASSWORD_USER2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_UNICODE_CHANGE_PASSWORD_USER2 *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_UNICODE_CHANGE_PASSWORD_USER2, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_UNICODE_CHANGE_PASSWORD_USER2, + (ndr_pull_fn_t) ndr_pull_samr_UNICODE_CHANGE_PASSWORD_USER2, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_GET_DOM_PWINFO(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_GET_DOM_PWINFO *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_GET_DOM_PWINFO, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_GET_DOM_PWINFO, + (ndr_pull_fn_t) ndr_pull_samr_GET_DOM_PWINFO, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_CONNECT2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_CONNECT2 *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_CONNECT2, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_CONNECT2, + (ndr_pull_fn_t) ndr_pull_samr_CONNECT2, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_SET_USERINFO2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_SET_USERINFO2 *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_SET_USERINFO2, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_SET_USERINFO2, + (ndr_pull_fn_t) ndr_pull_samr_SET_USERINFO2, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_SET_BOOT_KEY_INFORMATION(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_SET_BOOT_KEY_INFORMATION *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_SET_BOOT_KEY_INFORMATION, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_SET_BOOT_KEY_INFORMATION, + (ndr_pull_fn_t) ndr_pull_samr_SET_BOOT_KEY_INFORMATION, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_GET_BOOT_KEY_INFORMATION(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_GET_BOOT_KEY_INFORMATION *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_GET_BOOT_KEY_INFORMATION, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_GET_BOOT_KEY_INFORMATION, + (ndr_pull_fn_t) ndr_pull_samr_GET_BOOT_KEY_INFORMATION, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_CONNECT3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_CONNECT3 *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_CONNECT3, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_CONNECT3, + (ndr_pull_fn_t) ndr_pull_samr_CONNECT3, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_CONNECT4(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_CONNECT4 *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_CONNECT4, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_CONNECT4, + (ndr_pull_fn_t) ndr_pull_samr_CONNECT4, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_UNICODE_CHANGE_PASSWORD_USER3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_UNICODE_CHANGE_PASSWORD_USER3 *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_UNICODE_CHANGE_PASSWORD_USER3, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_UNICODE_CHANGE_PASSWORD_USER3, + (ndr_pull_fn_t) ndr_pull_samr_UNICODE_CHANGE_PASSWORD_USER3, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_CONNECT5(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_CONNECT5 *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_CONNECT5, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_CONNECT5, + (ndr_pull_fn_t) ndr_pull_samr_CONNECT5, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_RID_TO_SID(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_RID_TO_SID *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_RID_TO_SID, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_RID_TO_SID, + (ndr_pull_fn_t) ndr_pull_samr_RID_TO_SID, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_SET_DSRM_PASSWORD(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_SET_DSRM_PASSWORD *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_SET_DSRM_PASSWORD, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_SET_DSRM_PASSWORD, + (ndr_pull_fn_t) ndr_pull_samr_SET_DSRM_PASSWORD, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} + +NTSTATUS dcerpc_samr_VALIDATE_PASSWORD(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct samr_VALIDATE_PASSWORD *r) +{ + NTSTATUS status; + status = dcerpc_ndr_request(p, DCERPC_SAMR_VALIDATE_PASSWORD, mem_ctx, + (ndr_push_fn_t) ndr_push_samr_VALIDATE_PASSWORD, + (ndr_pull_fn_t) ndr_pull_samr_VALIDATE_PASSWORD, + r); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + return r->out.result; +} -- cgit