summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2003-11-15 06:00:21 +0000
committerAndrew Tridgell <tridge@samba.org>2003-11-15 06:00:21 +0000
commitba5a060136145abdfa4915fe0fecc4afe1180627 (patch)
treea63f5c07b979c3ba44a31f53959761f857c3d912 /source4/librpc
parent78b7118d1aeccc9da490af614d4646a328ac2c46 (diff)
downloadsamba-ba5a060136145abdfa4915fe0fecc4afe1180627.tar.gz
samba-ba5a060136145abdfa4915fe0fecc4afe1180627.tar.bz2
samba-ba5a060136145abdfa4915fe0fecc4afe1180627.zip
added the first couple of calls from samr as IDL
samr_EnumDomains() works nicely (This used to be commit 7c162eaf3bb0195f9a2da05d6acd3c8e620f08d1)
Diffstat (limited to 'source4/librpc')
-rw-r--r--source4/librpc/idl/samr.idl317
-rw-r--r--source4/librpc/ndr/libndr.h2
-rw-r--r--source4/librpc/ndr/ndr_samr.c1018
-rw-r--r--source4/librpc/ndr/ndr_samr.h779
-rw-r--r--source4/librpc/rpc/rpc_samr.c956
5 files changed, 3072 insertions, 0 deletions
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;
+}