• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/samba-3.5.8/librpc/gen_ndr/
1/* parser auto-generated by pidl */
2
3#include "includes.h"
4#include "../librpc/gen_ndr/ndr_samr.h"
5
6#include "librpc/gen_ndr/ndr_misc.h"
7#include "librpc/gen_ndr/ndr_lsa.h"
8#include "librpc/gen_ndr/ndr_security.h"
9_PUBLIC_ enum ndr_err_code ndr_push_netr_SamDatabaseID(struct ndr_push *ndr, int ndr_flags, enum netr_SamDatabaseID r)
10{
11	NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
12	return NDR_ERR_SUCCESS;
13}
14
15_PUBLIC_ enum ndr_err_code ndr_pull_netr_SamDatabaseID(struct ndr_pull *ndr, int ndr_flags, enum netr_SamDatabaseID *r)
16{
17	uint32_t v;
18	NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19	*r = v;
20	return NDR_ERR_SUCCESS;
21}
22
23_PUBLIC_ void ndr_print_netr_SamDatabaseID(struct ndr_print *ndr, const char *name, enum netr_SamDatabaseID r)
24{
25	const char *val = NULL;
26
27	switch (r) {
28		case SAM_DATABASE_DOMAIN: val = "SAM_DATABASE_DOMAIN"; break;
29		case SAM_DATABASE_BUILTIN: val = "SAM_DATABASE_BUILTIN"; break;
30		case SAM_DATABASE_PRIVS: val = "SAM_DATABASE_PRIVS"; break;
31	}
32	ndr_print_enum(ndr, name, "ENUM", val, r);
33}
34
35_PUBLIC_ enum ndr_err_code ndr_push_samr_RejectReason(struct ndr_push *ndr, int ndr_flags, enum samr_RejectReason r)
36{
37	NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
38	return NDR_ERR_SUCCESS;
39}
40
41_PUBLIC_ enum ndr_err_code ndr_pull_samr_RejectReason(struct ndr_pull *ndr, int ndr_flags, enum samr_RejectReason *r)
42{
43	uint32_t v;
44	NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
45	*r = v;
46	return NDR_ERR_SUCCESS;
47}
48
49_PUBLIC_ void ndr_print_samr_RejectReason(struct ndr_print *ndr, const char *name, enum samr_RejectReason r)
50{
51	const char *val = NULL;
52
53	switch (r) {
54		case SAMR_REJECT_OTHER: val = "SAMR_REJECT_OTHER"; break;
55		case SAMR_REJECT_TOO_SHORT: val = "SAMR_REJECT_TOO_SHORT"; break;
56		case SAMR_REJECT_IN_HISTORY: val = "SAMR_REJECT_IN_HISTORY"; break;
57		case SAMR_REJECT_COMPLEXITY: val = "SAMR_REJECT_COMPLEXITY"; break;
58	}
59	ndr_print_enum(ndr, name, "ENUM", val, r);
60}
61
62_PUBLIC_ enum ndr_err_code ndr_push_samr_AcctFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
63{
64	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
65	return NDR_ERR_SUCCESS;
66}
67
68_PUBLIC_ enum ndr_err_code ndr_pull_samr_AcctFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
69{
70	uint32_t v;
71	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
72	*r = v;
73	return NDR_ERR_SUCCESS;
74}
75
76_PUBLIC_ void ndr_print_samr_AcctFlags(struct ndr_print *ndr, const char *name, uint32_t r)
77{
78	ndr_print_uint32(ndr, name, r);
79	ndr->depth++;
80	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_DISABLED", ACB_DISABLED, r);
81	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_HOMDIRREQ", ACB_HOMDIRREQ, r);
82	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_PWNOTREQ", ACB_PWNOTREQ, r);
83	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_TEMPDUP", ACB_TEMPDUP, r);
84	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_NORMAL", ACB_NORMAL, r);
85	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_MNS", ACB_MNS, r);
86	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_DOMTRUST", ACB_DOMTRUST, r);
87	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_WSTRUST", ACB_WSTRUST, r);
88	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_SVRTRUST", ACB_SVRTRUST, r);
89	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_PWNOEXP", ACB_PWNOEXP, r);
90	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_AUTOLOCK", ACB_AUTOLOCK, r);
91	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_ENC_TXT_PWD_ALLOWED", ACB_ENC_TXT_PWD_ALLOWED, r);
92	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_SMARTCARD_REQUIRED", ACB_SMARTCARD_REQUIRED, r);
93	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_TRUSTED_FOR_DELEGATION", ACB_TRUSTED_FOR_DELEGATION, r);
94	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_NOT_DELEGATED", ACB_NOT_DELEGATED, r);
95	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_USE_DES_KEY_ONLY", ACB_USE_DES_KEY_ONLY, r);
96	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_DONT_REQUIRE_PREAUTH", ACB_DONT_REQUIRE_PREAUTH, r);
97	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_PW_EXPIRED", ACB_PW_EXPIRED, r);
98	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_NO_AUTH_DATA_REQD", ACB_NO_AUTH_DATA_REQD, r);
99	ndr->depth--;
100}
101
102static enum ndr_err_code ndr_push_samr_ConnectAccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
103{
104	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
105	return NDR_ERR_SUCCESS;
106}
107
108static enum ndr_err_code ndr_pull_samr_ConnectAccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
109{
110	uint32_t v;
111	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
112	*r = v;
113	return NDR_ERR_SUCCESS;
114}
115
116_PUBLIC_ void ndr_print_samr_ConnectAccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
117{
118	ndr_print_uint32(ndr, name, r);
119	ndr->depth++;
120	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ACCESS_CONNECT_TO_SERVER", SAMR_ACCESS_CONNECT_TO_SERVER, r);
121	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ACCESS_SHUTDOWN_SERVER", SAMR_ACCESS_SHUTDOWN_SERVER, r);
122	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ACCESS_INITIALIZE_SERVER", SAMR_ACCESS_INITIALIZE_SERVER, r);
123	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ACCESS_CREATE_DOMAIN", SAMR_ACCESS_CREATE_DOMAIN, r);
124	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ACCESS_ENUM_DOMAINS", SAMR_ACCESS_ENUM_DOMAINS, r);
125	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ACCESS_LOOKUP_DOMAIN", SAMR_ACCESS_LOOKUP_DOMAIN, r);
126	ndr->depth--;
127}
128
129static enum ndr_err_code ndr_push_samr_UserAccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
130{
131	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
132	return NDR_ERR_SUCCESS;
133}
134
135static enum ndr_err_code ndr_pull_samr_UserAccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
136{
137	uint32_t v;
138	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
139	*r = v;
140	return NDR_ERR_SUCCESS;
141}
142
143_PUBLIC_ void ndr_print_samr_UserAccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
144{
145	ndr_print_uint32(ndr, name, r);
146	ndr->depth++;
147	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_NAME_ETC", SAMR_USER_ACCESS_GET_NAME_ETC, r);
148	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_LOCALE", SAMR_USER_ACCESS_GET_LOCALE, r);
149	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_SET_LOC_COM", SAMR_USER_ACCESS_SET_LOC_COM, r);
150	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_LOGONINFO", SAMR_USER_ACCESS_GET_LOGONINFO, r);
151	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_ATTRIBUTES", SAMR_USER_ACCESS_GET_ATTRIBUTES, r);
152	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_SET_ATTRIBUTES", SAMR_USER_ACCESS_SET_ATTRIBUTES, r);
153	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_CHANGE_PASSWORD", SAMR_USER_ACCESS_CHANGE_PASSWORD, r);
154	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_SET_PASSWORD", SAMR_USER_ACCESS_SET_PASSWORD, r);
155	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_GROUPS", SAMR_USER_ACCESS_GET_GROUPS, r);
156	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP", SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP, r);
157	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP", SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP, r);
158	ndr->depth--;
159}
160
161static enum ndr_err_code ndr_push_samr_DomainAccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
162{
163	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
164	return NDR_ERR_SUCCESS;
165}
166
167static enum ndr_err_code ndr_pull_samr_DomainAccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
168{
169	uint32_t v;
170	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
171	*r = v;
172	return NDR_ERR_SUCCESS;
173}
174
175_PUBLIC_ void ndr_print_samr_DomainAccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
176{
177	ndr_print_uint32(ndr, name, r);
178	ndr->depth++;
179	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1", SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1, r);
180	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_SET_INFO_1", SAMR_DOMAIN_ACCESS_SET_INFO_1, r);
181	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2", SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2, r);
182	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_SET_INFO_2", SAMR_DOMAIN_ACCESS_SET_INFO_2, r);
183	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_CREATE_USER", SAMR_DOMAIN_ACCESS_CREATE_USER, r);
184	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_CREATE_GROUP", SAMR_DOMAIN_ACCESS_CREATE_GROUP, r);
185	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_CREATE_ALIAS", SAMR_DOMAIN_ACCESS_CREATE_ALIAS, r);
186	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS", SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS, r);
187	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS", SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS, r);
188	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT", SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT, r);
189	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_SET_INFO_3", SAMR_DOMAIN_ACCESS_SET_INFO_3, r);
190	ndr->depth--;
191}
192
193static enum ndr_err_code ndr_push_samr_GroupAccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
194{
195	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
196	return NDR_ERR_SUCCESS;
197}
198
199static enum ndr_err_code ndr_pull_samr_GroupAccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
200{
201	uint32_t v;
202	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
203	*r = v;
204	return NDR_ERR_SUCCESS;
205}
206
207_PUBLIC_ void ndr_print_samr_GroupAccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
208{
209	ndr_print_uint32(ndr, name, r);
210	ndr->depth++;
211	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_GROUP_ACCESS_LOOKUP_INFO", SAMR_GROUP_ACCESS_LOOKUP_INFO, r);
212	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_GROUP_ACCESS_SET_INFO", SAMR_GROUP_ACCESS_SET_INFO, r);
213	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_GROUP_ACCESS_ADD_MEMBER", SAMR_GROUP_ACCESS_ADD_MEMBER, r);
214	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_GROUP_ACCESS_REMOVE_MEMBER", SAMR_GROUP_ACCESS_REMOVE_MEMBER, r);
215	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_GROUP_ACCESS_GET_MEMBERS", SAMR_GROUP_ACCESS_GET_MEMBERS, r);
216	ndr->depth--;
217}
218
219static enum ndr_err_code ndr_push_samr_AliasAccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
220{
221	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
222	return NDR_ERR_SUCCESS;
223}
224
225static enum ndr_err_code ndr_pull_samr_AliasAccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
226{
227	uint32_t v;
228	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
229	*r = v;
230	return NDR_ERR_SUCCESS;
231}
232
233_PUBLIC_ void ndr_print_samr_AliasAccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
234{
235	ndr_print_uint32(ndr, name, r);
236	ndr->depth++;
237	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_ADD_MEMBER", SAMR_ALIAS_ACCESS_ADD_MEMBER, r);
238	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_REMOVE_MEMBER", SAMR_ALIAS_ACCESS_REMOVE_MEMBER, r);
239	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_GET_MEMBERS", SAMR_ALIAS_ACCESS_GET_MEMBERS, r);
240	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_LOOKUP_INFO", SAMR_ALIAS_ACCESS_LOOKUP_INFO, r);
241	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_SET_INFO", SAMR_ALIAS_ACCESS_SET_INFO, r);
242	ndr->depth--;
243}
244
245static enum ndr_err_code ndr_push_samr_SamEntry(struct ndr_push *ndr, int ndr_flags, const struct samr_SamEntry *r)
246{
247	if (ndr_flags & NDR_SCALARS) {
248		NDR_CHECK(ndr_push_align(ndr, 5));
249		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->idx));
250		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->name));
251		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
252	}
253	if (ndr_flags & NDR_BUFFERS) {
254		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->name));
255	}
256	return NDR_ERR_SUCCESS;
257}
258
259static enum ndr_err_code ndr_pull_samr_SamEntry(struct ndr_pull *ndr, int ndr_flags, struct samr_SamEntry *r)
260{
261	if (ndr_flags & NDR_SCALARS) {
262		NDR_CHECK(ndr_pull_align(ndr, 5));
263		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->idx));
264		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->name));
265		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
266	}
267	if (ndr_flags & NDR_BUFFERS) {
268		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->name));
269	}
270	return NDR_ERR_SUCCESS;
271}
272
273_PUBLIC_ void ndr_print_samr_SamEntry(struct ndr_print *ndr, const char *name, const struct samr_SamEntry *r)
274{
275	ndr_print_struct(ndr, name, "samr_SamEntry");
276	ndr->depth++;
277	ndr_print_uint32(ndr, "idx", r->idx);
278	ndr_print_lsa_String(ndr, "name", &r->name);
279	ndr->depth--;
280}
281
282static enum ndr_err_code ndr_push_samr_SamArray(struct ndr_push *ndr, int ndr_flags, const struct samr_SamArray *r)
283{
284	uint32_t cntr_entries_1;
285	if (ndr_flags & NDR_SCALARS) {
286		NDR_CHECK(ndr_push_align(ndr, 5));
287		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
288		NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
289		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
290	}
291	if (ndr_flags & NDR_BUFFERS) {
292		if (r->entries) {
293			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
294			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
295				NDR_CHECK(ndr_push_samr_SamEntry(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
296			}
297			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
298				NDR_CHECK(ndr_push_samr_SamEntry(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
299			}
300		}
301	}
302	return NDR_ERR_SUCCESS;
303}
304
305static enum ndr_err_code ndr_pull_samr_SamArray(struct ndr_pull *ndr, int ndr_flags, struct samr_SamArray *r)
306{
307	uint32_t _ptr_entries;
308	uint32_t cntr_entries_1;
309	TALLOC_CTX *_mem_save_entries_0;
310	TALLOC_CTX *_mem_save_entries_1;
311	if (ndr_flags & NDR_SCALARS) {
312		NDR_CHECK(ndr_pull_align(ndr, 5));
313		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
314		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
315		if (_ptr_entries) {
316			NDR_PULL_ALLOC(ndr, r->entries);
317		} else {
318			r->entries = NULL;
319		}
320		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
321	}
322	if (ndr_flags & NDR_BUFFERS) {
323		if (r->entries) {
324			_mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
325			NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
326			NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
327			NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
328			_mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
329			NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
330			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
331				NDR_CHECK(ndr_pull_samr_SamEntry(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
332			}
333			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
334				NDR_CHECK(ndr_pull_samr_SamEntry(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
335			}
336			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
337			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
338		}
339		if (r->entries) {
340			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
341		}
342	}
343	return NDR_ERR_SUCCESS;
344}
345
346_PUBLIC_ void ndr_print_samr_SamArray(struct ndr_print *ndr, const char *name, const struct samr_SamArray *r)
347{
348	uint32_t cntr_entries_1;
349	ndr_print_struct(ndr, name, "samr_SamArray");
350	ndr->depth++;
351	ndr_print_uint32(ndr, "count", r->count);
352	ndr_print_ptr(ndr, "entries", r->entries);
353	ndr->depth++;
354	if (r->entries) {
355		ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
356		ndr->depth++;
357		for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
358			char *idx_1=NULL;
359			if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
360				ndr_print_samr_SamEntry(ndr, "entries", &r->entries[cntr_entries_1]);
361				free(idx_1);
362			}
363		}
364		ndr->depth--;
365	}
366	ndr->depth--;
367	ndr->depth--;
368}
369
370static enum ndr_err_code ndr_push_samr_DomainInfoClass(struct ndr_push *ndr, int ndr_flags, enum samr_DomainInfoClass r)
371{
372	NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
373	return NDR_ERR_SUCCESS;
374}
375
376static enum ndr_err_code ndr_pull_samr_DomainInfoClass(struct ndr_pull *ndr, int ndr_flags, enum samr_DomainInfoClass *r)
377{
378	uint16_t v;
379	NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
380	*r = v;
381	return NDR_ERR_SUCCESS;
382}
383
384_PUBLIC_ void ndr_print_samr_DomainInfoClass(struct ndr_print *ndr, const char *name, enum samr_DomainInfoClass r)
385{
386	const char *val = NULL;
387
388	switch (r) {
389		case DomainPasswordInformation: val = "DomainPasswordInformation"; break;
390		case DomainGeneralInformation: val = "DomainGeneralInformation"; break;
391		case DomainLogoffInformation: val = "DomainLogoffInformation"; break;
392		case DomainOemInformation: val = "DomainOemInformation"; break;
393		case DomainNameInformation: val = "DomainNameInformation"; break;
394		case DomainReplicationInformation: val = "DomainReplicationInformation"; break;
395		case DomainServerRoleInformation: val = "DomainServerRoleInformation"; break;
396		case DomainModifiedInformation: val = "DomainModifiedInformation"; break;
397		case DomainStateInformation: val = "DomainStateInformation"; break;
398		case DomainUasInformation: val = "DomainUasInformation"; break;
399		case DomainGeneralInformation2: val = "DomainGeneralInformation2"; break;
400		case DomainLockoutInformation: val = "DomainLockoutInformation"; break;
401		case DomainModifiedInformation2: val = "DomainModifiedInformation2"; break;
402	}
403	ndr_print_enum(ndr, name, "ENUM", val, r);
404}
405
406static enum ndr_err_code ndr_push_samr_Role(struct ndr_push *ndr, int ndr_flags, enum samr_Role r)
407{
408	NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
409	return NDR_ERR_SUCCESS;
410}
411
412static enum ndr_err_code ndr_pull_samr_Role(struct ndr_pull *ndr, int ndr_flags, enum samr_Role *r)
413{
414	uint32_t v;
415	NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
416	*r = v;
417	return NDR_ERR_SUCCESS;
418}
419
420_PUBLIC_ void ndr_print_samr_Role(struct ndr_print *ndr, const char *name, enum samr_Role r)
421{
422	const char *val = NULL;
423
424	switch (r) {
425		case SAMR_ROLE_STANDALONE: val = "SAMR_ROLE_STANDALONE"; break;
426		case SAMR_ROLE_DOMAIN_MEMBER: val = "SAMR_ROLE_DOMAIN_MEMBER"; break;
427		case SAMR_ROLE_DOMAIN_BDC: val = "SAMR_ROLE_DOMAIN_BDC"; break;
428		case SAMR_ROLE_DOMAIN_PDC: val = "SAMR_ROLE_DOMAIN_PDC"; break;
429	}
430	ndr_print_enum(ndr, name, "ENUM", val, r);
431}
432
433_PUBLIC_ enum ndr_err_code ndr_push_samr_PasswordProperties(struct ndr_push *ndr, int ndr_flags, uint32_t r)
434{
435	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
436	return NDR_ERR_SUCCESS;
437}
438
439_PUBLIC_ enum ndr_err_code ndr_pull_samr_PasswordProperties(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
440{
441	uint32_t v;
442	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
443	*r = v;
444	return NDR_ERR_SUCCESS;
445}
446
447_PUBLIC_ void ndr_print_samr_PasswordProperties(struct ndr_print *ndr, const char *name, uint32_t r)
448{
449	ndr_print_uint32(ndr, name, r);
450	ndr->depth++;
451	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DOMAIN_PASSWORD_COMPLEX", DOMAIN_PASSWORD_COMPLEX, r);
452	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DOMAIN_PASSWORD_NO_ANON_CHANGE", DOMAIN_PASSWORD_NO_ANON_CHANGE, r);
453	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DOMAIN_PASSWORD_NO_CLEAR_CHANGE", DOMAIN_PASSWORD_NO_CLEAR_CHANGE, r);
454	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DOMAIN_PASSWORD_LOCKOUT_ADMINS", DOMAIN_PASSWORD_LOCKOUT_ADMINS, r);
455	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DOMAIN_PASSWORD_STORE_CLEARTEXT", DOMAIN_PASSWORD_STORE_CLEARTEXT, r);
456	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DOMAIN_REFUSE_PASSWORD_CHANGE", DOMAIN_REFUSE_PASSWORD_CHANGE, r);
457	ndr->depth--;
458}
459
460static enum ndr_err_code ndr_push_samr_DomainServerState(struct ndr_push *ndr, int ndr_flags, enum samr_DomainServerState r)
461{
462	NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
463	return NDR_ERR_SUCCESS;
464}
465
466static enum ndr_err_code ndr_pull_samr_DomainServerState(struct ndr_pull *ndr, int ndr_flags, enum samr_DomainServerState *r)
467{
468	uint32_t v;
469	NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
470	*r = v;
471	return NDR_ERR_SUCCESS;
472}
473
474_PUBLIC_ void ndr_print_samr_DomainServerState(struct ndr_print *ndr, const char *name, enum samr_DomainServerState r)
475{
476	const char *val = NULL;
477
478	switch (r) {
479		case DOMAIN_SERVER_ENABLED: val = "DOMAIN_SERVER_ENABLED"; break;
480		case DOMAIN_SERVER_DISABLED: val = "DOMAIN_SERVER_DISABLED"; break;
481	}
482	ndr_print_enum(ndr, name, "ENUM", val, r);
483}
484
485static enum ndr_err_code ndr_push_samr_DomInfo1(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo1 *r)
486{
487	if (ndr_flags & NDR_SCALARS) {
488		NDR_CHECK(ndr_push_align(ndr, 4));
489		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
490		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
491		NDR_CHECK(ndr_push_samr_PasswordProperties(ndr, NDR_SCALARS, r->password_properties));
492		NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
493		NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
494		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
495	}
496	if (ndr_flags & NDR_BUFFERS) {
497	}
498	return NDR_ERR_SUCCESS;
499}
500
501static enum ndr_err_code ndr_pull_samr_DomInfo1(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo1 *r)
502{
503	if (ndr_flags & NDR_SCALARS) {
504		NDR_CHECK(ndr_pull_align(ndr, 4));
505		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
506		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
507		NDR_CHECK(ndr_pull_samr_PasswordProperties(ndr, NDR_SCALARS, &r->password_properties));
508		NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
509		NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
510		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
511	}
512	if (ndr_flags & NDR_BUFFERS) {
513	}
514	return NDR_ERR_SUCCESS;
515}
516
517_PUBLIC_ void ndr_print_samr_DomInfo1(struct ndr_print *ndr, const char *name, const struct samr_DomInfo1 *r)
518{
519	ndr_print_struct(ndr, name, "samr_DomInfo1");
520	ndr->depth++;
521	ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
522	ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
523	ndr_print_samr_PasswordProperties(ndr, "password_properties", r->password_properties);
524	ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
525	ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
526	ndr->depth--;
527}
528
529static enum ndr_err_code ndr_push_samr_DomGeneralInformation(struct ndr_push *ndr, int ndr_flags, const struct samr_DomGeneralInformation *r)
530{
531	if (ndr_flags & NDR_SCALARS) {
532		NDR_CHECK(ndr_push_align(ndr, 5));
533		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_logoff_time));
534		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
535		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
536		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary));
537		NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
538		NDR_CHECK(ndr_push_samr_DomainServerState(ndr, NDR_SCALARS, r->domain_server_state));
539		NDR_CHECK(ndr_push_samr_Role(ndr, NDR_SCALARS, r->role));
540		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
541		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_users));
542		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_groups));
543		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_aliases));
544		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
545	}
546	if (ndr_flags & NDR_BUFFERS) {
547		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
548		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
549		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary));
550	}
551	return NDR_ERR_SUCCESS;
552}
553
554static enum ndr_err_code ndr_pull_samr_DomGeneralInformation(struct ndr_pull *ndr, int ndr_flags, struct samr_DomGeneralInformation *r)
555{
556	if (ndr_flags & NDR_SCALARS) {
557		NDR_CHECK(ndr_pull_align(ndr, 5));
558		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_logoff_time));
559		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
560		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
561		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary));
562		NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
563		NDR_CHECK(ndr_pull_samr_DomainServerState(ndr, NDR_SCALARS, &r->domain_server_state));
564		NDR_CHECK(ndr_pull_samr_Role(ndr, NDR_SCALARS, &r->role));
565		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
566		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_users));
567		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_groups));
568		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_aliases));
569		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
570	}
571	if (ndr_flags & NDR_BUFFERS) {
572		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
573		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
574		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary));
575	}
576	return NDR_ERR_SUCCESS;
577}
578
579_PUBLIC_ void ndr_print_samr_DomGeneralInformation(struct ndr_print *ndr, const char *name, const struct samr_DomGeneralInformation *r)
580{
581	ndr_print_struct(ndr, name, "samr_DomGeneralInformation");
582	ndr->depth++;
583	ndr_print_NTTIME(ndr, "force_logoff_time", r->force_logoff_time);
584	ndr_print_lsa_String(ndr, "oem_information", &r->oem_information);
585	ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
586	ndr_print_lsa_String(ndr, "primary", &r->primary);
587	ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
588	ndr_print_samr_DomainServerState(ndr, "domain_server_state", r->domain_server_state);
589	ndr_print_samr_Role(ndr, "role", r->role);
590	ndr_print_uint32(ndr, "unknown3", r->unknown3);
591	ndr_print_uint32(ndr, "num_users", r->num_users);
592	ndr_print_uint32(ndr, "num_groups", r->num_groups);
593	ndr_print_uint32(ndr, "num_aliases", r->num_aliases);
594	ndr->depth--;
595}
596
597static enum ndr_err_code ndr_push_samr_DomInfo3(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo3 *r)
598{
599	if (ndr_flags & NDR_SCALARS) {
600		NDR_CHECK(ndr_push_align(ndr, 4));
601		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_logoff_time));
602		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
603	}
604	if (ndr_flags & NDR_BUFFERS) {
605	}
606	return NDR_ERR_SUCCESS;
607}
608
609static enum ndr_err_code ndr_pull_samr_DomInfo3(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo3 *r)
610{
611	if (ndr_flags & NDR_SCALARS) {
612		NDR_CHECK(ndr_pull_align(ndr, 4));
613		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_logoff_time));
614		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
615	}
616	if (ndr_flags & NDR_BUFFERS) {
617	}
618	return NDR_ERR_SUCCESS;
619}
620
621_PUBLIC_ void ndr_print_samr_DomInfo3(struct ndr_print *ndr, const char *name, const struct samr_DomInfo3 *r)
622{
623	ndr_print_struct(ndr, name, "samr_DomInfo3");
624	ndr->depth++;
625	ndr_print_NTTIME(ndr, "force_logoff_time", r->force_logoff_time);
626	ndr->depth--;
627}
628
629static enum ndr_err_code ndr_push_samr_DomOEMInformation(struct ndr_push *ndr, int ndr_flags, const struct samr_DomOEMInformation *r)
630{
631	if (ndr_flags & NDR_SCALARS) {
632		NDR_CHECK(ndr_push_align(ndr, 5));
633		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
634		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
635	}
636	if (ndr_flags & NDR_BUFFERS) {
637		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
638	}
639	return NDR_ERR_SUCCESS;
640}
641
642static enum ndr_err_code ndr_pull_samr_DomOEMInformation(struct ndr_pull *ndr, int ndr_flags, struct samr_DomOEMInformation *r)
643{
644	if (ndr_flags & NDR_SCALARS) {
645		NDR_CHECK(ndr_pull_align(ndr, 5));
646		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
647		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
648	}
649	if (ndr_flags & NDR_BUFFERS) {
650		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
651	}
652	return NDR_ERR_SUCCESS;
653}
654
655_PUBLIC_ void ndr_print_samr_DomOEMInformation(struct ndr_print *ndr, const char *name, const struct samr_DomOEMInformation *r)
656{
657	ndr_print_struct(ndr, name, "samr_DomOEMInformation");
658	ndr->depth++;
659	ndr_print_lsa_String(ndr, "oem_information", &r->oem_information);
660	ndr->depth--;
661}
662
663static enum ndr_err_code ndr_push_samr_DomInfo5(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo5 *r)
664{
665	if (ndr_flags & NDR_SCALARS) {
666		NDR_CHECK(ndr_push_align(ndr, 5));
667		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
668		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
669	}
670	if (ndr_flags & NDR_BUFFERS) {
671		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
672	}
673	return NDR_ERR_SUCCESS;
674}
675
676static enum ndr_err_code ndr_pull_samr_DomInfo5(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo5 *r)
677{
678	if (ndr_flags & NDR_SCALARS) {
679		NDR_CHECK(ndr_pull_align(ndr, 5));
680		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
681		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
682	}
683	if (ndr_flags & NDR_BUFFERS) {
684		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
685	}
686	return NDR_ERR_SUCCESS;
687}
688
689_PUBLIC_ void ndr_print_samr_DomInfo5(struct ndr_print *ndr, const char *name, const struct samr_DomInfo5 *r)
690{
691	ndr_print_struct(ndr, name, "samr_DomInfo5");
692	ndr->depth++;
693	ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
694	ndr->depth--;
695}
696
697static enum ndr_err_code ndr_push_samr_DomInfo6(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo6 *r)
698{
699	if (ndr_flags & NDR_SCALARS) {
700		NDR_CHECK(ndr_push_align(ndr, 5));
701		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary));
702		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
703	}
704	if (ndr_flags & NDR_BUFFERS) {
705		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary));
706	}
707	return NDR_ERR_SUCCESS;
708}
709
710static enum ndr_err_code ndr_pull_samr_DomInfo6(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo6 *r)
711{
712	if (ndr_flags & NDR_SCALARS) {
713		NDR_CHECK(ndr_pull_align(ndr, 5));
714		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary));
715		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
716	}
717	if (ndr_flags & NDR_BUFFERS) {
718		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary));
719	}
720	return NDR_ERR_SUCCESS;
721}
722
723_PUBLIC_ void ndr_print_samr_DomInfo6(struct ndr_print *ndr, const char *name, const struct samr_DomInfo6 *r)
724{
725	ndr_print_struct(ndr, name, "samr_DomInfo6");
726	ndr->depth++;
727	ndr_print_lsa_String(ndr, "primary", &r->primary);
728	ndr->depth--;
729}
730
731static enum ndr_err_code ndr_push_samr_DomInfo7(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo7 *r)
732{
733	if (ndr_flags & NDR_SCALARS) {
734		NDR_CHECK(ndr_push_align(ndr, 4));
735		NDR_CHECK(ndr_push_samr_Role(ndr, NDR_SCALARS, r->role));
736		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
737	}
738	if (ndr_flags & NDR_BUFFERS) {
739	}
740	return NDR_ERR_SUCCESS;
741}
742
743static enum ndr_err_code ndr_pull_samr_DomInfo7(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo7 *r)
744{
745	if (ndr_flags & NDR_SCALARS) {
746		NDR_CHECK(ndr_pull_align(ndr, 4));
747		NDR_CHECK(ndr_pull_samr_Role(ndr, NDR_SCALARS, &r->role));
748		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
749	}
750	if (ndr_flags & NDR_BUFFERS) {
751	}
752	return NDR_ERR_SUCCESS;
753}
754
755_PUBLIC_ void ndr_print_samr_DomInfo7(struct ndr_print *ndr, const char *name, const struct samr_DomInfo7 *r)
756{
757	ndr_print_struct(ndr, name, "samr_DomInfo7");
758	ndr->depth++;
759	ndr_print_samr_Role(ndr, "role", r->role);
760	ndr->depth--;
761}
762
763static enum ndr_err_code ndr_push_samr_DomInfo8(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo8 *r)
764{
765	if (ndr_flags & NDR_SCALARS) {
766		NDR_CHECK(ndr_push_align(ndr, 8));
767		NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->sequence_num));
768		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
769		NDR_CHECK(ndr_push_trailer_align(ndr, 8));
770	}
771	if (ndr_flags & NDR_BUFFERS) {
772	}
773	return NDR_ERR_SUCCESS;
774}
775
776static enum ndr_err_code ndr_pull_samr_DomInfo8(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo8 *r)
777{
778	if (ndr_flags & NDR_SCALARS) {
779		NDR_CHECK(ndr_pull_align(ndr, 8));
780		NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->sequence_num));
781		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
782		NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
783	}
784	if (ndr_flags & NDR_BUFFERS) {
785	}
786	return NDR_ERR_SUCCESS;
787}
788
789_PUBLIC_ void ndr_print_samr_DomInfo8(struct ndr_print *ndr, const char *name, const struct samr_DomInfo8 *r)
790{
791	ndr_print_struct(ndr, name, "samr_DomInfo8");
792	ndr->depth++;
793	ndr_print_hyper(ndr, "sequence_num", r->sequence_num);
794	ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
795	ndr->depth--;
796}
797
798static enum ndr_err_code ndr_push_samr_DomInfo9(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo9 *r)
799{
800	if (ndr_flags & NDR_SCALARS) {
801		NDR_CHECK(ndr_push_align(ndr, 4));
802		NDR_CHECK(ndr_push_samr_DomainServerState(ndr, NDR_SCALARS, r->domain_server_state));
803		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
804	}
805	if (ndr_flags & NDR_BUFFERS) {
806	}
807	return NDR_ERR_SUCCESS;
808}
809
810static enum ndr_err_code ndr_pull_samr_DomInfo9(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo9 *r)
811{
812	if (ndr_flags & NDR_SCALARS) {
813		NDR_CHECK(ndr_pull_align(ndr, 4));
814		NDR_CHECK(ndr_pull_samr_DomainServerState(ndr, NDR_SCALARS, &r->domain_server_state));
815		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
816	}
817	if (ndr_flags & NDR_BUFFERS) {
818	}
819	return NDR_ERR_SUCCESS;
820}
821
822_PUBLIC_ void ndr_print_samr_DomInfo9(struct ndr_print *ndr, const char *name, const struct samr_DomInfo9 *r)
823{
824	ndr_print_struct(ndr, name, "samr_DomInfo9");
825	ndr->depth++;
826	ndr_print_samr_DomainServerState(ndr, "domain_server_state", r->domain_server_state);
827	ndr->depth--;
828}
829
830static enum ndr_err_code ndr_push_samr_DomGeneralInformation2(struct ndr_push *ndr, int ndr_flags, const struct samr_DomGeneralInformation2 *r)
831{
832	if (ndr_flags & NDR_SCALARS) {
833		NDR_CHECK(ndr_push_align(ndr, 8));
834		NDR_CHECK(ndr_push_samr_DomGeneralInformation(ndr, NDR_SCALARS, &r->general));
835		NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->lockout_duration));
836		NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->lockout_window));
837		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lockout_threshold));
838		NDR_CHECK(ndr_push_trailer_align(ndr, 8));
839	}
840	if (ndr_flags & NDR_BUFFERS) {
841		NDR_CHECK(ndr_push_samr_DomGeneralInformation(ndr, NDR_BUFFERS, &r->general));
842	}
843	return NDR_ERR_SUCCESS;
844}
845
846static enum ndr_err_code ndr_pull_samr_DomGeneralInformation2(struct ndr_pull *ndr, int ndr_flags, struct samr_DomGeneralInformation2 *r)
847{
848	if (ndr_flags & NDR_SCALARS) {
849		NDR_CHECK(ndr_pull_align(ndr, 8));
850		NDR_CHECK(ndr_pull_samr_DomGeneralInformation(ndr, NDR_SCALARS, &r->general));
851		NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->lockout_duration));
852		NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->lockout_window));
853		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lockout_threshold));
854		NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
855	}
856	if (ndr_flags & NDR_BUFFERS) {
857		NDR_CHECK(ndr_pull_samr_DomGeneralInformation(ndr, NDR_BUFFERS, &r->general));
858	}
859	return NDR_ERR_SUCCESS;
860}
861
862_PUBLIC_ void ndr_print_samr_DomGeneralInformation2(struct ndr_print *ndr, const char *name, const struct samr_DomGeneralInformation2 *r)
863{
864	ndr_print_struct(ndr, name, "samr_DomGeneralInformation2");
865	ndr->depth++;
866	ndr_print_samr_DomGeneralInformation(ndr, "general", &r->general);
867	ndr_print_hyper(ndr, "lockout_duration", r->lockout_duration);
868	ndr_print_hyper(ndr, "lockout_window", r->lockout_window);
869	ndr_print_uint16(ndr, "lockout_threshold", r->lockout_threshold);
870	ndr->depth--;
871}
872
873static enum ndr_err_code ndr_push_samr_DomInfo12(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo12 *r)
874{
875	if (ndr_flags & NDR_SCALARS) {
876		NDR_CHECK(ndr_push_align(ndr, 8));
877		NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->lockout_duration));
878		NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->lockout_window));
879		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lockout_threshold));
880		NDR_CHECK(ndr_push_trailer_align(ndr, 8));
881	}
882	if (ndr_flags & NDR_BUFFERS) {
883	}
884	return NDR_ERR_SUCCESS;
885}
886
887static enum ndr_err_code ndr_pull_samr_DomInfo12(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo12 *r)
888{
889	if (ndr_flags & NDR_SCALARS) {
890		NDR_CHECK(ndr_pull_align(ndr, 8));
891		NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->lockout_duration));
892		NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->lockout_window));
893		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lockout_threshold));
894		NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
895	}
896	if (ndr_flags & NDR_BUFFERS) {
897	}
898	return NDR_ERR_SUCCESS;
899}
900
901_PUBLIC_ void ndr_print_samr_DomInfo12(struct ndr_print *ndr, const char *name, const struct samr_DomInfo12 *r)
902{
903	ndr_print_struct(ndr, name, "samr_DomInfo12");
904	ndr->depth++;
905	ndr_print_hyper(ndr, "lockout_duration", r->lockout_duration);
906	ndr_print_hyper(ndr, "lockout_window", r->lockout_window);
907	ndr_print_uint16(ndr, "lockout_threshold", r->lockout_threshold);
908	ndr->depth--;
909}
910
911static enum ndr_err_code ndr_push_samr_DomInfo13(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo13 *r)
912{
913	if (ndr_flags & NDR_SCALARS) {
914		NDR_CHECK(ndr_push_align(ndr, 8));
915		NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->sequence_num));
916		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
917		NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->modified_count_at_last_promotion));
918		NDR_CHECK(ndr_push_trailer_align(ndr, 8));
919	}
920	if (ndr_flags & NDR_BUFFERS) {
921	}
922	return NDR_ERR_SUCCESS;
923}
924
925static enum ndr_err_code ndr_pull_samr_DomInfo13(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo13 *r)
926{
927	if (ndr_flags & NDR_SCALARS) {
928		NDR_CHECK(ndr_pull_align(ndr, 8));
929		NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->sequence_num));
930		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
931		NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->modified_count_at_last_promotion));
932		NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
933	}
934	if (ndr_flags & NDR_BUFFERS) {
935	}
936	return NDR_ERR_SUCCESS;
937}
938
939_PUBLIC_ void ndr_print_samr_DomInfo13(struct ndr_print *ndr, const char *name, const struct samr_DomInfo13 *r)
940{
941	ndr_print_struct(ndr, name, "samr_DomInfo13");
942	ndr->depth++;
943	ndr_print_hyper(ndr, "sequence_num", r->sequence_num);
944	ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
945	ndr_print_hyper(ndr, "modified_count_at_last_promotion", r->modified_count_at_last_promotion);
946	ndr->depth--;
947}
948
949static enum ndr_err_code ndr_push_samr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union samr_DomainInfo *r)
950{
951	if (ndr_flags & NDR_SCALARS) {
952		int level = ndr_push_get_switch_value(ndr, r);
953		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
954		NDR_CHECK(ndr_push_union_align(ndr, 8));
955		switch (level) {
956			case 1: {
957				NDR_CHECK(ndr_push_samr_DomInfo1(ndr, NDR_SCALARS, &r->info1));
958			break; }
959
960			case 2: {
961				NDR_CHECK(ndr_push_samr_DomGeneralInformation(ndr, NDR_SCALARS, &r->general));
962			break; }
963
964			case 3: {
965				NDR_CHECK(ndr_push_samr_DomInfo3(ndr, NDR_SCALARS, &r->info3));
966			break; }
967
968			case 4: {
969				NDR_CHECK(ndr_push_samr_DomOEMInformation(ndr, NDR_SCALARS, &r->oem));
970			break; }
971
972			case 5: {
973				NDR_CHECK(ndr_push_samr_DomInfo5(ndr, NDR_SCALARS, &r->info5));
974			break; }
975
976			case 6: {
977				NDR_CHECK(ndr_push_samr_DomInfo6(ndr, NDR_SCALARS, &r->info6));
978			break; }
979
980			case 7: {
981				NDR_CHECK(ndr_push_samr_DomInfo7(ndr, NDR_SCALARS, &r->info7));
982			break; }
983
984			case 8: {
985				NDR_CHECK(ndr_push_samr_DomInfo8(ndr, NDR_SCALARS, &r->info8));
986			break; }
987
988			case 9: {
989				NDR_CHECK(ndr_push_samr_DomInfo9(ndr, NDR_SCALARS, &r->info9));
990			break; }
991
992			case 11: {
993				NDR_CHECK(ndr_push_samr_DomGeneralInformation2(ndr, NDR_SCALARS, &r->general2));
994			break; }
995
996			case 12: {
997				NDR_CHECK(ndr_push_samr_DomInfo12(ndr, NDR_SCALARS, &r->info12));
998			break; }
999
1000			case 13: {
1001				NDR_CHECK(ndr_push_samr_DomInfo13(ndr, NDR_SCALARS, &r->info13));
1002			break; }
1003
1004			default:
1005				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1006		}
1007	}
1008	if (ndr_flags & NDR_BUFFERS) {
1009		int level = ndr_push_get_switch_value(ndr, r);
1010		switch (level) {
1011			case 1:
1012			break;
1013
1014			case 2:
1015				NDR_CHECK(ndr_push_samr_DomGeneralInformation(ndr, NDR_BUFFERS, &r->general));
1016			break;
1017
1018			case 3:
1019			break;
1020
1021			case 4:
1022				NDR_CHECK(ndr_push_samr_DomOEMInformation(ndr, NDR_BUFFERS, &r->oem));
1023			break;
1024
1025			case 5:
1026				NDR_CHECK(ndr_push_samr_DomInfo5(ndr, NDR_BUFFERS, &r->info5));
1027			break;
1028
1029			case 6:
1030				NDR_CHECK(ndr_push_samr_DomInfo6(ndr, NDR_BUFFERS, &r->info6));
1031			break;
1032
1033			case 7:
1034			break;
1035
1036			case 8:
1037			break;
1038
1039			case 9:
1040			break;
1041
1042			case 11:
1043				NDR_CHECK(ndr_push_samr_DomGeneralInformation2(ndr, NDR_BUFFERS, &r->general2));
1044			break;
1045
1046			case 12:
1047			break;
1048
1049			case 13:
1050			break;
1051
1052			default:
1053				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1054		}
1055	}
1056	return NDR_ERR_SUCCESS;
1057}
1058
1059static enum ndr_err_code ndr_pull_samr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union samr_DomainInfo *r)
1060{
1061	int level;
1062	uint16_t _level;
1063	level = ndr_pull_get_switch_value(ndr, r);
1064	if (ndr_flags & NDR_SCALARS) {
1065		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1066		if (_level != level) {
1067			return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
1068		}
1069		NDR_CHECK(ndr_pull_union_align(ndr, 8));
1070		switch (level) {
1071			case 1: {
1072				NDR_CHECK(ndr_pull_samr_DomInfo1(ndr, NDR_SCALARS, &r->info1));
1073			break; }
1074
1075			case 2: {
1076				NDR_CHECK(ndr_pull_samr_DomGeneralInformation(ndr, NDR_SCALARS, &r->general));
1077			break; }
1078
1079			case 3: {
1080				NDR_CHECK(ndr_pull_samr_DomInfo3(ndr, NDR_SCALARS, &r->info3));
1081			break; }
1082
1083			case 4: {
1084				NDR_CHECK(ndr_pull_samr_DomOEMInformation(ndr, NDR_SCALARS, &r->oem));
1085			break; }
1086
1087			case 5: {
1088				NDR_CHECK(ndr_pull_samr_DomInfo5(ndr, NDR_SCALARS, &r->info5));
1089			break; }
1090
1091			case 6: {
1092				NDR_CHECK(ndr_pull_samr_DomInfo6(ndr, NDR_SCALARS, &r->info6));
1093			break; }
1094
1095			case 7: {
1096				NDR_CHECK(ndr_pull_samr_DomInfo7(ndr, NDR_SCALARS, &r->info7));
1097			break; }
1098
1099			case 8: {
1100				NDR_CHECK(ndr_pull_samr_DomInfo8(ndr, NDR_SCALARS, &r->info8));
1101			break; }
1102
1103			case 9: {
1104				NDR_CHECK(ndr_pull_samr_DomInfo9(ndr, NDR_SCALARS, &r->info9));
1105			break; }
1106
1107			case 11: {
1108				NDR_CHECK(ndr_pull_samr_DomGeneralInformation2(ndr, NDR_SCALARS, &r->general2));
1109			break; }
1110
1111			case 12: {
1112				NDR_CHECK(ndr_pull_samr_DomInfo12(ndr, NDR_SCALARS, &r->info12));
1113			break; }
1114
1115			case 13: {
1116				NDR_CHECK(ndr_pull_samr_DomInfo13(ndr, NDR_SCALARS, &r->info13));
1117			break; }
1118
1119			default:
1120				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1121		}
1122	}
1123	if (ndr_flags & NDR_BUFFERS) {
1124		switch (level) {
1125			case 1:
1126			break;
1127
1128			case 2:
1129				NDR_CHECK(ndr_pull_samr_DomGeneralInformation(ndr, NDR_BUFFERS, &r->general));
1130			break;
1131
1132			case 3:
1133			break;
1134
1135			case 4:
1136				NDR_CHECK(ndr_pull_samr_DomOEMInformation(ndr, NDR_BUFFERS, &r->oem));
1137			break;
1138
1139			case 5:
1140				NDR_CHECK(ndr_pull_samr_DomInfo5(ndr, NDR_BUFFERS, &r->info5));
1141			break;
1142
1143			case 6:
1144				NDR_CHECK(ndr_pull_samr_DomInfo6(ndr, NDR_BUFFERS, &r->info6));
1145			break;
1146
1147			case 7:
1148			break;
1149
1150			case 8:
1151			break;
1152
1153			case 9:
1154			break;
1155
1156			case 11:
1157				NDR_CHECK(ndr_pull_samr_DomGeneralInformation2(ndr, NDR_BUFFERS, &r->general2));
1158			break;
1159
1160			case 12:
1161			break;
1162
1163			case 13:
1164			break;
1165
1166			default:
1167				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1168		}
1169	}
1170	return NDR_ERR_SUCCESS;
1171}
1172
1173_PUBLIC_ void ndr_print_samr_DomainInfo(struct ndr_print *ndr, const char *name, const union samr_DomainInfo *r)
1174{
1175	int level;
1176	level = ndr_print_get_switch_value(ndr, r);
1177	ndr_print_union(ndr, name, level, "samr_DomainInfo");
1178	switch (level) {
1179		case 1:
1180			ndr_print_samr_DomInfo1(ndr, "info1", &r->info1);
1181		break;
1182
1183		case 2:
1184			ndr_print_samr_DomGeneralInformation(ndr, "general", &r->general);
1185		break;
1186
1187		case 3:
1188			ndr_print_samr_DomInfo3(ndr, "info3", &r->info3);
1189		break;
1190
1191		case 4:
1192			ndr_print_samr_DomOEMInformation(ndr, "oem", &r->oem);
1193		break;
1194
1195		case 5:
1196			ndr_print_samr_DomInfo5(ndr, "info5", &r->info5);
1197		break;
1198
1199		case 6:
1200			ndr_print_samr_DomInfo6(ndr, "info6", &r->info6);
1201		break;
1202
1203		case 7:
1204			ndr_print_samr_DomInfo7(ndr, "info7", &r->info7);
1205		break;
1206
1207		case 8:
1208			ndr_print_samr_DomInfo8(ndr, "info8", &r->info8);
1209		break;
1210
1211		case 9:
1212			ndr_print_samr_DomInfo9(ndr, "info9", &r->info9);
1213		break;
1214
1215		case 11:
1216			ndr_print_samr_DomGeneralInformation2(ndr, "general2", &r->general2);
1217		break;
1218
1219		case 12:
1220			ndr_print_samr_DomInfo12(ndr, "info12", &r->info12);
1221		break;
1222
1223		case 13:
1224			ndr_print_samr_DomInfo13(ndr, "info13", &r->info13);
1225		break;
1226
1227		default:
1228			ndr_print_bad_level(ndr, name, level);
1229	}
1230}
1231
1232static enum ndr_err_code ndr_push_samr_Ids(struct ndr_push *ndr, int ndr_flags, const struct samr_Ids *r)
1233{
1234	uint32_t cntr_ids_1;
1235	if (ndr_flags & NDR_SCALARS) {
1236		NDR_CHECK(ndr_push_align(ndr, 5));
1237		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
1238		NDR_CHECK(ndr_push_unique_ptr(ndr, r->ids));
1239		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1240	}
1241	if (ndr_flags & NDR_BUFFERS) {
1242		if (r->ids) {
1243			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
1244			for (cntr_ids_1 = 0; cntr_ids_1 < r->count; cntr_ids_1++) {
1245				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ids[cntr_ids_1]));
1246			}
1247		}
1248	}
1249	return NDR_ERR_SUCCESS;
1250}
1251
1252static enum ndr_err_code ndr_pull_samr_Ids(struct ndr_pull *ndr, int ndr_flags, struct samr_Ids *r)
1253{
1254	uint32_t _ptr_ids;
1255	uint32_t cntr_ids_1;
1256	TALLOC_CTX *_mem_save_ids_0;
1257	TALLOC_CTX *_mem_save_ids_1;
1258	if (ndr_flags & NDR_SCALARS) {
1259		NDR_CHECK(ndr_pull_align(ndr, 5));
1260		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
1261		if (r->count > 1024) {
1262			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1263		}
1264		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ids));
1265		if (_ptr_ids) {
1266			NDR_PULL_ALLOC(ndr, r->ids);
1267		} else {
1268			r->ids = NULL;
1269		}
1270		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1271	}
1272	if (ndr_flags & NDR_BUFFERS) {
1273		if (r->ids) {
1274			_mem_save_ids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1275			NDR_PULL_SET_MEM_CTX(ndr, r->ids, 0);
1276			NDR_CHECK(ndr_pull_array_size(ndr, &r->ids));
1277			NDR_PULL_ALLOC_N(ndr, r->ids, ndr_get_array_size(ndr, &r->ids));
1278			_mem_save_ids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1279			NDR_PULL_SET_MEM_CTX(ndr, r->ids, 0);
1280			for (cntr_ids_1 = 0; cntr_ids_1 < r->count; cntr_ids_1++) {
1281				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ids[cntr_ids_1]));
1282			}
1283			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ids_1, 0);
1284			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ids_0, 0);
1285		}
1286		if (r->ids) {
1287			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->ids, r->count));
1288		}
1289	}
1290	return NDR_ERR_SUCCESS;
1291}
1292
1293_PUBLIC_ void ndr_print_samr_Ids(struct ndr_print *ndr, const char *name, const struct samr_Ids *r)
1294{
1295	uint32_t cntr_ids_1;
1296	ndr_print_struct(ndr, name, "samr_Ids");
1297	ndr->depth++;
1298	ndr_print_uint32(ndr, "count", r->count);
1299	ndr_print_ptr(ndr, "ids", r->ids);
1300	ndr->depth++;
1301	if (r->ids) {
1302		ndr->print(ndr, "%s: ARRAY(%d)", "ids", (int)r->count);
1303		ndr->depth++;
1304		for (cntr_ids_1=0;cntr_ids_1<r->count;cntr_ids_1++) {
1305			char *idx_1=NULL;
1306			if (asprintf(&idx_1, "[%d]", cntr_ids_1) != -1) {
1307				ndr_print_uint32(ndr, "ids", r->ids[cntr_ids_1]);
1308				free(idx_1);
1309			}
1310		}
1311		ndr->depth--;
1312	}
1313	ndr->depth--;
1314	ndr->depth--;
1315}
1316
1317_PUBLIC_ enum ndr_err_code ndr_push_samr_GroupAttrs(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1318{
1319	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1320	return NDR_ERR_SUCCESS;
1321}
1322
1323_PUBLIC_ enum ndr_err_code ndr_pull_samr_GroupAttrs(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1324{
1325	uint32_t v;
1326	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1327	*r = v;
1328	return NDR_ERR_SUCCESS;
1329}
1330
1331_PUBLIC_ void ndr_print_samr_GroupAttrs(struct ndr_print *ndr, const char *name, uint32_t r)
1332{
1333	ndr_print_uint32(ndr, name, r);
1334	ndr->depth++;
1335	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SE_GROUP_MANDATORY", SE_GROUP_MANDATORY, r);
1336	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SE_GROUP_ENABLED_BY_DEFAULT", SE_GROUP_ENABLED_BY_DEFAULT, r);
1337	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SE_GROUP_ENABLED", SE_GROUP_ENABLED, r);
1338	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SE_GROUP_OWNER", SE_GROUP_OWNER, r);
1339	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SE_GROUP_USE_FOR_DENY_ONLY", SE_GROUP_USE_FOR_DENY_ONLY, r);
1340	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SE_GROUP_RESOURCE", SE_GROUP_RESOURCE, r);
1341	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SE_GROUP_LOGON_ID", SE_GROUP_LOGON_ID, r);
1342	ndr->depth--;
1343}
1344
1345static enum ndr_err_code ndr_push_samr_GroupInfoAll(struct ndr_push *ndr, int ndr_flags, const struct samr_GroupInfoAll *r)
1346{
1347	if (ndr_flags & NDR_SCALARS) {
1348		NDR_CHECK(ndr_push_align(ndr, 5));
1349		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->name));
1350		NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1351		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_members));
1352		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
1353		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1354	}
1355	if (ndr_flags & NDR_BUFFERS) {
1356		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->name));
1357		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
1358	}
1359	return NDR_ERR_SUCCESS;
1360}
1361
1362static enum ndr_err_code ndr_pull_samr_GroupInfoAll(struct ndr_pull *ndr, int ndr_flags, struct samr_GroupInfoAll *r)
1363{
1364	if (ndr_flags & NDR_SCALARS) {
1365		NDR_CHECK(ndr_pull_align(ndr, 5));
1366		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->name));
1367		NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1368		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_members));
1369		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
1370		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1371	}
1372	if (ndr_flags & NDR_BUFFERS) {
1373		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->name));
1374		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
1375	}
1376	return NDR_ERR_SUCCESS;
1377}
1378
1379_PUBLIC_ void ndr_print_samr_GroupInfoAll(struct ndr_print *ndr, const char *name, const struct samr_GroupInfoAll *r)
1380{
1381	ndr_print_struct(ndr, name, "samr_GroupInfoAll");
1382	ndr->depth++;
1383	ndr_print_lsa_String(ndr, "name", &r->name);
1384	ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1385	ndr_print_uint32(ndr, "num_members", r->num_members);
1386	ndr_print_lsa_String(ndr, "description", &r->description);
1387	ndr->depth--;
1388}
1389
1390static enum ndr_err_code ndr_push_samr_GroupInfoAttributes(struct ndr_push *ndr, int ndr_flags, const struct samr_GroupInfoAttributes *r)
1391{
1392	if (ndr_flags & NDR_SCALARS) {
1393		NDR_CHECK(ndr_push_align(ndr, 4));
1394		NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1395		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1396	}
1397	if (ndr_flags & NDR_BUFFERS) {
1398	}
1399	return NDR_ERR_SUCCESS;
1400}
1401
1402static enum ndr_err_code ndr_pull_samr_GroupInfoAttributes(struct ndr_pull *ndr, int ndr_flags, struct samr_GroupInfoAttributes *r)
1403{
1404	if (ndr_flags & NDR_SCALARS) {
1405		NDR_CHECK(ndr_pull_align(ndr, 4));
1406		NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1407		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1408	}
1409	if (ndr_flags & NDR_BUFFERS) {
1410	}
1411	return NDR_ERR_SUCCESS;
1412}
1413
1414_PUBLIC_ void ndr_print_samr_GroupInfoAttributes(struct ndr_print *ndr, const char *name, const struct samr_GroupInfoAttributes *r)
1415{
1416	ndr_print_struct(ndr, name, "samr_GroupInfoAttributes");
1417	ndr->depth++;
1418	ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1419	ndr->depth--;
1420}
1421
1422static enum ndr_err_code ndr_push_samr_GroupInfoEnum(struct ndr_push *ndr, int ndr_flags, enum samr_GroupInfoEnum r)
1423{
1424	NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
1425	return NDR_ERR_SUCCESS;
1426}
1427
1428static enum ndr_err_code ndr_pull_samr_GroupInfoEnum(struct ndr_pull *ndr, int ndr_flags, enum samr_GroupInfoEnum *r)
1429{
1430	uint16_t v;
1431	NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
1432	*r = v;
1433	return NDR_ERR_SUCCESS;
1434}
1435
1436_PUBLIC_ void ndr_print_samr_GroupInfoEnum(struct ndr_print *ndr, const char *name, enum samr_GroupInfoEnum r)
1437{
1438	const char *val = NULL;
1439
1440	switch (r) {
1441		case GROUPINFOALL: val = "GROUPINFOALL"; break;
1442		case GROUPINFONAME: val = "GROUPINFONAME"; break;
1443		case GROUPINFOATTRIBUTES: val = "GROUPINFOATTRIBUTES"; break;
1444		case GROUPINFODESCRIPTION: val = "GROUPINFODESCRIPTION"; break;
1445		case GROUPINFOALL2: val = "GROUPINFOALL2"; break;
1446	}
1447	ndr_print_enum(ndr, name, "ENUM", val, r);
1448}
1449
1450static enum ndr_err_code ndr_push_samr_GroupInfo(struct ndr_push *ndr, int ndr_flags, const union samr_GroupInfo *r)
1451{
1452	if (ndr_flags & NDR_SCALARS) {
1453		int level = ndr_push_get_switch_value(ndr, r);
1454		NDR_CHECK(ndr_push_samr_GroupInfoEnum(ndr, NDR_SCALARS, level));
1455		NDR_CHECK(ndr_push_union_align(ndr, 5));
1456		switch (level) {
1457			case GROUPINFOALL: {
1458				NDR_CHECK(ndr_push_samr_GroupInfoAll(ndr, NDR_SCALARS, &r->all));
1459			break; }
1460
1461			case GROUPINFONAME: {
1462				NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->name));
1463			break; }
1464
1465			case GROUPINFOATTRIBUTES: {
1466				NDR_CHECK(ndr_push_samr_GroupInfoAttributes(ndr, NDR_SCALARS, &r->attributes));
1467			break; }
1468
1469			case GROUPINFODESCRIPTION: {
1470				NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
1471			break; }
1472
1473			case GROUPINFOALL2: {
1474				NDR_CHECK(ndr_push_samr_GroupInfoAll(ndr, NDR_SCALARS, &r->all2));
1475			break; }
1476
1477			default:
1478				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1479		}
1480	}
1481	if (ndr_flags & NDR_BUFFERS) {
1482		int level = ndr_push_get_switch_value(ndr, r);
1483		switch (level) {
1484			case GROUPINFOALL:
1485				NDR_CHECK(ndr_push_samr_GroupInfoAll(ndr, NDR_BUFFERS, &r->all));
1486			break;
1487
1488			case GROUPINFONAME:
1489				NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->name));
1490			break;
1491
1492			case GROUPINFOATTRIBUTES:
1493			break;
1494
1495			case GROUPINFODESCRIPTION:
1496				NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
1497			break;
1498
1499			case GROUPINFOALL2:
1500				NDR_CHECK(ndr_push_samr_GroupInfoAll(ndr, NDR_BUFFERS, &r->all2));
1501			break;
1502
1503			default:
1504				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1505		}
1506	}
1507	return NDR_ERR_SUCCESS;
1508}
1509
1510static enum ndr_err_code ndr_pull_samr_GroupInfo(struct ndr_pull *ndr, int ndr_flags, union samr_GroupInfo *r)
1511{
1512	int level;
1513	uint16_t _level;
1514	level = ndr_pull_get_switch_value(ndr, r);
1515	if (ndr_flags & NDR_SCALARS) {
1516		NDR_CHECK(ndr_pull_uint1632(ndr, NDR_SCALARS, &_level));
1517		if (_level != level) {
1518			return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
1519		}
1520		NDR_CHECK(ndr_pull_union_align(ndr, 5));
1521		switch (level) {
1522			case GROUPINFOALL: {
1523				NDR_CHECK(ndr_pull_samr_GroupInfoAll(ndr, NDR_SCALARS, &r->all));
1524			break; }
1525
1526			case GROUPINFONAME: {
1527				NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->name));
1528			break; }
1529
1530			case GROUPINFOATTRIBUTES: {
1531				NDR_CHECK(ndr_pull_samr_GroupInfoAttributes(ndr, NDR_SCALARS, &r->attributes));
1532			break; }
1533
1534			case GROUPINFODESCRIPTION: {
1535				NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
1536			break; }
1537
1538			case GROUPINFOALL2: {
1539				NDR_CHECK(ndr_pull_samr_GroupInfoAll(ndr, NDR_SCALARS, &r->all2));
1540			break; }
1541
1542			default:
1543				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1544		}
1545	}
1546	if (ndr_flags & NDR_BUFFERS) {
1547		switch (level) {
1548			case GROUPINFOALL:
1549				NDR_CHECK(ndr_pull_samr_GroupInfoAll(ndr, NDR_BUFFERS, &r->all));
1550			break;
1551
1552			case GROUPINFONAME:
1553				NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->name));
1554			break;
1555
1556			case GROUPINFOATTRIBUTES:
1557			break;
1558
1559			case GROUPINFODESCRIPTION:
1560				NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
1561			break;
1562
1563			case GROUPINFOALL2:
1564				NDR_CHECK(ndr_pull_samr_GroupInfoAll(ndr, NDR_BUFFERS, &r->all2));
1565			break;
1566
1567			default:
1568				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1569		}
1570	}
1571	return NDR_ERR_SUCCESS;
1572}
1573
1574_PUBLIC_ void ndr_print_samr_GroupInfo(struct ndr_print *ndr, const char *name, const union samr_GroupInfo *r)
1575{
1576	int level;
1577	level = ndr_print_get_switch_value(ndr, r);
1578	ndr_print_union(ndr, name, level, "samr_GroupInfo");
1579	switch (level) {
1580		case GROUPINFOALL:
1581			ndr_print_samr_GroupInfoAll(ndr, "all", &r->all);
1582		break;
1583
1584		case GROUPINFONAME:
1585			ndr_print_lsa_String(ndr, "name", &r->name);
1586		break;
1587
1588		case GROUPINFOATTRIBUTES:
1589			ndr_print_samr_GroupInfoAttributes(ndr, "attributes", &r->attributes);
1590		break;
1591
1592		case GROUPINFODESCRIPTION:
1593			ndr_print_lsa_String(ndr, "description", &r->description);
1594		break;
1595
1596		case GROUPINFOALL2:
1597			ndr_print_samr_GroupInfoAll(ndr, "all2", &r->all2);
1598		break;
1599
1600		default:
1601			ndr_print_bad_level(ndr, name, level);
1602	}
1603}
1604
1605static enum ndr_err_code ndr_push_samr_RidTypeArray(struct ndr_push *ndr, int ndr_flags, const struct samr_RidTypeArray *r)
1606{
1607	uint32_t cntr_rids_1;
1608	uint32_t cntr_types_1;
1609	if (ndr_flags & NDR_SCALARS) {
1610		NDR_CHECK(ndr_push_align(ndr, 5));
1611		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
1612		NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
1613		NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
1614		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1615	}
1616	if (ndr_flags & NDR_BUFFERS) {
1617		if (r->rids) {
1618			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
1619			for (cntr_rids_1 = 0; cntr_rids_1 < r->count; cntr_rids_1++) {
1620				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
1621			}
1622		}
1623		if (r->types) {
1624			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
1625			for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
1626				NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->types[cntr_types_1]));
1627			}
1628		}
1629	}
1630	return NDR_ERR_SUCCESS;
1631}
1632
1633static enum ndr_err_code ndr_pull_samr_RidTypeArray(struct ndr_pull *ndr, int ndr_flags, struct samr_RidTypeArray *r)
1634{
1635	uint32_t _ptr_rids;
1636	uint32_t cntr_rids_1;
1637	TALLOC_CTX *_mem_save_rids_0;
1638	TALLOC_CTX *_mem_save_rids_1;
1639	uint32_t _ptr_types;
1640	uint32_t cntr_types_1;
1641	TALLOC_CTX *_mem_save_types_0;
1642	TALLOC_CTX *_mem_save_types_1;
1643	if (ndr_flags & NDR_SCALARS) {
1644		NDR_CHECK(ndr_pull_align(ndr, 5));
1645		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
1646		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
1647		if (_ptr_rids) {
1648			NDR_PULL_ALLOC(ndr, r->rids);
1649		} else {
1650			r->rids = NULL;
1651		}
1652		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
1653		if (_ptr_types) {
1654			NDR_PULL_ALLOC(ndr, r->types);
1655		} else {
1656			r->types = NULL;
1657		}
1658		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1659	}
1660	if (ndr_flags & NDR_BUFFERS) {
1661		if (r->rids) {
1662			_mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1663			NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
1664			NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
1665			NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
1666			_mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1667			NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
1668			for (cntr_rids_1 = 0; cntr_rids_1 < r->count; cntr_rids_1++) {
1669				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
1670			}
1671			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
1672			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
1673		}
1674		if (r->types) {
1675			_mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
1676			NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
1677			NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
1678			NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
1679			_mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
1680			NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
1681			for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
1682				NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
1683			}
1684			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
1685			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
1686		}
1687		if (r->rids) {
1688			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->count));
1689		}
1690		if (r->types) {
1691			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
1692		}
1693	}
1694	return NDR_ERR_SUCCESS;
1695}
1696
1697_PUBLIC_ void ndr_print_samr_RidTypeArray(struct ndr_print *ndr, const char *name, const struct samr_RidTypeArray *r)
1698{
1699	uint32_t cntr_rids_1;
1700	uint32_t cntr_types_1;
1701	ndr_print_struct(ndr, name, "samr_RidTypeArray");
1702	ndr->depth++;
1703	ndr_print_uint32(ndr, "count", r->count);
1704	ndr_print_ptr(ndr, "rids", r->rids);
1705	ndr->depth++;
1706	if (r->rids) {
1707		ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->count);
1708		ndr->depth++;
1709		for (cntr_rids_1=0;cntr_rids_1<r->count;cntr_rids_1++) {
1710			char *idx_1=NULL;
1711			if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
1712				ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
1713				free(idx_1);
1714			}
1715		}
1716		ndr->depth--;
1717	}
1718	ndr->depth--;
1719	ndr_print_ptr(ndr, "types", r->types);
1720	ndr->depth++;
1721	if (r->types) {
1722		ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
1723		ndr->depth++;
1724		for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
1725			char *idx_1=NULL;
1726			if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
1727				ndr_print_uint32(ndr, "types", r->types[cntr_types_1]);
1728				free(idx_1);
1729			}
1730		}
1731		ndr->depth--;
1732	}
1733	ndr->depth--;
1734	ndr->depth--;
1735}
1736
1737static enum ndr_err_code ndr_push_samr_AliasInfoAll(struct ndr_push *ndr, int ndr_flags, const struct samr_AliasInfoAll *r)
1738{
1739	if (ndr_flags & NDR_SCALARS) {
1740		NDR_CHECK(ndr_push_align(ndr, 5));
1741		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->name));
1742		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_members));
1743		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
1744		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1745	}
1746	if (ndr_flags & NDR_BUFFERS) {
1747		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->name));
1748		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
1749	}
1750	return NDR_ERR_SUCCESS;
1751}
1752
1753static enum ndr_err_code ndr_pull_samr_AliasInfoAll(struct ndr_pull *ndr, int ndr_flags, struct samr_AliasInfoAll *r)
1754{
1755	if (ndr_flags & NDR_SCALARS) {
1756		NDR_CHECK(ndr_pull_align(ndr, 5));
1757		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->name));
1758		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_members));
1759		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
1760		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1761	}
1762	if (ndr_flags & NDR_BUFFERS) {
1763		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->name));
1764		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
1765	}
1766	return NDR_ERR_SUCCESS;
1767}
1768
1769_PUBLIC_ void ndr_print_samr_AliasInfoAll(struct ndr_print *ndr, const char *name, const struct samr_AliasInfoAll *r)
1770{
1771	ndr_print_struct(ndr, name, "samr_AliasInfoAll");
1772	ndr->depth++;
1773	ndr_print_lsa_String(ndr, "name", &r->name);
1774	ndr_print_uint32(ndr, "num_members", r->num_members);
1775	ndr_print_lsa_String(ndr, "description", &r->description);
1776	ndr->depth--;
1777}
1778
1779static enum ndr_err_code ndr_push_samr_AliasInfoEnum(struct ndr_push *ndr, int ndr_flags, enum samr_AliasInfoEnum r)
1780{
1781	NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
1782	return NDR_ERR_SUCCESS;
1783}
1784
1785static enum ndr_err_code ndr_pull_samr_AliasInfoEnum(struct ndr_pull *ndr, int ndr_flags, enum samr_AliasInfoEnum *r)
1786{
1787	uint16_t v;
1788	NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
1789	*r = v;
1790	return NDR_ERR_SUCCESS;
1791}
1792
1793_PUBLIC_ void ndr_print_samr_AliasInfoEnum(struct ndr_print *ndr, const char *name, enum samr_AliasInfoEnum r)
1794{
1795	const char *val = NULL;
1796
1797	switch (r) {
1798		case ALIASINFOALL: val = "ALIASINFOALL"; break;
1799		case ALIASINFONAME: val = "ALIASINFONAME"; break;
1800		case ALIASINFODESCRIPTION: val = "ALIASINFODESCRIPTION"; break;
1801	}
1802	ndr_print_enum(ndr, name, "ENUM", val, r);
1803}
1804
1805static enum ndr_err_code ndr_push_samr_AliasInfo(struct ndr_push *ndr, int ndr_flags, const union samr_AliasInfo *r)
1806{
1807	if (ndr_flags & NDR_SCALARS) {
1808		int level = ndr_push_get_switch_value(ndr, r);
1809		NDR_CHECK(ndr_push_samr_AliasInfoEnum(ndr, NDR_SCALARS, level));
1810		NDR_CHECK(ndr_push_union_align(ndr, 5));
1811		switch (level) {
1812			case ALIASINFOALL: {
1813				NDR_CHECK(ndr_push_samr_AliasInfoAll(ndr, NDR_SCALARS, &r->all));
1814			break; }
1815
1816			case ALIASINFONAME: {
1817				NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->name));
1818			break; }
1819
1820			case ALIASINFODESCRIPTION: {
1821				NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
1822			break; }
1823
1824			default:
1825				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1826		}
1827	}
1828	if (ndr_flags & NDR_BUFFERS) {
1829		int level = ndr_push_get_switch_value(ndr, r);
1830		switch (level) {
1831			case ALIASINFOALL:
1832				NDR_CHECK(ndr_push_samr_AliasInfoAll(ndr, NDR_BUFFERS, &r->all));
1833			break;
1834
1835			case ALIASINFONAME:
1836				NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->name));
1837			break;
1838
1839			case ALIASINFODESCRIPTION:
1840				NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
1841			break;
1842
1843			default:
1844				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1845		}
1846	}
1847	return NDR_ERR_SUCCESS;
1848}
1849
1850static enum ndr_err_code ndr_pull_samr_AliasInfo(struct ndr_pull *ndr, int ndr_flags, union samr_AliasInfo *r)
1851{
1852	int level;
1853	uint16_t _level;
1854	level = ndr_pull_get_switch_value(ndr, r);
1855	if (ndr_flags & NDR_SCALARS) {
1856		NDR_CHECK(ndr_pull_uint1632(ndr, NDR_SCALARS, &_level));
1857		if (_level != level) {
1858			return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
1859		}
1860		NDR_CHECK(ndr_pull_union_align(ndr, 5));
1861		switch (level) {
1862			case ALIASINFOALL: {
1863				NDR_CHECK(ndr_pull_samr_AliasInfoAll(ndr, NDR_SCALARS, &r->all));
1864			break; }
1865
1866			case ALIASINFONAME: {
1867				NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->name));
1868			break; }
1869
1870			case ALIASINFODESCRIPTION: {
1871				NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
1872			break; }
1873
1874			default:
1875				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1876		}
1877	}
1878	if (ndr_flags & NDR_BUFFERS) {
1879		switch (level) {
1880			case ALIASINFOALL:
1881				NDR_CHECK(ndr_pull_samr_AliasInfoAll(ndr, NDR_BUFFERS, &r->all));
1882			break;
1883
1884			case ALIASINFONAME:
1885				NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->name));
1886			break;
1887
1888			case ALIASINFODESCRIPTION:
1889				NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
1890			break;
1891
1892			default:
1893				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1894		}
1895	}
1896	return NDR_ERR_SUCCESS;
1897}
1898
1899_PUBLIC_ void ndr_print_samr_AliasInfo(struct ndr_print *ndr, const char *name, const union samr_AliasInfo *r)
1900{
1901	int level;
1902	level = ndr_print_get_switch_value(ndr, r);
1903	ndr_print_union(ndr, name, level, "samr_AliasInfo");
1904	switch (level) {
1905		case ALIASINFOALL:
1906			ndr_print_samr_AliasInfoAll(ndr, "all", &r->all);
1907		break;
1908
1909		case ALIASINFONAME:
1910			ndr_print_lsa_String(ndr, "name", &r->name);
1911		break;
1912
1913		case ALIASINFODESCRIPTION:
1914			ndr_print_lsa_String(ndr, "description", &r->description);
1915		break;
1916
1917		default:
1918			ndr_print_bad_level(ndr, name, level);
1919	}
1920}
1921
1922static enum ndr_err_code ndr_push_samr_UserInfoLevel(struct ndr_push *ndr, int ndr_flags, enum samr_UserInfoLevel r)
1923{
1924	NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
1925	return NDR_ERR_SUCCESS;
1926}
1927
1928static enum ndr_err_code ndr_pull_samr_UserInfoLevel(struct ndr_pull *ndr, int ndr_flags, enum samr_UserInfoLevel *r)
1929{
1930	uint16_t v;
1931	NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
1932	*r = v;
1933	return NDR_ERR_SUCCESS;
1934}
1935
1936_PUBLIC_ void ndr_print_samr_UserInfoLevel(struct ndr_print *ndr, const char *name, enum samr_UserInfoLevel r)
1937{
1938	const char *val = NULL;
1939
1940	switch (r) {
1941		case UserGeneralInformation: val = "UserGeneralInformation"; break;
1942		case UserPreferencesInformation: val = "UserPreferencesInformation"; break;
1943		case UserLogonInformation: val = "UserLogonInformation"; break;
1944		case UserLogonHoursInformation: val = "UserLogonHoursInformation"; break;
1945		case UserAccountInformation: val = "UserAccountInformation"; break;
1946		case UserNameInformation: val = "UserNameInformation"; break;
1947		case UserAccountNameInformation: val = "UserAccountNameInformation"; break;
1948		case UserFullNameInformation: val = "UserFullNameInformation"; break;
1949		case UserPrimaryGroupInformation: val = "UserPrimaryGroupInformation"; break;
1950		case UserHomeInformation: val = "UserHomeInformation"; break;
1951		case UserScriptInformation: val = "UserScriptInformation"; break;
1952		case UserProfileInformation: val = "UserProfileInformation"; break;
1953		case UserAdminCommentInformation: val = "UserAdminCommentInformation"; break;
1954		case UserWorkStationsInformation: val = "UserWorkStationsInformation"; break;
1955		case UserControlInformation: val = "UserControlInformation"; break;
1956		case UserExpiresInformation: val = "UserExpiresInformation"; break;
1957		case UserInternal1Information: val = "UserInternal1Information"; break;
1958		case UserParametersInformation: val = "UserParametersInformation"; break;
1959		case UserAllInformation: val = "UserAllInformation"; break;
1960		case UserInternal4Information: val = "UserInternal4Information"; break;
1961		case UserInternal5Information: val = "UserInternal5Information"; break;
1962		case UserInternal4InformationNew: val = "UserInternal4InformationNew"; break;
1963		case UserInternal5InformationNew: val = "UserInternal5InformationNew"; break;
1964	}
1965	ndr_print_enum(ndr, name, "ENUM", val, r);
1966}
1967
1968static enum ndr_err_code ndr_push_samr_UserInfo1(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo1 *r)
1969{
1970	if (ndr_flags & NDR_SCALARS) {
1971		NDR_CHECK(ndr_push_align(ndr, 5));
1972		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1973		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1974		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
1975		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
1976		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
1977		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1978	}
1979	if (ndr_flags & NDR_BUFFERS) {
1980		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1981		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1982		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
1983		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
1984	}
1985	return NDR_ERR_SUCCESS;
1986}
1987
1988static enum ndr_err_code ndr_pull_samr_UserInfo1(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo1 *r)
1989{
1990	if (ndr_flags & NDR_SCALARS) {
1991		NDR_CHECK(ndr_pull_align(ndr, 5));
1992		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1993		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1994		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1995		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
1996		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
1997		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1998	}
1999	if (ndr_flags & NDR_BUFFERS) {
2000		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2001		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2002		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2003		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2004	}
2005	return NDR_ERR_SUCCESS;
2006}
2007
2008_PUBLIC_ void ndr_print_samr_UserInfo1(struct ndr_print *ndr, const char *name, const struct samr_UserInfo1 *r)
2009{
2010	ndr_print_struct(ndr, name, "samr_UserInfo1");
2011	ndr->depth++;
2012	ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2013	ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2014	ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2015	ndr_print_lsa_String(ndr, "description", &r->description);
2016	ndr_print_lsa_String(ndr, "comment", &r->comment);
2017	ndr->depth--;
2018}
2019
2020static enum ndr_err_code ndr_push_samr_UserInfo2(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo2 *r)
2021{
2022	if (ndr_flags & NDR_SCALARS) {
2023		NDR_CHECK(ndr_push_align(ndr, 5));
2024		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2025		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown));
2026		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2027		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2028		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2029	}
2030	if (ndr_flags & NDR_BUFFERS) {
2031		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2032		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown));
2033	}
2034	return NDR_ERR_SUCCESS;
2035}
2036
2037static enum ndr_err_code ndr_pull_samr_UserInfo2(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo2 *r)
2038{
2039	if (ndr_flags & NDR_SCALARS) {
2040		NDR_CHECK(ndr_pull_align(ndr, 5));
2041		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2042		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown));
2043		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2044		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2045		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2046	}
2047	if (ndr_flags & NDR_BUFFERS) {
2048		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2049		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown));
2050	}
2051	return NDR_ERR_SUCCESS;
2052}
2053
2054_PUBLIC_ void ndr_print_samr_UserInfo2(struct ndr_print *ndr, const char *name, const struct samr_UserInfo2 *r)
2055{
2056	ndr_print_struct(ndr, name, "samr_UserInfo2");
2057	ndr->depth++;
2058	ndr_print_lsa_String(ndr, "comment", &r->comment);
2059	ndr_print_lsa_String(ndr, "unknown", &r->unknown);
2060	ndr_print_uint16(ndr, "country_code", r->country_code);
2061	ndr_print_uint16(ndr, "code_page", r->code_page);
2062	ndr->depth--;
2063}
2064
2065_PUBLIC_ enum ndr_err_code ndr_push_samr_LogonHours(struct ndr_push *ndr, int ndr_flags, const struct samr_LogonHours *r)
2066{
2067	{
2068		uint32_t _flags_save_STRUCT = ndr->flags;
2069		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2070		if (ndr_flags & NDR_SCALARS) {
2071			NDR_CHECK(ndr_push_align(ndr, 5));
2072			NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->units_per_week));
2073			NDR_CHECK(ndr_push_unique_ptr(ndr, r->bits));
2074			NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2075		}
2076		if (ndr_flags & NDR_BUFFERS) {
2077			if (r->bits) {
2078				NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 1260));
2079				NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
2080				NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->units_per_week / 8));
2081				NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->bits, r->units_per_week / 8));
2082			}
2083		}
2084		ndr->flags = _flags_save_STRUCT;
2085	}
2086	return NDR_ERR_SUCCESS;
2087}
2088
2089_PUBLIC_ enum ndr_err_code ndr_pull_samr_LogonHours(struct ndr_pull *ndr, int ndr_flags, struct samr_LogonHours *r)
2090{
2091	uint32_t _ptr_bits;
2092	TALLOC_CTX *_mem_save_bits_0;
2093	{
2094		uint32_t _flags_save_STRUCT = ndr->flags;
2095		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2096		if (ndr_flags & NDR_SCALARS) {
2097			NDR_CHECK(ndr_pull_align(ndr, 5));
2098			NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->units_per_week));
2099			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bits));
2100			if (_ptr_bits) {
2101				NDR_PULL_ALLOC(ndr, r->bits);
2102			} else {
2103				r->bits = NULL;
2104			}
2105			NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2106		}
2107		if (ndr_flags & NDR_BUFFERS) {
2108			if (r->bits) {
2109				_mem_save_bits_0 = NDR_PULL_GET_MEM_CTX(ndr);
2110				NDR_PULL_SET_MEM_CTX(ndr, r->bits, 0);
2111				NDR_CHECK(ndr_pull_array_size(ndr, &r->bits));
2112				NDR_CHECK(ndr_pull_array_length(ndr, &r->bits));
2113				if (ndr_get_array_length(ndr, &r->bits) > ndr_get_array_size(ndr, &r->bits)) {
2114					return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->bits), ndr_get_array_length(ndr, &r->bits));
2115				}
2116				NDR_PULL_ALLOC_N(ndr, r->bits, ndr_get_array_size(ndr, &r->bits));
2117				NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->bits, ndr_get_array_length(ndr, &r->bits)));
2118				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bits_0, 0);
2119			}
2120			if (r->bits) {
2121				NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->bits, 1260));
2122			}
2123			if (r->bits) {
2124				NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->bits, r->units_per_week / 8));
2125			}
2126		}
2127		ndr->flags = _flags_save_STRUCT;
2128	}
2129	return NDR_ERR_SUCCESS;
2130}
2131
2132_PUBLIC_ void ndr_print_samr_LogonHours(struct ndr_print *ndr, const char *name, const struct samr_LogonHours *r)
2133{
2134	ndr_print_struct(ndr, name, "samr_LogonHours");
2135	{
2136		uint32_t _flags_save_STRUCT = ndr->flags;
2137		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2138		ndr->depth++;
2139		ndr_print_uint16(ndr, "units_per_week", r->units_per_week);
2140		ndr_print_ptr(ndr, "bits", r->bits);
2141		ndr->depth++;
2142		if (r->bits) {
2143			ndr_print_array_uint8(ndr, "bits", r->bits, r->units_per_week / 8);
2144		}
2145		ndr->depth--;
2146		ndr->depth--;
2147		ndr->flags = _flags_save_STRUCT;
2148	}
2149}
2150
2151static enum ndr_err_code ndr_push_samr_UserInfo3(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo3 *r)
2152{
2153	if (ndr_flags & NDR_SCALARS) {
2154		NDR_CHECK(ndr_push_align(ndr, 5));
2155		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2156		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2157		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2158		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2159		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2160		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2161		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2162		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2163		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2164		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2165		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2166		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2167		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
2168		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
2169		NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2170		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2171		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2172		NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2173		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2174	}
2175	if (ndr_flags & NDR_BUFFERS) {
2176		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2177		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2178		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2179		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2180		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2181		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2182		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2183		NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2184	}
2185	return NDR_ERR_SUCCESS;
2186}
2187
2188static enum ndr_err_code ndr_pull_samr_UserInfo3(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo3 *r)
2189{
2190	if (ndr_flags & NDR_SCALARS) {
2191		NDR_CHECK(ndr_pull_align(ndr, 5));
2192		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2193		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2194		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2195		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2196		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2197		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2198		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2199		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2200		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2201		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2202		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2203		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2204		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
2205		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
2206		NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2207		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2208		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2209		NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2210		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2211	}
2212	if (ndr_flags & NDR_BUFFERS) {
2213		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2214		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2215		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2216		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2217		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2218		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2219		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2220		NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2221	}
2222	return NDR_ERR_SUCCESS;
2223}
2224
2225_PUBLIC_ void ndr_print_samr_UserInfo3(struct ndr_print *ndr, const char *name, const struct samr_UserInfo3 *r)
2226{
2227	ndr_print_struct(ndr, name, "samr_UserInfo3");
2228	ndr->depth++;
2229	ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2230	ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2231	ndr_print_uint32(ndr, "rid", r->rid);
2232	ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2233	ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2234	ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2235	ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2236	ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2237	ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2238	ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2239	ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2240	ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2241	ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
2242	ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
2243	ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2244	ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2245	ndr_print_uint16(ndr, "logon_count", r->logon_count);
2246	ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2247	ndr->depth--;
2248}
2249
2250static enum ndr_err_code ndr_push_samr_UserInfo4(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo4 *r)
2251{
2252	if (ndr_flags & NDR_SCALARS) {
2253		NDR_CHECK(ndr_push_align(ndr, 5));
2254		NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2255		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2256	}
2257	if (ndr_flags & NDR_BUFFERS) {
2258		NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2259	}
2260	return NDR_ERR_SUCCESS;
2261}
2262
2263static enum ndr_err_code ndr_pull_samr_UserInfo4(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo4 *r)
2264{
2265	if (ndr_flags & NDR_SCALARS) {
2266		NDR_CHECK(ndr_pull_align(ndr, 5));
2267		NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2268		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2269	}
2270	if (ndr_flags & NDR_BUFFERS) {
2271		NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2272	}
2273	return NDR_ERR_SUCCESS;
2274}
2275
2276_PUBLIC_ void ndr_print_samr_UserInfo4(struct ndr_print *ndr, const char *name, const struct samr_UserInfo4 *r)
2277{
2278	ndr_print_struct(ndr, name, "samr_UserInfo4");
2279	ndr->depth++;
2280	ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2281	ndr->depth--;
2282}
2283
2284static enum ndr_err_code ndr_push_samr_UserInfo5(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo5 *r)
2285{
2286	if (ndr_flags & NDR_SCALARS) {
2287		NDR_CHECK(ndr_push_align(ndr, 5));
2288		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2289		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2290		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2291		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2292		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2293		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2294		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2295		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2296		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2297		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2298		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2299		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2300		NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2301		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2302		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2303		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2304		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2305		NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2306		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2307	}
2308	if (ndr_flags & NDR_BUFFERS) {
2309		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2310		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2311		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2312		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2313		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2314		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2315		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2316		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2317		NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2318	}
2319	return NDR_ERR_SUCCESS;
2320}
2321
2322static enum ndr_err_code ndr_pull_samr_UserInfo5(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo5 *r)
2323{
2324	if (ndr_flags & NDR_SCALARS) {
2325		NDR_CHECK(ndr_pull_align(ndr, 5));
2326		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2327		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2328		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2329		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2330		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2331		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2332		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2333		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2334		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2335		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2336		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2337		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2338		NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2339		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2340		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2341		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2342		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2343		NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2344		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2345	}
2346	if (ndr_flags & NDR_BUFFERS) {
2347		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2348		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2349		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2350		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2351		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2352		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2353		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2354		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2355		NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2356	}
2357	return NDR_ERR_SUCCESS;
2358}
2359
2360_PUBLIC_ void ndr_print_samr_UserInfo5(struct ndr_print *ndr, const char *name, const struct samr_UserInfo5 *r)
2361{
2362	ndr_print_struct(ndr, name, "samr_UserInfo5");
2363	ndr->depth++;
2364	ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2365	ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2366	ndr_print_uint32(ndr, "rid", r->rid);
2367	ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2368	ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2369	ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2370	ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2371	ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2372	ndr_print_lsa_String(ndr, "description", &r->description);
2373	ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2374	ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2375	ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2376	ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2377	ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2378	ndr_print_uint16(ndr, "logon_count", r->logon_count);
2379	ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2380	ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2381	ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2382	ndr->depth--;
2383}
2384
2385static enum ndr_err_code ndr_push_samr_UserInfo6(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo6 *r)
2386{
2387	if (ndr_flags & NDR_SCALARS) {
2388		NDR_CHECK(ndr_push_align(ndr, 5));
2389		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2390		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2391		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2392	}
2393	if (ndr_flags & NDR_BUFFERS) {
2394		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2395		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2396	}
2397	return NDR_ERR_SUCCESS;
2398}
2399
2400static enum ndr_err_code ndr_pull_samr_UserInfo6(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo6 *r)
2401{
2402	if (ndr_flags & NDR_SCALARS) {
2403		NDR_CHECK(ndr_pull_align(ndr, 5));
2404		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2405		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2406		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2407	}
2408	if (ndr_flags & NDR_BUFFERS) {
2409		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2410		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2411	}
2412	return NDR_ERR_SUCCESS;
2413}
2414
2415_PUBLIC_ void ndr_print_samr_UserInfo6(struct ndr_print *ndr, const char *name, const struct samr_UserInfo6 *r)
2416{
2417	ndr_print_struct(ndr, name, "samr_UserInfo6");
2418	ndr->depth++;
2419	ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2420	ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2421	ndr->depth--;
2422}
2423
2424static enum ndr_err_code ndr_push_samr_UserInfo7(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo7 *r)
2425{
2426	if (ndr_flags & NDR_SCALARS) {
2427		NDR_CHECK(ndr_push_align(ndr, 5));
2428		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2429		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2430	}
2431	if (ndr_flags & NDR_BUFFERS) {
2432		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2433	}
2434	return NDR_ERR_SUCCESS;
2435}
2436
2437static enum ndr_err_code ndr_pull_samr_UserInfo7(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo7 *r)
2438{
2439	if (ndr_flags & NDR_SCALARS) {
2440		NDR_CHECK(ndr_pull_align(ndr, 5));
2441		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2442		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2443	}
2444	if (ndr_flags & NDR_BUFFERS) {
2445		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2446	}
2447	return NDR_ERR_SUCCESS;
2448}
2449
2450_PUBLIC_ void ndr_print_samr_UserInfo7(struct ndr_print *ndr, const char *name, const struct samr_UserInfo7 *r)
2451{
2452	ndr_print_struct(ndr, name, "samr_UserInfo7");
2453	ndr->depth++;
2454	ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2455	ndr->depth--;
2456}
2457
2458static enum ndr_err_code ndr_push_samr_UserInfo8(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo8 *r)
2459{
2460	if (ndr_flags & NDR_SCALARS) {
2461		NDR_CHECK(ndr_push_align(ndr, 5));
2462		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2463		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2464	}
2465	if (ndr_flags & NDR_BUFFERS) {
2466		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2467	}
2468	return NDR_ERR_SUCCESS;
2469}
2470
2471static enum ndr_err_code ndr_pull_samr_UserInfo8(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo8 *r)
2472{
2473	if (ndr_flags & NDR_SCALARS) {
2474		NDR_CHECK(ndr_pull_align(ndr, 5));
2475		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2476		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2477	}
2478	if (ndr_flags & NDR_BUFFERS) {
2479		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2480	}
2481	return NDR_ERR_SUCCESS;
2482}
2483
2484_PUBLIC_ void ndr_print_samr_UserInfo8(struct ndr_print *ndr, const char *name, const struct samr_UserInfo8 *r)
2485{
2486	ndr_print_struct(ndr, name, "samr_UserInfo8");
2487	ndr->depth++;
2488	ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2489	ndr->depth--;
2490}
2491
2492static enum ndr_err_code ndr_push_samr_UserInfo9(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo9 *r)
2493{
2494	if (ndr_flags & NDR_SCALARS) {
2495		NDR_CHECK(ndr_push_align(ndr, 4));
2496		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2497		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2498	}
2499	if (ndr_flags & NDR_BUFFERS) {
2500	}
2501	return NDR_ERR_SUCCESS;
2502}
2503
2504static enum ndr_err_code ndr_pull_samr_UserInfo9(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo9 *r)
2505{
2506	if (ndr_flags & NDR_SCALARS) {
2507		NDR_CHECK(ndr_pull_align(ndr, 4));
2508		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2509		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2510	}
2511	if (ndr_flags & NDR_BUFFERS) {
2512	}
2513	return NDR_ERR_SUCCESS;
2514}
2515
2516_PUBLIC_ void ndr_print_samr_UserInfo9(struct ndr_print *ndr, const char *name, const struct samr_UserInfo9 *r)
2517{
2518	ndr_print_struct(ndr, name, "samr_UserInfo9");
2519	ndr->depth++;
2520	ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2521	ndr->depth--;
2522}
2523
2524static enum ndr_err_code ndr_push_samr_UserInfo10(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo10 *r)
2525{
2526	if (ndr_flags & NDR_SCALARS) {
2527		NDR_CHECK(ndr_push_align(ndr, 5));
2528		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2529		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2530		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2531	}
2532	if (ndr_flags & NDR_BUFFERS) {
2533		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2534		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2535	}
2536	return NDR_ERR_SUCCESS;
2537}
2538
2539static enum ndr_err_code ndr_pull_samr_UserInfo10(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo10 *r)
2540{
2541	if (ndr_flags & NDR_SCALARS) {
2542		NDR_CHECK(ndr_pull_align(ndr, 5));
2543		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2544		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2545		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2546	}
2547	if (ndr_flags & NDR_BUFFERS) {
2548		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2549		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2550	}
2551	return NDR_ERR_SUCCESS;
2552}
2553
2554_PUBLIC_ void ndr_print_samr_UserInfo10(struct ndr_print *ndr, const char *name, const struct samr_UserInfo10 *r)
2555{
2556	ndr_print_struct(ndr, name, "samr_UserInfo10");
2557	ndr->depth++;
2558	ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2559	ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2560	ndr->depth--;
2561}
2562
2563static enum ndr_err_code ndr_push_samr_UserInfo11(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo11 *r)
2564{
2565	if (ndr_flags & NDR_SCALARS) {
2566		NDR_CHECK(ndr_push_align(ndr, 5));
2567		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2568		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2569	}
2570	if (ndr_flags & NDR_BUFFERS) {
2571		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2572	}
2573	return NDR_ERR_SUCCESS;
2574}
2575
2576static enum ndr_err_code ndr_pull_samr_UserInfo11(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo11 *r)
2577{
2578	if (ndr_flags & NDR_SCALARS) {
2579		NDR_CHECK(ndr_pull_align(ndr, 5));
2580		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2581		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2582	}
2583	if (ndr_flags & NDR_BUFFERS) {
2584		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2585	}
2586	return NDR_ERR_SUCCESS;
2587}
2588
2589_PUBLIC_ void ndr_print_samr_UserInfo11(struct ndr_print *ndr, const char *name, const struct samr_UserInfo11 *r)
2590{
2591	ndr_print_struct(ndr, name, "samr_UserInfo11");
2592	ndr->depth++;
2593	ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2594	ndr->depth--;
2595}
2596
2597static enum ndr_err_code ndr_push_samr_UserInfo12(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo12 *r)
2598{
2599	if (ndr_flags & NDR_SCALARS) {
2600		NDR_CHECK(ndr_push_align(ndr, 5));
2601		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2602		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2603	}
2604	if (ndr_flags & NDR_BUFFERS) {
2605		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2606	}
2607	return NDR_ERR_SUCCESS;
2608}
2609
2610static enum ndr_err_code ndr_pull_samr_UserInfo12(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo12 *r)
2611{
2612	if (ndr_flags & NDR_SCALARS) {
2613		NDR_CHECK(ndr_pull_align(ndr, 5));
2614		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2615		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2616	}
2617	if (ndr_flags & NDR_BUFFERS) {
2618		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2619	}
2620	return NDR_ERR_SUCCESS;
2621}
2622
2623_PUBLIC_ void ndr_print_samr_UserInfo12(struct ndr_print *ndr, const char *name, const struct samr_UserInfo12 *r)
2624{
2625	ndr_print_struct(ndr, name, "samr_UserInfo12");
2626	ndr->depth++;
2627	ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2628	ndr->depth--;
2629}
2630
2631static enum ndr_err_code ndr_push_samr_UserInfo13(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo13 *r)
2632{
2633	if (ndr_flags & NDR_SCALARS) {
2634		NDR_CHECK(ndr_push_align(ndr, 5));
2635		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2636		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2637	}
2638	if (ndr_flags & NDR_BUFFERS) {
2639		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2640	}
2641	return NDR_ERR_SUCCESS;
2642}
2643
2644static enum ndr_err_code ndr_pull_samr_UserInfo13(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo13 *r)
2645{
2646	if (ndr_flags & NDR_SCALARS) {
2647		NDR_CHECK(ndr_pull_align(ndr, 5));
2648		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2649		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2650	}
2651	if (ndr_flags & NDR_BUFFERS) {
2652		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2653	}
2654	return NDR_ERR_SUCCESS;
2655}
2656
2657_PUBLIC_ void ndr_print_samr_UserInfo13(struct ndr_print *ndr, const char *name, const struct samr_UserInfo13 *r)
2658{
2659	ndr_print_struct(ndr, name, "samr_UserInfo13");
2660	ndr->depth++;
2661	ndr_print_lsa_String(ndr, "description", &r->description);
2662	ndr->depth--;
2663}
2664
2665static enum ndr_err_code ndr_push_samr_UserInfo14(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo14 *r)
2666{
2667	if (ndr_flags & NDR_SCALARS) {
2668		NDR_CHECK(ndr_push_align(ndr, 5));
2669		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2670		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2671	}
2672	if (ndr_flags & NDR_BUFFERS) {
2673		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2674	}
2675	return NDR_ERR_SUCCESS;
2676}
2677
2678static enum ndr_err_code ndr_pull_samr_UserInfo14(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo14 *r)
2679{
2680	if (ndr_flags & NDR_SCALARS) {
2681		NDR_CHECK(ndr_pull_align(ndr, 5));
2682		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2683		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2684	}
2685	if (ndr_flags & NDR_BUFFERS) {
2686		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2687	}
2688	return NDR_ERR_SUCCESS;
2689}
2690
2691_PUBLIC_ void ndr_print_samr_UserInfo14(struct ndr_print *ndr, const char *name, const struct samr_UserInfo14 *r)
2692{
2693	ndr_print_struct(ndr, name, "samr_UserInfo14");
2694	ndr->depth++;
2695	ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2696	ndr->depth--;
2697}
2698
2699static enum ndr_err_code ndr_push_samr_UserInfo16(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo16 *r)
2700{
2701	if (ndr_flags & NDR_SCALARS) {
2702		NDR_CHECK(ndr_push_align(ndr, 4));
2703		NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2704		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2705	}
2706	if (ndr_flags & NDR_BUFFERS) {
2707	}
2708	return NDR_ERR_SUCCESS;
2709}
2710
2711static enum ndr_err_code ndr_pull_samr_UserInfo16(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo16 *r)
2712{
2713	if (ndr_flags & NDR_SCALARS) {
2714		NDR_CHECK(ndr_pull_align(ndr, 4));
2715		NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2716		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2717	}
2718	if (ndr_flags & NDR_BUFFERS) {
2719	}
2720	return NDR_ERR_SUCCESS;
2721}
2722
2723_PUBLIC_ void ndr_print_samr_UserInfo16(struct ndr_print *ndr, const char *name, const struct samr_UserInfo16 *r)
2724{
2725	ndr_print_struct(ndr, name, "samr_UserInfo16");
2726	ndr->depth++;
2727	ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2728	ndr->depth--;
2729}
2730
2731static enum ndr_err_code ndr_push_samr_UserInfo17(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo17 *r)
2732{
2733	if (ndr_flags & NDR_SCALARS) {
2734		NDR_CHECK(ndr_push_align(ndr, 4));
2735		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2736		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2737	}
2738	if (ndr_flags & NDR_BUFFERS) {
2739	}
2740	return NDR_ERR_SUCCESS;
2741}
2742
2743static enum ndr_err_code ndr_pull_samr_UserInfo17(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo17 *r)
2744{
2745	if (ndr_flags & NDR_SCALARS) {
2746		NDR_CHECK(ndr_pull_align(ndr, 4));
2747		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2748		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2749	}
2750	if (ndr_flags & NDR_BUFFERS) {
2751	}
2752	return NDR_ERR_SUCCESS;
2753}
2754
2755_PUBLIC_ void ndr_print_samr_UserInfo17(struct ndr_print *ndr, const char *name, const struct samr_UserInfo17 *r)
2756{
2757	ndr_print_struct(ndr, name, "samr_UserInfo17");
2758	ndr->depth++;
2759	ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2760	ndr->depth--;
2761}
2762
2763_PUBLIC_ enum ndr_err_code ndr_push_samr_Password(struct ndr_push *ndr, int ndr_flags, const struct samr_Password *r)
2764{
2765	{
2766		uint32_t _flags_save_STRUCT = ndr->flags;
2767		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2768		if (ndr_flags & NDR_SCALARS) {
2769			NDR_CHECK(ndr_push_align(ndr, 1));
2770			NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->hash, 16));
2771			NDR_CHECK(ndr_push_trailer_align(ndr, 1));
2772		}
2773		if (ndr_flags & NDR_BUFFERS) {
2774		}
2775		ndr->flags = _flags_save_STRUCT;
2776	}
2777	return NDR_ERR_SUCCESS;
2778}
2779
2780_PUBLIC_ enum ndr_err_code ndr_pull_samr_Password(struct ndr_pull *ndr, int ndr_flags, struct samr_Password *r)
2781{
2782	{
2783		uint32_t _flags_save_STRUCT = ndr->flags;
2784		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2785		if (ndr_flags & NDR_SCALARS) {
2786			NDR_CHECK(ndr_pull_align(ndr, 1));
2787			NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->hash, 16));
2788			NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
2789		}
2790		if (ndr_flags & NDR_BUFFERS) {
2791		}
2792		ndr->flags = _flags_save_STRUCT;
2793	}
2794	return NDR_ERR_SUCCESS;
2795}
2796
2797_PUBLIC_ void ndr_print_samr_Password(struct ndr_print *ndr, const char *name, const struct samr_Password *r)
2798{
2799	ndr_print_struct(ndr, name, "samr_Password");
2800	{
2801		uint32_t _flags_save_STRUCT = ndr->flags;
2802		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2803		ndr->depth++;
2804		ndr_print_array_uint8(ndr, "hash", r->hash, 16);
2805		ndr->depth--;
2806		ndr->flags = _flags_save_STRUCT;
2807	}
2808}
2809
2810static enum ndr_err_code ndr_push_samr_UserInfo18(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo18 *r)
2811{
2812	if (ndr_flags & NDR_SCALARS) {
2813		NDR_CHECK(ndr_push_align(ndr, 1));
2814		NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->nt_pwd));
2815		NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lm_pwd));
2816		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_pwd_active));
2817		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_pwd_active));
2818		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2819		NDR_CHECK(ndr_push_trailer_align(ndr, 1));
2820	}
2821	if (ndr_flags & NDR_BUFFERS) {
2822	}
2823	return NDR_ERR_SUCCESS;
2824}
2825
2826static enum ndr_err_code ndr_pull_samr_UserInfo18(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo18 *r)
2827{
2828	if (ndr_flags & NDR_SCALARS) {
2829		NDR_CHECK(ndr_pull_align(ndr, 1));
2830		NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->nt_pwd));
2831		NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lm_pwd));
2832		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_pwd_active));
2833		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_pwd_active));
2834		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2835		NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
2836	}
2837	if (ndr_flags & NDR_BUFFERS) {
2838	}
2839	return NDR_ERR_SUCCESS;
2840}
2841
2842_PUBLIC_ void ndr_print_samr_UserInfo18(struct ndr_print *ndr, const char *name, const struct samr_UserInfo18 *r)
2843{
2844	ndr_print_struct(ndr, name, "samr_UserInfo18");
2845	ndr->depth++;
2846	ndr_print_samr_Password(ndr, "nt_pwd", &r->nt_pwd);
2847	ndr_print_samr_Password(ndr, "lm_pwd", &r->lm_pwd);
2848	ndr_print_uint8(ndr, "nt_pwd_active", r->nt_pwd_active);
2849	ndr_print_uint8(ndr, "lm_pwd_active", r->lm_pwd_active);
2850	ndr_print_uint8(ndr, "password_expired", r->password_expired);
2851	ndr->depth--;
2852}
2853
2854static enum ndr_err_code ndr_push_samr_UserInfo20(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo20 *r)
2855{
2856	if (ndr_flags & NDR_SCALARS) {
2857		NDR_CHECK(ndr_push_align(ndr, 5));
2858		NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2859		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2860	}
2861	if (ndr_flags & NDR_BUFFERS) {
2862		NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2863	}
2864	return NDR_ERR_SUCCESS;
2865}
2866
2867static enum ndr_err_code ndr_pull_samr_UserInfo20(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo20 *r)
2868{
2869	if (ndr_flags & NDR_SCALARS) {
2870		NDR_CHECK(ndr_pull_align(ndr, 5));
2871		NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2872		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2873	}
2874	if (ndr_flags & NDR_BUFFERS) {
2875		NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2876	}
2877	return NDR_ERR_SUCCESS;
2878}
2879
2880_PUBLIC_ void ndr_print_samr_UserInfo20(struct ndr_print *ndr, const char *name, const struct samr_UserInfo20 *r)
2881{
2882	ndr_print_struct(ndr, name, "samr_UserInfo20");
2883	ndr->depth++;
2884	ndr_print_lsa_BinaryString(ndr, "parameters", &r->parameters);
2885	ndr->depth--;
2886}
2887
2888static enum ndr_err_code ndr_push_samr_FieldsPresent(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2889{
2890	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2891	return NDR_ERR_SUCCESS;
2892}
2893
2894static enum ndr_err_code ndr_pull_samr_FieldsPresent(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2895{
2896	uint32_t v;
2897	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2898	*r = v;
2899	return NDR_ERR_SUCCESS;
2900}
2901
2902_PUBLIC_ void ndr_print_samr_FieldsPresent(struct ndr_print *ndr, const char *name, uint32_t r)
2903{
2904	ndr_print_uint32(ndr, name, r);
2905	ndr->depth++;
2906	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_ACCOUNT_NAME", SAMR_FIELD_ACCOUNT_NAME, r);
2907	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_FULL_NAME", SAMR_FIELD_FULL_NAME, r);
2908	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_RID", SAMR_FIELD_RID, r);
2909	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_PRIMARY_GID", SAMR_FIELD_PRIMARY_GID, r);
2910	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_DESCRIPTION", SAMR_FIELD_DESCRIPTION, r);
2911	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_COMMENT", SAMR_FIELD_COMMENT, r);
2912	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_HOME_DIRECTORY", SAMR_FIELD_HOME_DIRECTORY, r);
2913	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_HOME_DRIVE", SAMR_FIELD_HOME_DRIVE, r);
2914	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_LOGON_SCRIPT", SAMR_FIELD_LOGON_SCRIPT, r);
2915	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_PROFILE_PATH", SAMR_FIELD_PROFILE_PATH, r);
2916	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_WORKSTATIONS", SAMR_FIELD_WORKSTATIONS, r);
2917	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_LAST_LOGON", SAMR_FIELD_LAST_LOGON, r);
2918	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_LAST_LOGOFF", SAMR_FIELD_LAST_LOGOFF, r);
2919	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_LOGON_HOURS", SAMR_FIELD_LOGON_HOURS, r);
2920	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_BAD_PWD_COUNT", SAMR_FIELD_BAD_PWD_COUNT, r);
2921	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_NUM_LOGONS", SAMR_FIELD_NUM_LOGONS, r);
2922	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_ALLOW_PWD_CHANGE", SAMR_FIELD_ALLOW_PWD_CHANGE, r);
2923	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_FORCE_PWD_CHANGE", SAMR_FIELD_FORCE_PWD_CHANGE, r);
2924	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_LAST_PWD_CHANGE", SAMR_FIELD_LAST_PWD_CHANGE, r);
2925	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_ACCT_EXPIRY", SAMR_FIELD_ACCT_EXPIRY, r);
2926	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_ACCT_FLAGS", SAMR_FIELD_ACCT_FLAGS, r);
2927	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_PARAMETERS", SAMR_FIELD_PARAMETERS, r);
2928	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_COUNTRY_CODE", SAMR_FIELD_COUNTRY_CODE, r);
2929	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_CODE_PAGE", SAMR_FIELD_CODE_PAGE, r);
2930	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_NT_PASSWORD_PRESENT", SAMR_FIELD_NT_PASSWORD_PRESENT, r);
2931	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_LM_PASSWORD_PRESENT", SAMR_FIELD_LM_PASSWORD_PRESENT, r);
2932	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_PRIVATE_DATA", SAMR_FIELD_PRIVATE_DATA, r);
2933	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_EXPIRED_FLAG", SAMR_FIELD_EXPIRED_FLAG, r);
2934	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_SEC_DESC", SAMR_FIELD_SEC_DESC, r);
2935	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_OWF_PWD", SAMR_FIELD_OWF_PWD, r);
2936	ndr->depth--;
2937}
2938
2939static enum ndr_err_code ndr_push_samr_UserInfo21(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo21 *r)
2940{
2941	if (ndr_flags & NDR_SCALARS) {
2942		NDR_CHECK(ndr_push_align(ndr, 5));
2943		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2944		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2945		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2946		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2947		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
2948		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
2949		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2950		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2951		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2952		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2953		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2954		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2955		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2956		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2957		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2958		NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2959		NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->lm_owf_password));
2960		NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->nt_owf_password));
2961		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2962		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->buf_count));
2963		NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
2964		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2965		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2966		NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2967		NDR_CHECK(ndr_push_samr_FieldsPresent(ndr, NDR_SCALARS, r->fields_present));
2968		NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2969		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2970		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2971		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2972		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2973		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_set));
2974		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_set));
2975		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2976		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->unknown4));
2977		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2978	}
2979	if (ndr_flags & NDR_BUFFERS) {
2980		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2981		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2982		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2983		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2984		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2985		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2986		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2987		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2988		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2989		NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2990		NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->lm_owf_password));
2991		NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->nt_owf_password));
2992		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2993		if (r->buffer) {
2994			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->buf_count));
2995			NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->buf_count));
2996		}
2997		NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2998	}
2999	return NDR_ERR_SUCCESS;
3000}
3001
3002static enum ndr_err_code ndr_pull_samr_UserInfo21(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo21 *r)
3003{
3004	uint32_t _ptr_buffer;
3005	TALLOC_CTX *_mem_save_buffer_0;
3006	if (ndr_flags & NDR_SCALARS) {
3007		NDR_CHECK(ndr_pull_align(ndr, 5));
3008		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
3009		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
3010		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
3011		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
3012		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
3013		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
3014		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
3015		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
3016		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
3017		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
3018		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
3019		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
3020		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
3021		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
3022		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
3023		NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
3024		NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->lm_owf_password));
3025		NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->nt_owf_password));
3026		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3027		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->buf_count));
3028		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
3029		if (_ptr_buffer) {
3030			NDR_PULL_ALLOC(ndr, r->buffer);
3031		} else {
3032			r->buffer = NULL;
3033		}
3034		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
3035		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
3036		NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
3037		NDR_CHECK(ndr_pull_samr_FieldsPresent(ndr, NDR_SCALARS, &r->fields_present));
3038		NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
3039		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
3040		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
3041		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
3042		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
3043		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_set));
3044		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_set));
3045		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
3046		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->unknown4));
3047		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3048	}
3049	if (ndr_flags & NDR_BUFFERS) {
3050		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
3051		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
3052		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
3053		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
3054		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
3055		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
3056		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
3057		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
3058		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
3059		NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
3060		NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->lm_owf_password));
3061		NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->nt_owf_password));
3062		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3063		if (r->buffer) {
3064			_mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
3065			NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
3066			NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
3067			NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
3068			NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
3069			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
3070		}
3071		NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
3072		if (r->buffer) {
3073			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->buf_count));
3074		}
3075	}
3076	return NDR_ERR_SUCCESS;
3077}
3078
3079_PUBLIC_ void ndr_print_samr_UserInfo21(struct ndr_print *ndr, const char *name, const struct samr_UserInfo21 *r)
3080{
3081	ndr_print_struct(ndr, name, "samr_UserInfo21");
3082	ndr->depth++;
3083	ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
3084	ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
3085	ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
3086	ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
3087	ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
3088	ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
3089	ndr_print_lsa_String(ndr, "account_name", &r->account_name);
3090	ndr_print_lsa_String(ndr, "full_name", &r->full_name);
3091	ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
3092	ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
3093	ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
3094	ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
3095	ndr_print_lsa_String(ndr, "description", &r->description);
3096	ndr_print_lsa_String(ndr, "workstations", &r->workstations);
3097	ndr_print_lsa_String(ndr, "comment", &r->comment);
3098	ndr_print_lsa_BinaryString(ndr, "parameters", &r->parameters);
3099	ndr_print_lsa_BinaryString(ndr, "lm_owf_password", &r->lm_owf_password);
3100	ndr_print_lsa_BinaryString(ndr, "nt_owf_password", &r->nt_owf_password);
3101	ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3102	ndr_print_uint32(ndr, "buf_count", r->buf_count);
3103	ndr_print_ptr(ndr, "buffer", r->buffer);
3104	ndr->depth++;
3105	if (r->buffer) {
3106		ndr_print_array_uint8(ndr, "buffer", r->buffer, r->buf_count);
3107	}
3108	ndr->depth--;
3109	ndr_print_uint32(ndr, "rid", r->rid);
3110	ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
3111	ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
3112	ndr_print_samr_FieldsPresent(ndr, "fields_present", r->fields_present);
3113	ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
3114	ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
3115	ndr_print_uint16(ndr, "logon_count", r->logon_count);
3116	ndr_print_uint16(ndr, "country_code", r->country_code);
3117	ndr_print_uint16(ndr, "code_page", r->code_page);
3118	ndr_print_uint8(ndr, "lm_password_set", r->lm_password_set);
3119	ndr_print_uint8(ndr, "nt_password_set", r->nt_password_set);
3120	ndr_print_uint8(ndr, "password_expired", r->password_expired);
3121	ndr_print_uint8(ndr, "unknown4", r->unknown4);
3122	ndr->depth--;
3123}
3124
3125_PUBLIC_ enum ndr_err_code ndr_push_samr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct samr_CryptPassword *r)
3126{
3127	{
3128		uint32_t _flags_save_STRUCT = ndr->flags;
3129		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3130		if (ndr_flags & NDR_SCALARS) {
3131			NDR_CHECK(ndr_push_align(ndr, 1));
3132			NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 516));
3133			NDR_CHECK(ndr_push_trailer_align(ndr, 1));
3134		}
3135		if (ndr_flags & NDR_BUFFERS) {
3136		}
3137		ndr->flags = _flags_save_STRUCT;
3138	}
3139	return NDR_ERR_SUCCESS;
3140}
3141
3142_PUBLIC_ enum ndr_err_code ndr_pull_samr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct samr_CryptPassword *r)
3143{
3144	{
3145		uint32_t _flags_save_STRUCT = ndr->flags;
3146		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3147		if (ndr_flags & NDR_SCALARS) {
3148			NDR_CHECK(ndr_pull_align(ndr, 1));
3149			NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 516));
3150			NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
3151		}
3152		if (ndr_flags & NDR_BUFFERS) {
3153		}
3154		ndr->flags = _flags_save_STRUCT;
3155	}
3156	return NDR_ERR_SUCCESS;
3157}
3158
3159_PUBLIC_ void ndr_print_samr_CryptPassword(struct ndr_print *ndr, const char *name, const struct samr_CryptPassword *r)
3160{
3161	ndr_print_struct(ndr, name, "samr_CryptPassword");
3162	{
3163		uint32_t _flags_save_STRUCT = ndr->flags;
3164		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3165		ndr->depth++;
3166		ndr_print_array_uint8(ndr, "data", r->data, 516);
3167		ndr->depth--;
3168		ndr->flags = _flags_save_STRUCT;
3169	}
3170}
3171
3172static enum ndr_err_code ndr_push_samr_UserInfo23(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo23 *r)
3173{
3174	if (ndr_flags & NDR_SCALARS) {
3175		NDR_CHECK(ndr_push_align(ndr, 5));
3176		NDR_CHECK(ndr_push_samr_UserInfo21(ndr, NDR_SCALARS, &r->info));
3177		NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, &r->password));
3178		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3179	}
3180	if (ndr_flags & NDR_BUFFERS) {
3181		NDR_CHECK(ndr_push_samr_UserInfo21(ndr, NDR_BUFFERS, &r->info));
3182	}
3183	return NDR_ERR_SUCCESS;
3184}
3185
3186static enum ndr_err_code ndr_pull_samr_UserInfo23(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo23 *r)
3187{
3188	if (ndr_flags & NDR_SCALARS) {
3189		NDR_CHECK(ndr_pull_align(ndr, 5));
3190		NDR_CHECK(ndr_pull_samr_UserInfo21(ndr, NDR_SCALARS, &r->info));
3191		NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, &r->password));
3192		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3193	}
3194	if (ndr_flags & NDR_BUFFERS) {
3195		NDR_CHECK(ndr_pull_samr_UserInfo21(ndr, NDR_BUFFERS, &r->info));
3196	}
3197	return NDR_ERR_SUCCESS;
3198}
3199
3200_PUBLIC_ void ndr_print_samr_UserInfo23(struct ndr_print *ndr, const char *name, const struct samr_UserInfo23 *r)
3201{
3202	ndr_print_struct(ndr, name, "samr_UserInfo23");
3203	ndr->depth++;
3204	ndr_print_samr_UserInfo21(ndr, "info", &r->info);
3205	ndr_print_samr_CryptPassword(ndr, "password", &r->password);
3206	ndr->depth--;
3207}
3208
3209static enum ndr_err_code ndr_push_samr_UserInfo24(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo24 *r)
3210{
3211	if (ndr_flags & NDR_SCALARS) {
3212		NDR_CHECK(ndr_push_align(ndr, 1));
3213		NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, &r->password));
3214		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
3215		NDR_CHECK(ndr_push_trailer_align(ndr, 1));
3216	}
3217	if (ndr_flags & NDR_BUFFERS) {
3218	}
3219	return NDR_ERR_SUCCESS;
3220}
3221
3222static enum ndr_err_code ndr_pull_samr_UserInfo24(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo24 *r)
3223{
3224	if (ndr_flags & NDR_SCALARS) {
3225		NDR_CHECK(ndr_pull_align(ndr, 1));
3226		NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, &r->password));
3227		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
3228		NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
3229	}
3230	if (ndr_flags & NDR_BUFFERS) {
3231	}
3232	return NDR_ERR_SUCCESS;
3233}
3234
3235_PUBLIC_ void ndr_print_samr_UserInfo24(struct ndr_print *ndr, const char *name, const struct samr_UserInfo24 *r)
3236{
3237	ndr_print_struct(ndr, name, "samr_UserInfo24");
3238	ndr->depth++;
3239	ndr_print_samr_CryptPassword(ndr, "password", &r->password);
3240	ndr_print_uint8(ndr, "password_expired", r->password_expired);
3241	ndr->depth--;
3242}
3243
3244static enum ndr_err_code ndr_push_samr_CryptPasswordEx(struct ndr_push *ndr, int ndr_flags, const struct samr_CryptPasswordEx *r)
3245{
3246	{
3247		uint32_t _flags_save_STRUCT = ndr->flags;
3248		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3249		if (ndr_flags & NDR_SCALARS) {
3250			NDR_CHECK(ndr_push_align(ndr, 1));
3251			NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 532));
3252			NDR_CHECK(ndr_push_trailer_align(ndr, 1));
3253		}
3254		if (ndr_flags & NDR_BUFFERS) {
3255		}
3256		ndr->flags = _flags_save_STRUCT;
3257	}
3258	return NDR_ERR_SUCCESS;
3259}
3260
3261static enum ndr_err_code ndr_pull_samr_CryptPasswordEx(struct ndr_pull *ndr, int ndr_flags, struct samr_CryptPasswordEx *r)
3262{
3263	{
3264		uint32_t _flags_save_STRUCT = ndr->flags;
3265		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3266		if (ndr_flags & NDR_SCALARS) {
3267			NDR_CHECK(ndr_pull_align(ndr, 1));
3268			NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 532));
3269			NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
3270		}
3271		if (ndr_flags & NDR_BUFFERS) {
3272		}
3273		ndr->flags = _flags_save_STRUCT;
3274	}
3275	return NDR_ERR_SUCCESS;
3276}
3277
3278_PUBLIC_ void ndr_print_samr_CryptPasswordEx(struct ndr_print *ndr, const char *name, const struct samr_CryptPasswordEx *r)
3279{
3280	ndr_print_struct(ndr, name, "samr_CryptPasswordEx");
3281	{
3282		uint32_t _flags_save_STRUCT = ndr->flags;
3283		ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3284		ndr->depth++;
3285		ndr_print_array_uint8(ndr, "data", r->data, 532);
3286		ndr->depth--;
3287		ndr->flags = _flags_save_STRUCT;
3288	}
3289}
3290
3291static enum ndr_err_code ndr_push_samr_UserInfo25(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo25 *r)
3292{
3293	if (ndr_flags & NDR_SCALARS) {
3294		NDR_CHECK(ndr_push_align(ndr, 5));
3295		NDR_CHECK(ndr_push_samr_UserInfo21(ndr, NDR_SCALARS, &r->info));
3296		NDR_CHECK(ndr_push_samr_CryptPasswordEx(ndr, NDR_SCALARS, &r->password));
3297		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3298	}
3299	if (ndr_flags & NDR_BUFFERS) {
3300		NDR_CHECK(ndr_push_samr_UserInfo21(ndr, NDR_BUFFERS, &r->info));
3301	}
3302	return NDR_ERR_SUCCESS;
3303}
3304
3305static enum ndr_err_code ndr_pull_samr_UserInfo25(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo25 *r)
3306{
3307	if (ndr_flags & NDR_SCALARS) {
3308		NDR_CHECK(ndr_pull_align(ndr, 5));
3309		NDR_CHECK(ndr_pull_samr_UserInfo21(ndr, NDR_SCALARS, &r->info));
3310		NDR_CHECK(ndr_pull_samr_CryptPasswordEx(ndr, NDR_SCALARS, &r->password));
3311		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3312	}
3313	if (ndr_flags & NDR_BUFFERS) {
3314		NDR_CHECK(ndr_pull_samr_UserInfo21(ndr, NDR_BUFFERS, &r->info));
3315	}
3316	return NDR_ERR_SUCCESS;
3317}
3318
3319_PUBLIC_ void ndr_print_samr_UserInfo25(struct ndr_print *ndr, const char *name, const struct samr_UserInfo25 *r)
3320{
3321	ndr_print_struct(ndr, name, "samr_UserInfo25");
3322	ndr->depth++;
3323	ndr_print_samr_UserInfo21(ndr, "info", &r->info);
3324	ndr_print_samr_CryptPasswordEx(ndr, "password", &r->password);
3325	ndr->depth--;
3326}
3327
3328static enum ndr_err_code ndr_push_samr_UserInfo26(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo26 *r)
3329{
3330	if (ndr_flags & NDR_SCALARS) {
3331		NDR_CHECK(ndr_push_align(ndr, 1));
3332		NDR_CHECK(ndr_push_samr_CryptPasswordEx(ndr, NDR_SCALARS, &r->password));
3333		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
3334		NDR_CHECK(ndr_push_trailer_align(ndr, 1));
3335	}
3336	if (ndr_flags & NDR_BUFFERS) {
3337	}
3338	return NDR_ERR_SUCCESS;
3339}
3340
3341static enum ndr_err_code ndr_pull_samr_UserInfo26(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo26 *r)
3342{
3343	if (ndr_flags & NDR_SCALARS) {
3344		NDR_CHECK(ndr_pull_align(ndr, 1));
3345		NDR_CHECK(ndr_pull_samr_CryptPasswordEx(ndr, NDR_SCALARS, &r->password));
3346		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
3347		NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
3348	}
3349	if (ndr_flags & NDR_BUFFERS) {
3350	}
3351	return NDR_ERR_SUCCESS;
3352}
3353
3354_PUBLIC_ void ndr_print_samr_UserInfo26(struct ndr_print *ndr, const char *name, const struct samr_UserInfo26 *r)
3355{
3356	ndr_print_struct(ndr, name, "samr_UserInfo26");
3357	ndr->depth++;
3358	ndr_print_samr_CryptPasswordEx(ndr, "password", &r->password);
3359	ndr_print_uint8(ndr, "password_expired", r->password_expired);
3360	ndr->depth--;
3361}
3362
3363static enum ndr_err_code ndr_push_samr_UserInfo(struct ndr_push *ndr, int ndr_flags, const union samr_UserInfo *r)
3364{
3365	if (ndr_flags & NDR_SCALARS) {
3366		int level = ndr_push_get_switch_value(ndr, r);
3367		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
3368		NDR_CHECK(ndr_push_union_align(ndr, 5));
3369		switch (level) {
3370			case 1: {
3371				NDR_CHECK(ndr_push_samr_UserInfo1(ndr, NDR_SCALARS, &r->info1));
3372			break; }
3373
3374			case 2: {
3375				NDR_CHECK(ndr_push_samr_UserInfo2(ndr, NDR_SCALARS, &r->info2));
3376			break; }
3377
3378			case 3: {
3379				NDR_CHECK(ndr_push_samr_UserInfo3(ndr, NDR_SCALARS, &r->info3));
3380			break; }
3381
3382			case 4: {
3383				NDR_CHECK(ndr_push_samr_UserInfo4(ndr, NDR_SCALARS, &r->info4));
3384			break; }
3385
3386			case 5: {
3387				NDR_CHECK(ndr_push_samr_UserInfo5(ndr, NDR_SCALARS, &r->info5));
3388			break; }
3389
3390			case 6: {
3391				NDR_CHECK(ndr_push_samr_UserInfo6(ndr, NDR_SCALARS, &r->info6));
3392			break; }
3393
3394			case 7: {
3395				NDR_CHECK(ndr_push_samr_UserInfo7(ndr, NDR_SCALARS, &r->info7));
3396			break; }
3397
3398			case 8: {
3399				NDR_CHECK(ndr_push_samr_UserInfo8(ndr, NDR_SCALARS, &r->info8));
3400			break; }
3401
3402			case 9: {
3403				NDR_CHECK(ndr_push_samr_UserInfo9(ndr, NDR_SCALARS, &r->info9));
3404			break; }
3405
3406			case 10: {
3407				NDR_CHECK(ndr_push_samr_UserInfo10(ndr, NDR_SCALARS, &r->info10));
3408			break; }
3409
3410			case 11: {
3411				NDR_CHECK(ndr_push_samr_UserInfo11(ndr, NDR_SCALARS, &r->info11));
3412			break; }
3413
3414			case 12: {
3415				NDR_CHECK(ndr_push_samr_UserInfo12(ndr, NDR_SCALARS, &r->info12));
3416			break; }
3417
3418			case 13: {
3419				NDR_CHECK(ndr_push_samr_UserInfo13(ndr, NDR_SCALARS, &r->info13));
3420			break; }
3421
3422			case 14: {
3423				NDR_CHECK(ndr_push_samr_UserInfo14(ndr, NDR_SCALARS, &r->info14));
3424			break; }
3425
3426			case 16: {
3427				NDR_CHECK(ndr_push_samr_UserInfo16(ndr, NDR_SCALARS, &r->info16));
3428			break; }
3429
3430			case 17: {
3431				NDR_CHECK(ndr_push_samr_UserInfo17(ndr, NDR_SCALARS, &r->info17));
3432			break; }
3433
3434			case 18: {
3435				NDR_CHECK(ndr_push_samr_UserInfo18(ndr, NDR_SCALARS, &r->info18));
3436			break; }
3437
3438			case 20: {
3439				NDR_CHECK(ndr_push_samr_UserInfo20(ndr, NDR_SCALARS, &r->info20));
3440			break; }
3441
3442			case 21: {
3443				NDR_CHECK(ndr_push_samr_UserInfo21(ndr, NDR_SCALARS, &r->info21));
3444			break; }
3445
3446			case 23: {
3447				NDR_CHECK(ndr_push_samr_UserInfo23(ndr, NDR_SCALARS, &r->info23));
3448			break; }
3449
3450			case 24: {
3451				NDR_CHECK(ndr_push_samr_UserInfo24(ndr, NDR_SCALARS, &r->info24));
3452			break; }
3453
3454			case 25: {
3455				NDR_CHECK(ndr_push_samr_UserInfo25(ndr, NDR_SCALARS, &r->info25));
3456			break; }
3457
3458			case 26: {
3459				NDR_CHECK(ndr_push_samr_UserInfo26(ndr, NDR_SCALARS, &r->info26));
3460			break; }
3461
3462			default:
3463				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3464		}
3465	}
3466	if (ndr_flags & NDR_BUFFERS) {
3467		int level = ndr_push_get_switch_value(ndr, r);
3468		switch (level) {
3469			case 1:
3470				NDR_CHECK(ndr_push_samr_UserInfo1(ndr, NDR_BUFFERS, &r->info1));
3471			break;
3472
3473			case 2:
3474				NDR_CHECK(ndr_push_samr_UserInfo2(ndr, NDR_BUFFERS, &r->info2));
3475			break;
3476
3477			case 3:
3478				NDR_CHECK(ndr_push_samr_UserInfo3(ndr, NDR_BUFFERS, &r->info3));
3479			break;
3480
3481			case 4:
3482				NDR_CHECK(ndr_push_samr_UserInfo4(ndr, NDR_BUFFERS, &r->info4));
3483			break;
3484
3485			case 5:
3486				NDR_CHECK(ndr_push_samr_UserInfo5(ndr, NDR_BUFFERS, &r->info5));
3487			break;
3488
3489			case 6:
3490				NDR_CHECK(ndr_push_samr_UserInfo6(ndr, NDR_BUFFERS, &r->info6));
3491			break;
3492
3493			case 7:
3494				NDR_CHECK(ndr_push_samr_UserInfo7(ndr, NDR_BUFFERS, &r->info7));
3495			break;
3496
3497			case 8:
3498				NDR_CHECK(ndr_push_samr_UserInfo8(ndr, NDR_BUFFERS, &r->info8));
3499			break;
3500
3501			case 9:
3502			break;
3503
3504			case 10:
3505				NDR_CHECK(ndr_push_samr_UserInfo10(ndr, NDR_BUFFERS, &r->info10));
3506			break;
3507
3508			case 11:
3509				NDR_CHECK(ndr_push_samr_UserInfo11(ndr, NDR_BUFFERS, &r->info11));
3510			break;
3511
3512			case 12:
3513				NDR_CHECK(ndr_push_samr_UserInfo12(ndr, NDR_BUFFERS, &r->info12));
3514			break;
3515
3516			case 13:
3517				NDR_CHECK(ndr_push_samr_UserInfo13(ndr, NDR_BUFFERS, &r->info13));
3518			break;
3519
3520			case 14:
3521				NDR_CHECK(ndr_push_samr_UserInfo14(ndr, NDR_BUFFERS, &r->info14));
3522			break;
3523
3524			case 16:
3525			break;
3526
3527			case 17:
3528			break;
3529
3530			case 18:
3531			break;
3532
3533			case 20:
3534				NDR_CHECK(ndr_push_samr_UserInfo20(ndr, NDR_BUFFERS, &r->info20));
3535			break;
3536
3537			case 21:
3538				NDR_CHECK(ndr_push_samr_UserInfo21(ndr, NDR_BUFFERS, &r->info21));
3539			break;
3540
3541			case 23:
3542				NDR_CHECK(ndr_push_samr_UserInfo23(ndr, NDR_BUFFERS, &r->info23));
3543			break;
3544
3545			case 24:
3546			break;
3547
3548			case 25:
3549				NDR_CHECK(ndr_push_samr_UserInfo25(ndr, NDR_BUFFERS, &r->info25));
3550			break;
3551
3552			case 26:
3553			break;
3554
3555			default:
3556				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3557		}
3558	}
3559	return NDR_ERR_SUCCESS;
3560}
3561
3562static enum ndr_err_code ndr_pull_samr_UserInfo(struct ndr_pull *ndr, int ndr_flags, union samr_UserInfo *r)
3563{
3564	int level;
3565	uint16_t _level;
3566	level = ndr_pull_get_switch_value(ndr, r);
3567	if (ndr_flags & NDR_SCALARS) {
3568		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
3569		if (_level != level) {
3570			return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
3571		}
3572		NDR_CHECK(ndr_pull_union_align(ndr, 5));
3573		switch (level) {
3574			case 1: {
3575				NDR_CHECK(ndr_pull_samr_UserInfo1(ndr, NDR_SCALARS, &r->info1));
3576			break; }
3577
3578			case 2: {
3579				NDR_CHECK(ndr_pull_samr_UserInfo2(ndr, NDR_SCALARS, &r->info2));
3580			break; }
3581
3582			case 3: {
3583				NDR_CHECK(ndr_pull_samr_UserInfo3(ndr, NDR_SCALARS, &r->info3));
3584			break; }
3585
3586			case 4: {
3587				NDR_CHECK(ndr_pull_samr_UserInfo4(ndr, NDR_SCALARS, &r->info4));
3588			break; }
3589
3590			case 5: {
3591				NDR_CHECK(ndr_pull_samr_UserInfo5(ndr, NDR_SCALARS, &r->info5));
3592			break; }
3593
3594			case 6: {
3595				NDR_CHECK(ndr_pull_samr_UserInfo6(ndr, NDR_SCALARS, &r->info6));
3596			break; }
3597
3598			case 7: {
3599				NDR_CHECK(ndr_pull_samr_UserInfo7(ndr, NDR_SCALARS, &r->info7));
3600			break; }
3601
3602			case 8: {
3603				NDR_CHECK(ndr_pull_samr_UserInfo8(ndr, NDR_SCALARS, &r->info8));
3604			break; }
3605
3606			case 9: {
3607				NDR_CHECK(ndr_pull_samr_UserInfo9(ndr, NDR_SCALARS, &r->info9));
3608			break; }
3609
3610			case 10: {
3611				NDR_CHECK(ndr_pull_samr_UserInfo10(ndr, NDR_SCALARS, &r->info10));
3612			break; }
3613
3614			case 11: {
3615				NDR_CHECK(ndr_pull_samr_UserInfo11(ndr, NDR_SCALARS, &r->info11));
3616			break; }
3617
3618			case 12: {
3619				NDR_CHECK(ndr_pull_samr_UserInfo12(ndr, NDR_SCALARS, &r->info12));
3620			break; }
3621
3622			case 13: {
3623				NDR_CHECK(ndr_pull_samr_UserInfo13(ndr, NDR_SCALARS, &r->info13));
3624			break; }
3625
3626			case 14: {
3627				NDR_CHECK(ndr_pull_samr_UserInfo14(ndr, NDR_SCALARS, &r->info14));
3628			break; }
3629
3630			case 16: {
3631				NDR_CHECK(ndr_pull_samr_UserInfo16(ndr, NDR_SCALARS, &r->info16));
3632			break; }
3633
3634			case 17: {
3635				NDR_CHECK(ndr_pull_samr_UserInfo17(ndr, NDR_SCALARS, &r->info17));
3636			break; }
3637
3638			case 18: {
3639				NDR_CHECK(ndr_pull_samr_UserInfo18(ndr, NDR_SCALARS, &r->info18));
3640			break; }
3641
3642			case 20: {
3643				NDR_CHECK(ndr_pull_samr_UserInfo20(ndr, NDR_SCALARS, &r->info20));
3644			break; }
3645
3646			case 21: {
3647				NDR_CHECK(ndr_pull_samr_UserInfo21(ndr, NDR_SCALARS, &r->info21));
3648			break; }
3649
3650			case 23: {
3651				NDR_CHECK(ndr_pull_samr_UserInfo23(ndr, NDR_SCALARS, &r->info23));
3652			break; }
3653
3654			case 24: {
3655				NDR_CHECK(ndr_pull_samr_UserInfo24(ndr, NDR_SCALARS, &r->info24));
3656			break; }
3657
3658			case 25: {
3659				NDR_CHECK(ndr_pull_samr_UserInfo25(ndr, NDR_SCALARS, &r->info25));
3660			break; }
3661
3662			case 26: {
3663				NDR_CHECK(ndr_pull_samr_UserInfo26(ndr, NDR_SCALARS, &r->info26));
3664			break; }
3665
3666			default:
3667				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3668		}
3669	}
3670	if (ndr_flags & NDR_BUFFERS) {
3671		switch (level) {
3672			case 1:
3673				NDR_CHECK(ndr_pull_samr_UserInfo1(ndr, NDR_BUFFERS, &r->info1));
3674			break;
3675
3676			case 2:
3677				NDR_CHECK(ndr_pull_samr_UserInfo2(ndr, NDR_BUFFERS, &r->info2));
3678			break;
3679
3680			case 3:
3681				NDR_CHECK(ndr_pull_samr_UserInfo3(ndr, NDR_BUFFERS, &r->info3));
3682			break;
3683
3684			case 4:
3685				NDR_CHECK(ndr_pull_samr_UserInfo4(ndr, NDR_BUFFERS, &r->info4));
3686			break;
3687
3688			case 5:
3689				NDR_CHECK(ndr_pull_samr_UserInfo5(ndr, NDR_BUFFERS, &r->info5));
3690			break;
3691
3692			case 6:
3693				NDR_CHECK(ndr_pull_samr_UserInfo6(ndr, NDR_BUFFERS, &r->info6));
3694			break;
3695
3696			case 7:
3697				NDR_CHECK(ndr_pull_samr_UserInfo7(ndr, NDR_BUFFERS, &r->info7));
3698			break;
3699
3700			case 8:
3701				NDR_CHECK(ndr_pull_samr_UserInfo8(ndr, NDR_BUFFERS, &r->info8));
3702			break;
3703
3704			case 9:
3705			break;
3706
3707			case 10:
3708				NDR_CHECK(ndr_pull_samr_UserInfo10(ndr, NDR_BUFFERS, &r->info10));
3709			break;
3710
3711			case 11:
3712				NDR_CHECK(ndr_pull_samr_UserInfo11(ndr, NDR_BUFFERS, &r->info11));
3713			break;
3714
3715			case 12:
3716				NDR_CHECK(ndr_pull_samr_UserInfo12(ndr, NDR_BUFFERS, &r->info12));
3717			break;
3718
3719			case 13:
3720				NDR_CHECK(ndr_pull_samr_UserInfo13(ndr, NDR_BUFFERS, &r->info13));
3721			break;
3722
3723			case 14:
3724				NDR_CHECK(ndr_pull_samr_UserInfo14(ndr, NDR_BUFFERS, &r->info14));
3725			break;
3726
3727			case 16:
3728			break;
3729
3730			case 17:
3731			break;
3732
3733			case 18:
3734			break;
3735
3736			case 20:
3737				NDR_CHECK(ndr_pull_samr_UserInfo20(ndr, NDR_BUFFERS, &r->info20));
3738			break;
3739
3740			case 21:
3741				NDR_CHECK(ndr_pull_samr_UserInfo21(ndr, NDR_BUFFERS, &r->info21));
3742			break;
3743
3744			case 23:
3745				NDR_CHECK(ndr_pull_samr_UserInfo23(ndr, NDR_BUFFERS, &r->info23));
3746			break;
3747
3748			case 24:
3749			break;
3750
3751			case 25:
3752				NDR_CHECK(ndr_pull_samr_UserInfo25(ndr, NDR_BUFFERS, &r->info25));
3753			break;
3754
3755			case 26:
3756			break;
3757
3758			default:
3759				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3760		}
3761	}
3762	return NDR_ERR_SUCCESS;
3763}
3764
3765_PUBLIC_ void ndr_print_samr_UserInfo(struct ndr_print *ndr, const char *name, const union samr_UserInfo *r)
3766{
3767	int level;
3768	level = ndr_print_get_switch_value(ndr, r);
3769	ndr_print_union(ndr, name, level, "samr_UserInfo");
3770	switch (level) {
3771		case 1:
3772			ndr_print_samr_UserInfo1(ndr, "info1", &r->info1);
3773		break;
3774
3775		case 2:
3776			ndr_print_samr_UserInfo2(ndr, "info2", &r->info2);
3777		break;
3778
3779		case 3:
3780			ndr_print_samr_UserInfo3(ndr, "info3", &r->info3);
3781		break;
3782
3783		case 4:
3784			ndr_print_samr_UserInfo4(ndr, "info4", &r->info4);
3785		break;
3786
3787		case 5:
3788			ndr_print_samr_UserInfo5(ndr, "info5", &r->info5);
3789		break;
3790
3791		case 6:
3792			ndr_print_samr_UserInfo6(ndr, "info6", &r->info6);
3793		break;
3794
3795		case 7:
3796			ndr_print_samr_UserInfo7(ndr, "info7", &r->info7);
3797		break;
3798
3799		case 8:
3800			ndr_print_samr_UserInfo8(ndr, "info8", &r->info8);
3801		break;
3802
3803		case 9:
3804			ndr_print_samr_UserInfo9(ndr, "info9", &r->info9);
3805		break;
3806
3807		case 10:
3808			ndr_print_samr_UserInfo10(ndr, "info10", &r->info10);
3809		break;
3810
3811		case 11:
3812			ndr_print_samr_UserInfo11(ndr, "info11", &r->info11);
3813		break;
3814
3815		case 12:
3816			ndr_print_samr_UserInfo12(ndr, "info12", &r->info12);
3817		break;
3818
3819		case 13:
3820			ndr_print_samr_UserInfo13(ndr, "info13", &r->info13);
3821		break;
3822
3823		case 14:
3824			ndr_print_samr_UserInfo14(ndr, "info14", &r->info14);
3825		break;
3826
3827		case 16:
3828			ndr_print_samr_UserInfo16(ndr, "info16", &r->info16);
3829		break;
3830
3831		case 17:
3832			ndr_print_samr_UserInfo17(ndr, "info17", &r->info17);
3833		break;
3834
3835		case 18:
3836			ndr_print_samr_UserInfo18(ndr, "info18", &r->info18);
3837		break;
3838
3839		case 20:
3840			ndr_print_samr_UserInfo20(ndr, "info20", &r->info20);
3841		break;
3842
3843		case 21:
3844			ndr_print_samr_UserInfo21(ndr, "info21", &r->info21);
3845		break;
3846
3847		case 23:
3848			ndr_print_samr_UserInfo23(ndr, "info23", &r->info23);
3849		break;
3850
3851		case 24:
3852			ndr_print_samr_UserInfo24(ndr, "info24", &r->info24);
3853		break;
3854
3855		case 25:
3856			ndr_print_samr_UserInfo25(ndr, "info25", &r->info25);
3857		break;
3858
3859		case 26:
3860			ndr_print_samr_UserInfo26(ndr, "info26", &r->info26);
3861		break;
3862
3863		default:
3864			ndr_print_bad_level(ndr, name, level);
3865	}
3866}
3867
3868_PUBLIC_ enum ndr_err_code ndr_push_samr_RidWithAttribute(struct ndr_push *ndr, int ndr_flags, const struct samr_RidWithAttribute *r)
3869{
3870	if (ndr_flags & NDR_SCALARS) {
3871		NDR_CHECK(ndr_push_align(ndr, 4));
3872		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
3873		NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
3874		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
3875	}
3876	if (ndr_flags & NDR_BUFFERS) {
3877	}
3878	return NDR_ERR_SUCCESS;
3879}
3880
3881_PUBLIC_ enum ndr_err_code ndr_pull_samr_RidWithAttribute(struct ndr_pull *ndr, int ndr_flags, struct samr_RidWithAttribute *r)
3882{
3883	if (ndr_flags & NDR_SCALARS) {
3884		NDR_CHECK(ndr_pull_align(ndr, 4));
3885		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
3886		NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
3887		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
3888	}
3889	if (ndr_flags & NDR_BUFFERS) {
3890	}
3891	return NDR_ERR_SUCCESS;
3892}
3893
3894_PUBLIC_ void ndr_print_samr_RidWithAttribute(struct ndr_print *ndr, const char *name, const struct samr_RidWithAttribute *r)
3895{
3896	ndr_print_struct(ndr, name, "samr_RidWithAttribute");
3897	ndr->depth++;
3898	ndr_print_uint32(ndr, "rid", r->rid);
3899	ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
3900	ndr->depth--;
3901}
3902
3903_PUBLIC_ enum ndr_err_code ndr_push_samr_RidWithAttributeArray(struct ndr_push *ndr, int ndr_flags, const struct samr_RidWithAttributeArray *r)
3904{
3905	uint32_t cntr_rids_1;
3906	if (ndr_flags & NDR_SCALARS) {
3907		NDR_CHECK(ndr_push_align(ndr, 5));
3908		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
3909		NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
3910		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3911	}
3912	if (ndr_flags & NDR_BUFFERS) {
3913		if (r->rids) {
3914			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
3915			for (cntr_rids_1 = 0; cntr_rids_1 < r->count; cntr_rids_1++) {
3916				NDR_CHECK(ndr_push_samr_RidWithAttribute(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
3917			}
3918		}
3919	}
3920	return NDR_ERR_SUCCESS;
3921}
3922
3923_PUBLIC_ enum ndr_err_code ndr_pull_samr_RidWithAttributeArray(struct ndr_pull *ndr, int ndr_flags, struct samr_RidWithAttributeArray *r)
3924{
3925	uint32_t _ptr_rids;
3926	uint32_t cntr_rids_1;
3927	TALLOC_CTX *_mem_save_rids_0;
3928	TALLOC_CTX *_mem_save_rids_1;
3929	if (ndr_flags & NDR_SCALARS) {
3930		NDR_CHECK(ndr_pull_align(ndr, 5));
3931		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
3932		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
3933		if (_ptr_rids) {
3934			NDR_PULL_ALLOC(ndr, r->rids);
3935		} else {
3936			r->rids = NULL;
3937		}
3938		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3939	}
3940	if (ndr_flags & NDR_BUFFERS) {
3941		if (r->rids) {
3942			_mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
3943			NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
3944			NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
3945			NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
3946			_mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
3947			NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
3948			for (cntr_rids_1 = 0; cntr_rids_1 < r->count; cntr_rids_1++) {
3949				NDR_CHECK(ndr_pull_samr_RidWithAttribute(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
3950			}
3951			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
3952			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
3953		}
3954		if (r->rids) {
3955			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->count));
3956		}
3957	}
3958	return NDR_ERR_SUCCESS;
3959}
3960
3961_PUBLIC_ void ndr_print_samr_RidWithAttributeArray(struct ndr_print *ndr, const char *name, const struct samr_RidWithAttributeArray *r)
3962{
3963	uint32_t cntr_rids_1;
3964	ndr_print_struct(ndr, name, "samr_RidWithAttributeArray");
3965	ndr->depth++;
3966	ndr_print_uint32(ndr, "count", r->count);
3967	ndr_print_ptr(ndr, "rids", r->rids);
3968	ndr->depth++;
3969	if (r->rids) {
3970		ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->count);
3971		ndr->depth++;
3972		for (cntr_rids_1=0;cntr_rids_1<r->count;cntr_rids_1++) {
3973			char *idx_1=NULL;
3974			if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
3975				ndr_print_samr_RidWithAttribute(ndr, "rids", &r->rids[cntr_rids_1]);
3976				free(idx_1);
3977			}
3978		}
3979		ndr->depth--;
3980	}
3981	ndr->depth--;
3982	ndr->depth--;
3983}
3984
3985static enum ndr_err_code ndr_push_samr_DispEntryGeneral(struct ndr_push *ndr, int ndr_flags, const struct samr_DispEntryGeneral *r)
3986{
3987	if (ndr_flags & NDR_SCALARS) {
3988		NDR_CHECK(ndr_push_align(ndr, 5));
3989		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->idx));
3990		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
3991		NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
3992		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
3993		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
3994		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
3995		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3996	}
3997	if (ndr_flags & NDR_BUFFERS) {
3998		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
3999		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
4000		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
4001	}
4002	return NDR_ERR_SUCCESS;
4003}
4004
4005static enum ndr_err_code ndr_pull_samr_DispEntryGeneral(struct ndr_pull *ndr, int ndr_flags, struct samr_DispEntryGeneral *r)
4006{
4007	if (ndr_flags & NDR_SCALARS) {
4008		NDR_CHECK(ndr_pull_align(ndr, 5));
4009		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->idx));
4010		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4011		NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
4012		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
4013		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
4014		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
4015		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4016	}
4017	if (ndr_flags & NDR_BUFFERS) {
4018		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
4019		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
4020		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
4021	}
4022	return NDR_ERR_SUCCESS;
4023}
4024
4025_PUBLIC_ void ndr_print_samr_DispEntryGeneral(struct ndr_print *ndr, const char *name, const struct samr_DispEntryGeneral *r)
4026{
4027	ndr_print_struct(ndr, name, "samr_DispEntryGeneral");
4028	ndr->depth++;
4029	ndr_print_uint32(ndr, "idx", r->idx);
4030	ndr_print_uint32(ndr, "rid", r->rid);
4031	ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
4032	ndr_print_lsa_String(ndr, "account_name", &r->account_name);
4033	ndr_print_lsa_String(ndr, "description", &r->description);
4034	ndr_print_lsa_String(ndr, "full_name", &r->full_name);
4035	ndr->depth--;
4036}
4037
4038static enum ndr_err_code ndr_push_samr_DispInfoGeneral(struct ndr_push *ndr, int ndr_flags, const struct samr_DispInfoGeneral *r)
4039{
4040	uint32_t cntr_entries_1;
4041	if (ndr_flags & NDR_SCALARS) {
4042		NDR_CHECK(ndr_push_align(ndr, 5));
4043		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
4044		NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
4045		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4046	}
4047	if (ndr_flags & NDR_BUFFERS) {
4048		if (r->entries) {
4049			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
4050			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4051				NDR_CHECK(ndr_push_samr_DispEntryGeneral(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
4052			}
4053			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4054				NDR_CHECK(ndr_push_samr_DispEntryGeneral(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
4055			}
4056		}
4057	}
4058	return NDR_ERR_SUCCESS;
4059}
4060
4061static enum ndr_err_code ndr_pull_samr_DispInfoGeneral(struct ndr_pull *ndr, int ndr_flags, struct samr_DispInfoGeneral *r)
4062{
4063	uint32_t _ptr_entries;
4064	uint32_t cntr_entries_1;
4065	TALLOC_CTX *_mem_save_entries_0;
4066	TALLOC_CTX *_mem_save_entries_1;
4067	if (ndr_flags & NDR_SCALARS) {
4068		NDR_CHECK(ndr_pull_align(ndr, 5));
4069		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
4070		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
4071		if (_ptr_entries) {
4072			NDR_PULL_ALLOC(ndr, r->entries);
4073		} else {
4074			r->entries = NULL;
4075		}
4076		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4077	}
4078	if (ndr_flags & NDR_BUFFERS) {
4079		if (r->entries) {
4080			_mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
4081			NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
4082			NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
4083			NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
4084			_mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
4085			NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
4086			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4087				NDR_CHECK(ndr_pull_samr_DispEntryGeneral(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
4088			}
4089			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4090				NDR_CHECK(ndr_pull_samr_DispEntryGeneral(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
4091			}
4092			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
4093			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
4094		}
4095		if (r->entries) {
4096			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
4097		}
4098	}
4099	return NDR_ERR_SUCCESS;
4100}
4101
4102_PUBLIC_ void ndr_print_samr_DispInfoGeneral(struct ndr_print *ndr, const char *name, const struct samr_DispInfoGeneral *r)
4103{
4104	uint32_t cntr_entries_1;
4105	ndr_print_struct(ndr, name, "samr_DispInfoGeneral");
4106	ndr->depth++;
4107	ndr_print_uint32(ndr, "count", r->count);
4108	ndr_print_ptr(ndr, "entries", r->entries);
4109	ndr->depth++;
4110	if (r->entries) {
4111		ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
4112		ndr->depth++;
4113		for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
4114			char *idx_1=NULL;
4115			if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
4116				ndr_print_samr_DispEntryGeneral(ndr, "entries", &r->entries[cntr_entries_1]);
4117				free(idx_1);
4118			}
4119		}
4120		ndr->depth--;
4121	}
4122	ndr->depth--;
4123	ndr->depth--;
4124}
4125
4126static enum ndr_err_code ndr_push_samr_DispEntryFull(struct ndr_push *ndr, int ndr_flags, const struct samr_DispEntryFull *r)
4127{
4128	if (ndr_flags & NDR_SCALARS) {
4129		NDR_CHECK(ndr_push_align(ndr, 5));
4130		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->idx));
4131		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4132		NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
4133		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
4134		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
4135		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4136	}
4137	if (ndr_flags & NDR_BUFFERS) {
4138		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
4139		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
4140	}
4141	return NDR_ERR_SUCCESS;
4142}
4143
4144static enum ndr_err_code ndr_pull_samr_DispEntryFull(struct ndr_pull *ndr, int ndr_flags, struct samr_DispEntryFull *r)
4145{
4146	if (ndr_flags & NDR_SCALARS) {
4147		NDR_CHECK(ndr_pull_align(ndr, 5));
4148		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->idx));
4149		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4150		NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
4151		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
4152		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
4153		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4154	}
4155	if (ndr_flags & NDR_BUFFERS) {
4156		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
4157		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
4158	}
4159	return NDR_ERR_SUCCESS;
4160}
4161
4162_PUBLIC_ void ndr_print_samr_DispEntryFull(struct ndr_print *ndr, const char *name, const struct samr_DispEntryFull *r)
4163{
4164	ndr_print_struct(ndr, name, "samr_DispEntryFull");
4165	ndr->depth++;
4166	ndr_print_uint32(ndr, "idx", r->idx);
4167	ndr_print_uint32(ndr, "rid", r->rid);
4168	ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
4169	ndr_print_lsa_String(ndr, "account_name", &r->account_name);
4170	ndr_print_lsa_String(ndr, "description", &r->description);
4171	ndr->depth--;
4172}
4173
4174static enum ndr_err_code ndr_push_samr_DispInfoFull(struct ndr_push *ndr, int ndr_flags, const struct samr_DispInfoFull *r)
4175{
4176	uint32_t cntr_entries_1;
4177	if (ndr_flags & NDR_SCALARS) {
4178		NDR_CHECK(ndr_push_align(ndr, 5));
4179		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
4180		NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
4181		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4182	}
4183	if (ndr_flags & NDR_BUFFERS) {
4184		if (r->entries) {
4185			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
4186			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4187				NDR_CHECK(ndr_push_samr_DispEntryFull(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
4188			}
4189			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4190				NDR_CHECK(ndr_push_samr_DispEntryFull(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
4191			}
4192		}
4193	}
4194	return NDR_ERR_SUCCESS;
4195}
4196
4197static enum ndr_err_code ndr_pull_samr_DispInfoFull(struct ndr_pull *ndr, int ndr_flags, struct samr_DispInfoFull *r)
4198{
4199	uint32_t _ptr_entries;
4200	uint32_t cntr_entries_1;
4201	TALLOC_CTX *_mem_save_entries_0;
4202	TALLOC_CTX *_mem_save_entries_1;
4203	if (ndr_flags & NDR_SCALARS) {
4204		NDR_CHECK(ndr_pull_align(ndr, 5));
4205		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
4206		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
4207		if (_ptr_entries) {
4208			NDR_PULL_ALLOC(ndr, r->entries);
4209		} else {
4210			r->entries = NULL;
4211		}
4212		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4213	}
4214	if (ndr_flags & NDR_BUFFERS) {
4215		if (r->entries) {
4216			_mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
4217			NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
4218			NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
4219			NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
4220			_mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
4221			NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
4222			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4223				NDR_CHECK(ndr_pull_samr_DispEntryFull(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
4224			}
4225			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4226				NDR_CHECK(ndr_pull_samr_DispEntryFull(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
4227			}
4228			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
4229			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
4230		}
4231		if (r->entries) {
4232			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
4233		}
4234	}
4235	return NDR_ERR_SUCCESS;
4236}
4237
4238_PUBLIC_ void ndr_print_samr_DispInfoFull(struct ndr_print *ndr, const char *name, const struct samr_DispInfoFull *r)
4239{
4240	uint32_t cntr_entries_1;
4241	ndr_print_struct(ndr, name, "samr_DispInfoFull");
4242	ndr->depth++;
4243	ndr_print_uint32(ndr, "count", r->count);
4244	ndr_print_ptr(ndr, "entries", r->entries);
4245	ndr->depth++;
4246	if (r->entries) {
4247		ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
4248		ndr->depth++;
4249		for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
4250			char *idx_1=NULL;
4251			if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
4252				ndr_print_samr_DispEntryFull(ndr, "entries", &r->entries[cntr_entries_1]);
4253				free(idx_1);
4254			}
4255		}
4256		ndr->depth--;
4257	}
4258	ndr->depth--;
4259	ndr->depth--;
4260}
4261
4262static enum ndr_err_code ndr_push_samr_DispEntryFullGroup(struct ndr_push *ndr, int ndr_flags, const struct samr_DispEntryFullGroup *r)
4263{
4264	if (ndr_flags & NDR_SCALARS) {
4265		NDR_CHECK(ndr_push_align(ndr, 5));
4266		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->idx));
4267		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4268		NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->acct_flags));
4269		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
4270		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
4271		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4272	}
4273	if (ndr_flags & NDR_BUFFERS) {
4274		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
4275		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
4276	}
4277	return NDR_ERR_SUCCESS;
4278}
4279
4280static enum ndr_err_code ndr_pull_samr_DispEntryFullGroup(struct ndr_pull *ndr, int ndr_flags, struct samr_DispEntryFullGroup *r)
4281{
4282	if (ndr_flags & NDR_SCALARS) {
4283		NDR_CHECK(ndr_pull_align(ndr, 5));
4284		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->idx));
4285		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4286		NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->acct_flags));
4287		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
4288		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
4289		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4290	}
4291	if (ndr_flags & NDR_BUFFERS) {
4292		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
4293		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
4294	}
4295	return NDR_ERR_SUCCESS;
4296}
4297
4298_PUBLIC_ void ndr_print_samr_DispEntryFullGroup(struct ndr_print *ndr, const char *name, const struct samr_DispEntryFullGroup *r)
4299{
4300	ndr_print_struct(ndr, name, "samr_DispEntryFullGroup");
4301	ndr->depth++;
4302	ndr_print_uint32(ndr, "idx", r->idx);
4303	ndr_print_uint32(ndr, "rid", r->rid);
4304	ndr_print_samr_GroupAttrs(ndr, "acct_flags", r->acct_flags);
4305	ndr_print_lsa_String(ndr, "account_name", &r->account_name);
4306	ndr_print_lsa_String(ndr, "description", &r->description);
4307	ndr->depth--;
4308}
4309
4310static enum ndr_err_code ndr_push_samr_DispInfoFullGroups(struct ndr_push *ndr, int ndr_flags, const struct samr_DispInfoFullGroups *r)
4311{
4312	uint32_t cntr_entries_1;
4313	if (ndr_flags & NDR_SCALARS) {
4314		NDR_CHECK(ndr_push_align(ndr, 5));
4315		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
4316		NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
4317		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4318	}
4319	if (ndr_flags & NDR_BUFFERS) {
4320		if (r->entries) {
4321			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
4322			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4323				NDR_CHECK(ndr_push_samr_DispEntryFullGroup(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
4324			}
4325			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4326				NDR_CHECK(ndr_push_samr_DispEntryFullGroup(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
4327			}
4328		}
4329	}
4330	return NDR_ERR_SUCCESS;
4331}
4332
4333static enum ndr_err_code ndr_pull_samr_DispInfoFullGroups(struct ndr_pull *ndr, int ndr_flags, struct samr_DispInfoFullGroups *r)
4334{
4335	uint32_t _ptr_entries;
4336	uint32_t cntr_entries_1;
4337	TALLOC_CTX *_mem_save_entries_0;
4338	TALLOC_CTX *_mem_save_entries_1;
4339	if (ndr_flags & NDR_SCALARS) {
4340		NDR_CHECK(ndr_pull_align(ndr, 5));
4341		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
4342		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
4343		if (_ptr_entries) {
4344			NDR_PULL_ALLOC(ndr, r->entries);
4345		} else {
4346			r->entries = NULL;
4347		}
4348		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4349	}
4350	if (ndr_flags & NDR_BUFFERS) {
4351		if (r->entries) {
4352			_mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
4353			NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
4354			NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
4355			NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
4356			_mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
4357			NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
4358			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4359				NDR_CHECK(ndr_pull_samr_DispEntryFullGroup(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
4360			}
4361			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4362				NDR_CHECK(ndr_pull_samr_DispEntryFullGroup(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
4363			}
4364			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
4365			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
4366		}
4367		if (r->entries) {
4368			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
4369		}
4370	}
4371	return NDR_ERR_SUCCESS;
4372}
4373
4374_PUBLIC_ void ndr_print_samr_DispInfoFullGroups(struct ndr_print *ndr, const char *name, const struct samr_DispInfoFullGroups *r)
4375{
4376	uint32_t cntr_entries_1;
4377	ndr_print_struct(ndr, name, "samr_DispInfoFullGroups");
4378	ndr->depth++;
4379	ndr_print_uint32(ndr, "count", r->count);
4380	ndr_print_ptr(ndr, "entries", r->entries);
4381	ndr->depth++;
4382	if (r->entries) {
4383		ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
4384		ndr->depth++;
4385		for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
4386			char *idx_1=NULL;
4387			if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
4388				ndr_print_samr_DispEntryFullGroup(ndr, "entries", &r->entries[cntr_entries_1]);
4389				free(idx_1);
4390			}
4391		}
4392		ndr->depth--;
4393	}
4394	ndr->depth--;
4395	ndr->depth--;
4396}
4397
4398static enum ndr_err_code ndr_push_samr_DispEntryAscii(struct ndr_push *ndr, int ndr_flags, const struct samr_DispEntryAscii *r)
4399{
4400	if (ndr_flags & NDR_SCALARS) {
4401		NDR_CHECK(ndr_push_align(ndr, 5));
4402		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->idx));
4403		NDR_CHECK(ndr_push_lsa_AsciiStringLarge(ndr, NDR_SCALARS, &r->account_name));
4404		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4405	}
4406	if (ndr_flags & NDR_BUFFERS) {
4407		NDR_CHECK(ndr_push_lsa_AsciiStringLarge(ndr, NDR_BUFFERS, &r->account_name));
4408	}
4409	return NDR_ERR_SUCCESS;
4410}
4411
4412static enum ndr_err_code ndr_pull_samr_DispEntryAscii(struct ndr_pull *ndr, int ndr_flags, struct samr_DispEntryAscii *r)
4413{
4414	if (ndr_flags & NDR_SCALARS) {
4415		NDR_CHECK(ndr_pull_align(ndr, 5));
4416		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->idx));
4417		NDR_CHECK(ndr_pull_lsa_AsciiStringLarge(ndr, NDR_SCALARS, &r->account_name));
4418		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4419	}
4420	if (ndr_flags & NDR_BUFFERS) {
4421		NDR_CHECK(ndr_pull_lsa_AsciiStringLarge(ndr, NDR_BUFFERS, &r->account_name));
4422	}
4423	return NDR_ERR_SUCCESS;
4424}
4425
4426_PUBLIC_ void ndr_print_samr_DispEntryAscii(struct ndr_print *ndr, const char *name, const struct samr_DispEntryAscii *r)
4427{
4428	ndr_print_struct(ndr, name, "samr_DispEntryAscii");
4429	ndr->depth++;
4430	ndr_print_uint32(ndr, "idx", r->idx);
4431	ndr_print_lsa_AsciiStringLarge(ndr, "account_name", &r->account_name);
4432	ndr->depth--;
4433}
4434
4435static enum ndr_err_code ndr_push_samr_DispInfoAscii(struct ndr_push *ndr, int ndr_flags, const struct samr_DispInfoAscii *r)
4436{
4437	uint32_t cntr_entries_1;
4438	if (ndr_flags & NDR_SCALARS) {
4439		NDR_CHECK(ndr_push_align(ndr, 5));
4440		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
4441		NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
4442		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4443	}
4444	if (ndr_flags & NDR_BUFFERS) {
4445		if (r->entries) {
4446			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
4447			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4448				NDR_CHECK(ndr_push_samr_DispEntryAscii(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
4449			}
4450			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4451				NDR_CHECK(ndr_push_samr_DispEntryAscii(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
4452			}
4453		}
4454	}
4455	return NDR_ERR_SUCCESS;
4456}
4457
4458static enum ndr_err_code ndr_pull_samr_DispInfoAscii(struct ndr_pull *ndr, int ndr_flags, struct samr_DispInfoAscii *r)
4459{
4460	uint32_t _ptr_entries;
4461	uint32_t cntr_entries_1;
4462	TALLOC_CTX *_mem_save_entries_0;
4463	TALLOC_CTX *_mem_save_entries_1;
4464	if (ndr_flags & NDR_SCALARS) {
4465		NDR_CHECK(ndr_pull_align(ndr, 5));
4466		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
4467		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
4468		if (_ptr_entries) {
4469			NDR_PULL_ALLOC(ndr, r->entries);
4470		} else {
4471			r->entries = NULL;
4472		}
4473		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4474	}
4475	if (ndr_flags & NDR_BUFFERS) {
4476		if (r->entries) {
4477			_mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
4478			NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
4479			NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
4480			NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
4481			_mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
4482			NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
4483			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4484				NDR_CHECK(ndr_pull_samr_DispEntryAscii(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
4485			}
4486			for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4487				NDR_CHECK(ndr_pull_samr_DispEntryAscii(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
4488			}
4489			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
4490			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
4491		}
4492		if (r->entries) {
4493			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
4494		}
4495	}
4496	return NDR_ERR_SUCCESS;
4497}
4498
4499_PUBLIC_ void ndr_print_samr_DispInfoAscii(struct ndr_print *ndr, const char *name, const struct samr_DispInfoAscii *r)
4500{
4501	uint32_t cntr_entries_1;
4502	ndr_print_struct(ndr, name, "samr_DispInfoAscii");
4503	ndr->depth++;
4504	ndr_print_uint32(ndr, "count", r->count);
4505	ndr_print_ptr(ndr, "entries", r->entries);
4506	ndr->depth++;
4507	if (r->entries) {
4508		ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
4509		ndr->depth++;
4510		for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
4511			char *idx_1=NULL;
4512			if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
4513				ndr_print_samr_DispEntryAscii(ndr, "entries", &r->entries[cntr_entries_1]);
4514				free(idx_1);
4515			}
4516		}
4517		ndr->depth--;
4518	}
4519	ndr->depth--;
4520	ndr->depth--;
4521}
4522
4523static enum ndr_err_code ndr_push_samr_DispInfo(struct ndr_push *ndr, int ndr_flags, const union samr_DispInfo *r)
4524{
4525	if (ndr_flags & NDR_SCALARS) {
4526		int level = ndr_push_get_switch_value(ndr, r);
4527		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
4528		NDR_CHECK(ndr_push_union_align(ndr, 5));
4529		switch (level) {
4530			case 1: {
4531				NDR_CHECK(ndr_push_samr_DispInfoGeneral(ndr, NDR_SCALARS, &r->info1));
4532			break; }
4533
4534			case 2: {
4535				NDR_CHECK(ndr_push_samr_DispInfoFull(ndr, NDR_SCALARS, &r->info2));
4536			break; }
4537
4538			case 3: {
4539				NDR_CHECK(ndr_push_samr_DispInfoFullGroups(ndr, NDR_SCALARS, &r->info3));
4540			break; }
4541
4542			case 4: {
4543				NDR_CHECK(ndr_push_samr_DispInfoAscii(ndr, NDR_SCALARS, &r->info4));
4544			break; }
4545
4546			case 5: {
4547				NDR_CHECK(ndr_push_samr_DispInfoAscii(ndr, NDR_SCALARS, &r->info5));
4548			break; }
4549
4550			default:
4551				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4552		}
4553	}
4554	if (ndr_flags & NDR_BUFFERS) {
4555		int level = ndr_push_get_switch_value(ndr, r);
4556		switch (level) {
4557			case 1:
4558				NDR_CHECK(ndr_push_samr_DispInfoGeneral(ndr, NDR_BUFFERS, &r->info1));
4559			break;
4560
4561			case 2:
4562				NDR_CHECK(ndr_push_samr_DispInfoFull(ndr, NDR_BUFFERS, &r->info2));
4563			break;
4564
4565			case 3:
4566				NDR_CHECK(ndr_push_samr_DispInfoFullGroups(ndr, NDR_BUFFERS, &r->info3));
4567			break;
4568
4569			case 4:
4570				NDR_CHECK(ndr_push_samr_DispInfoAscii(ndr, NDR_BUFFERS, &r->info4));
4571			break;
4572
4573			case 5:
4574				NDR_CHECK(ndr_push_samr_DispInfoAscii(ndr, NDR_BUFFERS, &r->info5));
4575			break;
4576
4577			default:
4578				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4579		}
4580	}
4581	return NDR_ERR_SUCCESS;
4582}
4583
4584static enum ndr_err_code ndr_pull_samr_DispInfo(struct ndr_pull *ndr, int ndr_flags, union samr_DispInfo *r)
4585{
4586	int level;
4587	uint16_t _level;
4588	level = ndr_pull_get_switch_value(ndr, r);
4589	if (ndr_flags & NDR_SCALARS) {
4590		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4591		if (_level != level) {
4592			return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4593		}
4594		NDR_CHECK(ndr_pull_union_align(ndr, 5));
4595		switch (level) {
4596			case 1: {
4597				NDR_CHECK(ndr_pull_samr_DispInfoGeneral(ndr, NDR_SCALARS, &r->info1));
4598			break; }
4599
4600			case 2: {
4601				NDR_CHECK(ndr_pull_samr_DispInfoFull(ndr, NDR_SCALARS, &r->info2));
4602			break; }
4603
4604			case 3: {
4605				NDR_CHECK(ndr_pull_samr_DispInfoFullGroups(ndr, NDR_SCALARS, &r->info3));
4606			break; }
4607
4608			case 4: {
4609				NDR_CHECK(ndr_pull_samr_DispInfoAscii(ndr, NDR_SCALARS, &r->info4));
4610			break; }
4611
4612			case 5: {
4613				NDR_CHECK(ndr_pull_samr_DispInfoAscii(ndr, NDR_SCALARS, &r->info5));
4614			break; }
4615
4616			default:
4617				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4618		}
4619	}
4620	if (ndr_flags & NDR_BUFFERS) {
4621		switch (level) {
4622			case 1:
4623				NDR_CHECK(ndr_pull_samr_DispInfoGeneral(ndr, NDR_BUFFERS, &r->info1));
4624			break;
4625
4626			case 2:
4627				NDR_CHECK(ndr_pull_samr_DispInfoFull(ndr, NDR_BUFFERS, &r->info2));
4628			break;
4629
4630			case 3:
4631				NDR_CHECK(ndr_pull_samr_DispInfoFullGroups(ndr, NDR_BUFFERS, &r->info3));
4632			break;
4633
4634			case 4:
4635				NDR_CHECK(ndr_pull_samr_DispInfoAscii(ndr, NDR_BUFFERS, &r->info4));
4636			break;
4637
4638			case 5:
4639				NDR_CHECK(ndr_pull_samr_DispInfoAscii(ndr, NDR_BUFFERS, &r->info5));
4640			break;
4641
4642			default:
4643				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4644		}
4645	}
4646	return NDR_ERR_SUCCESS;
4647}
4648
4649_PUBLIC_ void ndr_print_samr_DispInfo(struct ndr_print *ndr, const char *name, const union samr_DispInfo *r)
4650{
4651	int level;
4652	level = ndr_print_get_switch_value(ndr, r);
4653	ndr_print_union(ndr, name, level, "samr_DispInfo");
4654	switch (level) {
4655		case 1:
4656			ndr_print_samr_DispInfoGeneral(ndr, "info1", &r->info1);
4657		break;
4658
4659		case 2:
4660			ndr_print_samr_DispInfoFull(ndr, "info2", &r->info2);
4661		break;
4662
4663		case 3:
4664			ndr_print_samr_DispInfoFullGroups(ndr, "info3", &r->info3);
4665		break;
4666
4667		case 4:
4668			ndr_print_samr_DispInfoAscii(ndr, "info4", &r->info4);
4669		break;
4670
4671		case 5:
4672			ndr_print_samr_DispInfoAscii(ndr, "info5", &r->info5);
4673		break;
4674
4675		default:
4676			ndr_print_bad_level(ndr, name, level);
4677	}
4678}
4679
4680static enum ndr_err_code ndr_push_samr_PwInfo(struct ndr_push *ndr, int ndr_flags, const struct samr_PwInfo *r)
4681{
4682	if (ndr_flags & NDR_SCALARS) {
4683		NDR_CHECK(ndr_push_align(ndr, 4));
4684		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
4685		NDR_CHECK(ndr_push_samr_PasswordProperties(ndr, NDR_SCALARS, r->password_properties));
4686		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4687	}
4688	if (ndr_flags & NDR_BUFFERS) {
4689	}
4690	return NDR_ERR_SUCCESS;
4691}
4692
4693static enum ndr_err_code ndr_pull_samr_PwInfo(struct ndr_pull *ndr, int ndr_flags, struct samr_PwInfo *r)
4694{
4695	if (ndr_flags & NDR_SCALARS) {
4696		NDR_CHECK(ndr_pull_align(ndr, 4));
4697		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
4698		NDR_CHECK(ndr_pull_samr_PasswordProperties(ndr, NDR_SCALARS, &r->password_properties));
4699		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4700	}
4701	if (ndr_flags & NDR_BUFFERS) {
4702	}
4703	return NDR_ERR_SUCCESS;
4704}
4705
4706_PUBLIC_ void ndr_print_samr_PwInfo(struct ndr_print *ndr, const char *name, const struct samr_PwInfo *r)
4707{
4708	ndr_print_struct(ndr, name, "samr_PwInfo");
4709	ndr->depth++;
4710	ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
4711	ndr_print_samr_PasswordProperties(ndr, "password_properties", r->password_properties);
4712	ndr->depth--;
4713}
4714
4715static enum ndr_err_code ndr_push_samr_ConnectVersion(struct ndr_push *ndr, int ndr_flags, enum samr_ConnectVersion r)
4716{
4717	NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
4718	return NDR_ERR_SUCCESS;
4719}
4720
4721static enum ndr_err_code ndr_pull_samr_ConnectVersion(struct ndr_pull *ndr, int ndr_flags, enum samr_ConnectVersion *r)
4722{
4723	uint32_t v;
4724	NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
4725	*r = v;
4726	return NDR_ERR_SUCCESS;
4727}
4728
4729_PUBLIC_ void ndr_print_samr_ConnectVersion(struct ndr_print *ndr, const char *name, enum samr_ConnectVersion r)
4730{
4731	const char *val = NULL;
4732
4733	switch (r) {
4734		case SAMR_CONNECT_PRE_W2K: val = "SAMR_CONNECT_PRE_W2K"; break;
4735		case SAMR_CONNECT_W2K: val = "SAMR_CONNECT_W2K"; break;
4736		case SAMR_CONNECT_AFTER_W2K: val = "SAMR_CONNECT_AFTER_W2K"; break;
4737	}
4738	ndr_print_enum(ndr, name, "ENUM", val, r);
4739}
4740
4741static enum ndr_err_code ndr_push_samr_ChangeReject(struct ndr_push *ndr, int ndr_flags, const struct samr_ChangeReject *r)
4742{
4743	if (ndr_flags & NDR_SCALARS) {
4744		NDR_CHECK(ndr_push_align(ndr, 4));
4745		NDR_CHECK(ndr_push_samr_RejectReason(ndr, NDR_SCALARS, r->reason));
4746		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
4747		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
4748		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4749	}
4750	if (ndr_flags & NDR_BUFFERS) {
4751	}
4752	return NDR_ERR_SUCCESS;
4753}
4754
4755static enum ndr_err_code ndr_pull_samr_ChangeReject(struct ndr_pull *ndr, int ndr_flags, struct samr_ChangeReject *r)
4756{
4757	if (ndr_flags & NDR_SCALARS) {
4758		NDR_CHECK(ndr_pull_align(ndr, 4));
4759		NDR_CHECK(ndr_pull_samr_RejectReason(ndr, NDR_SCALARS, &r->reason));
4760		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
4761		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
4762		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4763	}
4764	if (ndr_flags & NDR_BUFFERS) {
4765	}
4766	return NDR_ERR_SUCCESS;
4767}
4768
4769_PUBLIC_ void ndr_print_samr_ChangeReject(struct ndr_print *ndr, const char *name, const struct samr_ChangeReject *r)
4770{
4771	ndr_print_struct(ndr, name, "samr_ChangeReject");
4772	ndr->depth++;
4773	ndr_print_samr_RejectReason(ndr, "reason", r->reason);
4774	ndr_print_uint32(ndr, "unknown1", r->unknown1);
4775	ndr_print_uint32(ndr, "unknown2", r->unknown2);
4776	ndr->depth--;
4777}
4778
4779static enum ndr_err_code ndr_push_samr_ConnectInfo1(struct ndr_push *ndr, int ndr_flags, const struct samr_ConnectInfo1 *r)
4780{
4781	if (ndr_flags & NDR_SCALARS) {
4782		NDR_CHECK(ndr_push_align(ndr, 4));
4783		NDR_CHECK(ndr_push_samr_ConnectVersion(ndr, NDR_SCALARS, r->client_version));
4784		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
4785		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4786	}
4787	if (ndr_flags & NDR_BUFFERS) {
4788	}
4789	return NDR_ERR_SUCCESS;
4790}
4791
4792static enum ndr_err_code ndr_pull_samr_ConnectInfo1(struct ndr_pull *ndr, int ndr_flags, struct samr_ConnectInfo1 *r)
4793{
4794	if (ndr_flags & NDR_SCALARS) {
4795		NDR_CHECK(ndr_pull_align(ndr, 4));
4796		NDR_CHECK(ndr_pull_samr_ConnectVersion(ndr, NDR_SCALARS, &r->client_version));
4797		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
4798		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4799	}
4800	if (ndr_flags & NDR_BUFFERS) {
4801	}
4802	return NDR_ERR_SUCCESS;
4803}
4804
4805_PUBLIC_ void ndr_print_samr_ConnectInfo1(struct ndr_print *ndr, const char *name, const struct samr_ConnectInfo1 *r)
4806{
4807	ndr_print_struct(ndr, name, "samr_ConnectInfo1");
4808	ndr->depth++;
4809	ndr_print_samr_ConnectVersion(ndr, "client_version", r->client_version);
4810	ndr_print_uint32(ndr, "unknown2", r->unknown2);
4811	ndr->depth--;
4812}
4813
4814static enum ndr_err_code ndr_push_samr_ConnectInfo(struct ndr_push *ndr, int ndr_flags, const union samr_ConnectInfo *r)
4815{
4816	if (ndr_flags & NDR_SCALARS) {
4817		int level = ndr_push_get_switch_value(ndr, r);
4818		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4819		NDR_CHECK(ndr_push_union_align(ndr, 4));
4820		switch (level) {
4821			case 1: {
4822				NDR_CHECK(ndr_push_samr_ConnectInfo1(ndr, NDR_SCALARS, &r->info1));
4823			break; }
4824
4825			default:
4826				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4827		}
4828	}
4829	if (ndr_flags & NDR_BUFFERS) {
4830		int level = ndr_push_get_switch_value(ndr, r);
4831		switch (level) {
4832			case 1:
4833			break;
4834
4835			default:
4836				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4837		}
4838	}
4839	return NDR_ERR_SUCCESS;
4840}
4841
4842static enum ndr_err_code ndr_pull_samr_ConnectInfo(struct ndr_pull *ndr, int ndr_flags, union samr_ConnectInfo *r)
4843{
4844	int level;
4845	uint32_t _level;
4846	level = ndr_pull_get_switch_value(ndr, r);
4847	if (ndr_flags & NDR_SCALARS) {
4848		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4849		if (_level != level) {
4850			return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4851		}
4852		NDR_CHECK(ndr_pull_union_align(ndr, 4));
4853		switch (level) {
4854			case 1: {
4855				NDR_CHECK(ndr_pull_samr_ConnectInfo1(ndr, NDR_SCALARS, &r->info1));
4856			break; }
4857
4858			default:
4859				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4860		}
4861	}
4862	if (ndr_flags & NDR_BUFFERS) {
4863		switch (level) {
4864			case 1:
4865			break;
4866
4867			default:
4868				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4869		}
4870	}
4871	return NDR_ERR_SUCCESS;
4872}
4873
4874_PUBLIC_ void ndr_print_samr_ConnectInfo(struct ndr_print *ndr, const char *name, const union samr_ConnectInfo *r)
4875{
4876	int level;
4877	level = ndr_print_get_switch_value(ndr, r);
4878	ndr_print_union(ndr, name, level, "samr_ConnectInfo");
4879	switch (level) {
4880		case 1:
4881			ndr_print_samr_ConnectInfo1(ndr, "info1", &r->info1);
4882		break;
4883
4884		default:
4885			ndr_print_bad_level(ndr, name, level);
4886	}
4887}
4888
4889static enum ndr_err_code ndr_push_samr_ValidateFieldsPresent(struct ndr_push *ndr, int ndr_flags, uint32_t r)
4890{
4891	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
4892	return NDR_ERR_SUCCESS;
4893}
4894
4895static enum ndr_err_code ndr_pull_samr_ValidateFieldsPresent(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
4896{
4897	uint32_t v;
4898	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
4899	*r = v;
4900	return NDR_ERR_SUCCESS;
4901}
4902
4903_PUBLIC_ void ndr_print_samr_ValidateFieldsPresent(struct ndr_print *ndr, const char *name, uint32_t r)
4904{
4905	ndr_print_uint32(ndr, name, r);
4906	ndr->depth++;
4907	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET", SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET, r);
4908	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME", SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME, r);
4909	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_LOCKOUT_TIME", SAMR_VALIDATE_FIELD_LOCKOUT_TIME, r);
4910	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT", SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT, r);
4911	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH", SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH, r);
4912	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY", SAMR_VALIDATE_FIELD_PASSWORD_HISTORY, r);
4913	ndr->depth--;
4914}
4915
4916static enum ndr_err_code ndr_push_samr_ValidatePasswordLevel(struct ndr_push *ndr, int ndr_flags, enum samr_ValidatePasswordLevel r)
4917{
4918	NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
4919	return NDR_ERR_SUCCESS;
4920}
4921
4922static enum ndr_err_code ndr_pull_samr_ValidatePasswordLevel(struct ndr_pull *ndr, int ndr_flags, enum samr_ValidatePasswordLevel *r)
4923{
4924	uint16_t v;
4925	NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
4926	*r = v;
4927	return NDR_ERR_SUCCESS;
4928}
4929
4930_PUBLIC_ void ndr_print_samr_ValidatePasswordLevel(struct ndr_print *ndr, const char *name, enum samr_ValidatePasswordLevel r)
4931{
4932	const char *val = NULL;
4933
4934	switch (r) {
4935		case NetValidateAuthentication: val = "NetValidateAuthentication"; break;
4936		case NetValidatePasswordChange: val = "NetValidatePasswordChange"; break;
4937		case NetValidatePasswordReset: val = "NetValidatePasswordReset"; break;
4938	}
4939	ndr_print_enum(ndr, name, "ENUM", val, r);
4940}
4941
4942static enum ndr_err_code ndr_push_samr_ValidationStatus(struct ndr_push *ndr, int ndr_flags, enum samr_ValidationStatus r)
4943{
4944	NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
4945	return NDR_ERR_SUCCESS;
4946}
4947
4948static enum ndr_err_code ndr_pull_samr_ValidationStatus(struct ndr_pull *ndr, int ndr_flags, enum samr_ValidationStatus *r)
4949{
4950	uint16_t v;
4951	NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
4952	*r = v;
4953	return NDR_ERR_SUCCESS;
4954}
4955
4956_PUBLIC_ void ndr_print_samr_ValidationStatus(struct ndr_print *ndr, const char *name, enum samr_ValidationStatus r)
4957{
4958	const char *val = NULL;
4959
4960	switch (r) {
4961		case SAMR_VALIDATION_STATUS_SUCCESS: val = "SAMR_VALIDATION_STATUS_SUCCESS"; break;
4962		case SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE: val = "SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE"; break;
4963		case SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT: val = "SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT"; break;
4964		case SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED: val = "SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED"; break;
4965		case SAMR_VALIDATION_STATUS_BAD_PASSWORD: val = "SAMR_VALIDATION_STATUS_BAD_PASSWORD"; break;
4966		case SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT: val = "SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT"; break;
4967		case SAMR_VALIDATION_STATUS_PWD_TOO_SHORT: val = "SAMR_VALIDATION_STATUS_PWD_TOO_SHORT"; break;
4968		case SAMR_VALIDATION_STATUS_PWD_TOO_LONG: val = "SAMR_VALIDATION_STATUS_PWD_TOO_LONG"; break;
4969		case SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH: val = "SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH"; break;
4970		case SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT: val = "SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT"; break;
4971		case SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR: val = "SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR"; break;
4972	}
4973	ndr_print_enum(ndr, name, "ENUM", val, r);
4974}
4975
4976static enum ndr_err_code ndr_push_samr_ValidationBlob(struct ndr_push *ndr, int ndr_flags, const struct samr_ValidationBlob *r)
4977{
4978	if (ndr_flags & NDR_SCALARS) {
4979		NDR_CHECK(ndr_push_align(ndr, 5));
4980		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
4981		NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
4982		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4983	}
4984	if (ndr_flags & NDR_BUFFERS) {
4985		if (r->data) {
4986			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
4987			NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
4988		}
4989	}
4990	return NDR_ERR_SUCCESS;
4991}
4992
4993static enum ndr_err_code ndr_pull_samr_ValidationBlob(struct ndr_pull *ndr, int ndr_flags, struct samr_ValidationBlob *r)
4994{
4995	uint32_t _ptr_data;
4996	TALLOC_CTX *_mem_save_data_0;
4997	if (ndr_flags & NDR_SCALARS) {
4998		NDR_CHECK(ndr_pull_align(ndr, 5));
4999		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
5000		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
5001		if (_ptr_data) {
5002			NDR_PULL_ALLOC(ndr, r->data);
5003		} else {
5004			r->data = NULL;
5005		}
5006		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5007	}
5008	if (ndr_flags & NDR_BUFFERS) {
5009		if (r->data) {
5010			_mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
5011			NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
5012			NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
5013			NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
5014			NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
5015			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
5016		}
5017		if (r->data) {
5018			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
5019		}
5020	}
5021	return NDR_ERR_SUCCESS;
5022}
5023
5024_PUBLIC_ void ndr_print_samr_ValidationBlob(struct ndr_print *ndr, const char *name, const struct samr_ValidationBlob *r)
5025{
5026	ndr_print_struct(ndr, name, "samr_ValidationBlob");
5027	ndr->depth++;
5028	ndr_print_uint32(ndr, "length", r->length);
5029	ndr_print_ptr(ndr, "data", r->data);
5030	ndr->depth++;
5031	if (r->data) {
5032		ndr_print_array_uint8(ndr, "data", r->data, r->length);
5033	}
5034	ndr->depth--;
5035	ndr->depth--;
5036}
5037
5038static enum ndr_err_code ndr_push_samr_ValidatePasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct samr_ValidatePasswordInfo *r)
5039{
5040	uint32_t cntr_pwd_history_1;
5041	if (ndr_flags & NDR_SCALARS) {
5042		NDR_CHECK(ndr_push_align(ndr, 8));
5043		NDR_CHECK(ndr_push_samr_ValidateFieldsPresent(ndr, NDR_SCALARS, r->fields_present));
5044		NDR_CHECK(ndr_push_NTTIME_hyper(ndr, NDR_SCALARS, r->last_password_change));
5045		NDR_CHECK(ndr_push_NTTIME_hyper(ndr, NDR_SCALARS, r->bad_password_time));
5046		NDR_CHECK(ndr_push_NTTIME_hyper(ndr, NDR_SCALARS, r->lockout_time));
5047		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pwd_count));
5048		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pwd_history_len));
5049		NDR_CHECK(ndr_push_unique_ptr(ndr, r->pwd_history));
5050		NDR_CHECK(ndr_push_trailer_align(ndr, 8));
5051	}
5052	if (ndr_flags & NDR_BUFFERS) {
5053		if (r->pwd_history) {
5054			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->pwd_history_len));
5055			for (cntr_pwd_history_1 = 0; cntr_pwd_history_1 < r->pwd_history_len; cntr_pwd_history_1++) {
5056				NDR_CHECK(ndr_push_samr_ValidationBlob(ndr, NDR_SCALARS, &r->pwd_history[cntr_pwd_history_1]));
5057			}
5058			for (cntr_pwd_history_1 = 0; cntr_pwd_history_1 < r->pwd_history_len; cntr_pwd_history_1++) {
5059				NDR_CHECK(ndr_push_samr_ValidationBlob(ndr, NDR_BUFFERS, &r->pwd_history[cntr_pwd_history_1]));
5060			}
5061		}
5062	}
5063	return NDR_ERR_SUCCESS;
5064}
5065
5066static enum ndr_err_code ndr_pull_samr_ValidatePasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct samr_ValidatePasswordInfo *r)
5067{
5068	uint32_t _ptr_pwd_history;
5069	uint32_t cntr_pwd_history_1;
5070	TALLOC_CTX *_mem_save_pwd_history_0;
5071	TALLOC_CTX *_mem_save_pwd_history_1;
5072	if (ndr_flags & NDR_SCALARS) {
5073		NDR_CHECK(ndr_pull_align(ndr, 8));
5074		NDR_CHECK(ndr_pull_samr_ValidateFieldsPresent(ndr, NDR_SCALARS, &r->fields_present));
5075		NDR_CHECK(ndr_pull_NTTIME_hyper(ndr, NDR_SCALARS, &r->last_password_change));
5076		NDR_CHECK(ndr_pull_NTTIME_hyper(ndr, NDR_SCALARS, &r->bad_password_time));
5077		NDR_CHECK(ndr_pull_NTTIME_hyper(ndr, NDR_SCALARS, &r->lockout_time));
5078		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pwd_count));
5079		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pwd_history_len));
5080		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pwd_history));
5081		if (_ptr_pwd_history) {
5082			NDR_PULL_ALLOC(ndr, r->pwd_history);
5083		} else {
5084			r->pwd_history = NULL;
5085		}
5086		NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
5087	}
5088	if (ndr_flags & NDR_BUFFERS) {
5089		if (r->pwd_history) {
5090			_mem_save_pwd_history_0 = NDR_PULL_GET_MEM_CTX(ndr);
5091			NDR_PULL_SET_MEM_CTX(ndr, r->pwd_history, 0);
5092			NDR_CHECK(ndr_pull_array_size(ndr, &r->pwd_history));
5093			NDR_PULL_ALLOC_N(ndr, r->pwd_history, ndr_get_array_size(ndr, &r->pwd_history));
5094			_mem_save_pwd_history_1 = NDR_PULL_GET_MEM_CTX(ndr);
5095			NDR_PULL_SET_MEM_CTX(ndr, r->pwd_history, 0);
5096			for (cntr_pwd_history_1 = 0; cntr_pwd_history_1 < r->pwd_history_len; cntr_pwd_history_1++) {
5097				NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr, NDR_SCALARS, &r->pwd_history[cntr_pwd_history_1]));
5098			}
5099			for (cntr_pwd_history_1 = 0; cntr_pwd_history_1 < r->pwd_history_len; cntr_pwd_history_1++) {
5100				NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr, NDR_BUFFERS, &r->pwd_history[cntr_pwd_history_1]));
5101			}
5102			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pwd_history_1, 0);
5103			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pwd_history_0, 0);
5104		}
5105		if (r->pwd_history) {
5106			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pwd_history, r->pwd_history_len));
5107		}
5108	}
5109	return NDR_ERR_SUCCESS;
5110}
5111
5112_PUBLIC_ void ndr_print_samr_ValidatePasswordInfo(struct ndr_print *ndr, const char *name, const struct samr_ValidatePasswordInfo *r)
5113{
5114	uint32_t cntr_pwd_history_1;
5115	ndr_print_struct(ndr, name, "samr_ValidatePasswordInfo");
5116	ndr->depth++;
5117	ndr_print_samr_ValidateFieldsPresent(ndr, "fields_present", r->fields_present);
5118	ndr_print_NTTIME_hyper(ndr, "last_password_change", r->last_password_change);
5119	ndr_print_NTTIME_hyper(ndr, "bad_password_time", r->bad_password_time);
5120	ndr_print_NTTIME_hyper(ndr, "lockout_time", r->lockout_time);
5121	ndr_print_uint32(ndr, "bad_pwd_count", r->bad_pwd_count);
5122	ndr_print_uint32(ndr, "pwd_history_len", r->pwd_history_len);
5123	ndr_print_ptr(ndr, "pwd_history", r->pwd_history);
5124	ndr->depth++;
5125	if (r->pwd_history) {
5126		ndr->print(ndr, "%s: ARRAY(%d)", "pwd_history", (int)r->pwd_history_len);
5127		ndr->depth++;
5128		for (cntr_pwd_history_1=0;cntr_pwd_history_1<r->pwd_history_len;cntr_pwd_history_1++) {
5129			char *idx_1=NULL;
5130			if (asprintf(&idx_1, "[%d]", cntr_pwd_history_1) != -1) {
5131				ndr_print_samr_ValidationBlob(ndr, "pwd_history", &r->pwd_history[cntr_pwd_history_1]);
5132				free(idx_1);
5133			}
5134		}
5135		ndr->depth--;
5136	}
5137	ndr->depth--;
5138	ndr->depth--;
5139}
5140
5141static enum ndr_err_code ndr_push_samr_ValidatePasswordRepCtr(struct ndr_push *ndr, int ndr_flags, const struct samr_ValidatePasswordRepCtr *r)
5142{
5143	if (ndr_flags & NDR_SCALARS) {
5144		NDR_CHECK(ndr_push_align(ndr, 8));
5145		NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
5146		NDR_CHECK(ndr_push_samr_ValidationStatus(ndr, NDR_SCALARS, r->status));
5147		NDR_CHECK(ndr_push_trailer_align(ndr, 8));
5148	}
5149	if (ndr_flags & NDR_BUFFERS) {
5150		NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
5151	}
5152	return NDR_ERR_SUCCESS;
5153}
5154
5155static enum ndr_err_code ndr_pull_samr_ValidatePasswordRepCtr(struct ndr_pull *ndr, int ndr_flags, struct samr_ValidatePasswordRepCtr *r)
5156{
5157	if (ndr_flags & NDR_SCALARS) {
5158		NDR_CHECK(ndr_pull_align(ndr, 8));
5159		NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
5160		NDR_CHECK(ndr_pull_samr_ValidationStatus(ndr, NDR_SCALARS, &r->status));
5161		NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
5162	}
5163	if (ndr_flags & NDR_BUFFERS) {
5164		NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
5165	}
5166	return NDR_ERR_SUCCESS;
5167}
5168
5169_PUBLIC_ void ndr_print_samr_ValidatePasswordRepCtr(struct ndr_print *ndr, const char *name, const struct samr_ValidatePasswordRepCtr *r)
5170{
5171	ndr_print_struct(ndr, name, "samr_ValidatePasswordRepCtr");
5172	ndr->depth++;
5173	ndr_print_samr_ValidatePasswordInfo(ndr, "info", &r->info);
5174	ndr_print_samr_ValidationStatus(ndr, "status", r->status);
5175	ndr->depth--;
5176}
5177
5178static enum ndr_err_code ndr_push_samr_ValidatePasswordRep(struct ndr_push *ndr, int ndr_flags, const union samr_ValidatePasswordRep *r)
5179{
5180	if (ndr_flags & NDR_SCALARS) {
5181		int level = ndr_push_get_switch_value(ndr, r);
5182		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
5183		NDR_CHECK(ndr_push_union_align(ndr, 8));
5184		switch (level) {
5185			case 1: {
5186				NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr, NDR_SCALARS, &r->ctr1));
5187			break; }
5188
5189			case 2: {
5190				NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr, NDR_SCALARS, &r->ctr2));
5191			break; }
5192
5193			case 3: {
5194				NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr, NDR_SCALARS, &r->ctr3));
5195			break; }
5196
5197			default:
5198				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5199		}
5200	}
5201	if (ndr_flags & NDR_BUFFERS) {
5202		int level = ndr_push_get_switch_value(ndr, r);
5203		switch (level) {
5204			case 1:
5205				NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr, NDR_BUFFERS, &r->ctr1));
5206			break;
5207
5208			case 2:
5209				NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr, NDR_BUFFERS, &r->ctr2));
5210			break;
5211
5212			case 3:
5213				NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr, NDR_BUFFERS, &r->ctr3));
5214			break;
5215
5216			default:
5217				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5218		}
5219	}
5220	return NDR_ERR_SUCCESS;
5221}
5222
5223static enum ndr_err_code ndr_pull_samr_ValidatePasswordRep(struct ndr_pull *ndr, int ndr_flags, union samr_ValidatePasswordRep *r)
5224{
5225	int level;
5226	uint16_t _level;
5227	level = ndr_pull_get_switch_value(ndr, r);
5228	if (ndr_flags & NDR_SCALARS) {
5229		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
5230		if (_level != level) {
5231			return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5232		}
5233		NDR_CHECK(ndr_pull_union_align(ndr, 8));
5234		switch (level) {
5235			case 1: {
5236				NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr, NDR_SCALARS, &r->ctr1));
5237			break; }
5238
5239			case 2: {
5240				NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr, NDR_SCALARS, &r->ctr2));
5241			break; }
5242
5243			case 3: {
5244				NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr, NDR_SCALARS, &r->ctr3));
5245			break; }
5246
5247			default:
5248				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5249		}
5250	}
5251	if (ndr_flags & NDR_BUFFERS) {
5252		switch (level) {
5253			case 1:
5254				NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr, NDR_BUFFERS, &r->ctr1));
5255			break;
5256
5257			case 2:
5258				NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr, NDR_BUFFERS, &r->ctr2));
5259			break;
5260
5261			case 3:
5262				NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr, NDR_BUFFERS, &r->ctr3));
5263			break;
5264
5265			default:
5266				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5267		}
5268	}
5269	return NDR_ERR_SUCCESS;
5270}
5271
5272_PUBLIC_ void ndr_print_samr_ValidatePasswordRep(struct ndr_print *ndr, const char *name, const union samr_ValidatePasswordRep *r)
5273{
5274	int level;
5275	level = ndr_print_get_switch_value(ndr, r);
5276	ndr_print_union(ndr, name, level, "samr_ValidatePasswordRep");
5277	switch (level) {
5278		case 1:
5279			ndr_print_samr_ValidatePasswordRepCtr(ndr, "ctr1", &r->ctr1);
5280		break;
5281
5282		case 2:
5283			ndr_print_samr_ValidatePasswordRepCtr(ndr, "ctr2", &r->ctr2);
5284		break;
5285
5286		case 3:
5287			ndr_print_samr_ValidatePasswordRepCtr(ndr, "ctr3", &r->ctr3);
5288		break;
5289
5290		default:
5291			ndr_print_bad_level(ndr, name, level);
5292	}
5293}
5294
5295static enum ndr_err_code ndr_push_samr_ValidatePasswordReq3(struct ndr_push *ndr, int ndr_flags, const struct samr_ValidatePasswordReq3 *r)
5296{
5297	if (ndr_flags & NDR_SCALARS) {
5298		NDR_CHECK(ndr_push_align(ndr, 8));
5299		NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
5300		NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->password));
5301		NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->account));
5302		NDR_CHECK(ndr_push_samr_ValidationBlob(ndr, NDR_SCALARS, &r->hash));
5303		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pwd_must_change_at_next_logon));
5304		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->clear_lockout));
5305		NDR_CHECK(ndr_push_trailer_align(ndr, 8));
5306	}
5307	if (ndr_flags & NDR_BUFFERS) {
5308		NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
5309		NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->password));
5310		NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->account));
5311		NDR_CHECK(ndr_push_samr_ValidationBlob(ndr, NDR_BUFFERS, &r->hash));
5312	}
5313	return NDR_ERR_SUCCESS;
5314}
5315
5316static enum ndr_err_code ndr_pull_samr_ValidatePasswordReq3(struct ndr_pull *ndr, int ndr_flags, struct samr_ValidatePasswordReq3 *r)
5317{
5318	if (ndr_flags & NDR_SCALARS) {
5319		NDR_CHECK(ndr_pull_align(ndr, 8));
5320		NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
5321		NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->password));
5322		NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->account));
5323		NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr, NDR_SCALARS, &r->hash));
5324		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pwd_must_change_at_next_logon));
5325		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->clear_lockout));
5326		NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
5327	}
5328	if (ndr_flags & NDR_BUFFERS) {
5329		NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
5330		NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->password));
5331		NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->account));
5332		NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr, NDR_BUFFERS, &r->hash));
5333	}
5334	return NDR_ERR_SUCCESS;
5335}
5336
5337_PUBLIC_ void ndr_print_samr_ValidatePasswordReq3(struct ndr_print *ndr, const char *name, const struct samr_ValidatePasswordReq3 *r)
5338{
5339	ndr_print_struct(ndr, name, "samr_ValidatePasswordReq3");
5340	ndr->depth++;
5341	ndr_print_samr_ValidatePasswordInfo(ndr, "info", &r->info);
5342	ndr_print_lsa_StringLarge(ndr, "password", &r->password);
5343	ndr_print_lsa_StringLarge(ndr, "account", &r->account);
5344	ndr_print_samr_ValidationBlob(ndr, "hash", &r->hash);
5345	ndr_print_uint8(ndr, "pwd_must_change_at_next_logon", r->pwd_must_change_at_next_logon);
5346	ndr_print_uint8(ndr, "clear_lockout", r->clear_lockout);
5347	ndr->depth--;
5348}
5349
5350static enum ndr_err_code ndr_push_samr_ValidatePasswordReq2(struct ndr_push *ndr, int ndr_flags, const struct samr_ValidatePasswordReq2 *r)
5351{
5352	if (ndr_flags & NDR_SCALARS) {
5353		NDR_CHECK(ndr_push_align(ndr, 8));
5354		NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
5355		NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->password));
5356		NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->account));
5357		NDR_CHECK(ndr_push_samr_ValidationBlob(ndr, NDR_SCALARS, &r->hash));
5358		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_matched));
5359		NDR_CHECK(ndr_push_trailer_align(ndr, 8));
5360	}
5361	if (ndr_flags & NDR_BUFFERS) {
5362		NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
5363		NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->password));
5364		NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->account));
5365		NDR_CHECK(ndr_push_samr_ValidationBlob(ndr, NDR_BUFFERS, &r->hash));
5366	}
5367	return NDR_ERR_SUCCESS;
5368}
5369
5370static enum ndr_err_code ndr_pull_samr_ValidatePasswordReq2(struct ndr_pull *ndr, int ndr_flags, struct samr_ValidatePasswordReq2 *r)
5371{
5372	if (ndr_flags & NDR_SCALARS) {
5373		NDR_CHECK(ndr_pull_align(ndr, 8));
5374		NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
5375		NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->password));
5376		NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->account));
5377		NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr, NDR_SCALARS, &r->hash));
5378		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_matched));
5379		NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
5380	}
5381	if (ndr_flags & NDR_BUFFERS) {
5382		NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
5383		NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->password));
5384		NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->account));
5385		NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr, NDR_BUFFERS, &r->hash));
5386	}
5387	return NDR_ERR_SUCCESS;
5388}
5389
5390_PUBLIC_ void ndr_print_samr_ValidatePasswordReq2(struct ndr_print *ndr, const char *name, const struct samr_ValidatePasswordReq2 *r)
5391{
5392	ndr_print_struct(ndr, name, "samr_ValidatePasswordReq2");
5393	ndr->depth++;
5394	ndr_print_samr_ValidatePasswordInfo(ndr, "info", &r->info);
5395	ndr_print_lsa_StringLarge(ndr, "password", &r->password);
5396	ndr_print_lsa_StringLarge(ndr, "account", &r->account);
5397	ndr_print_samr_ValidationBlob(ndr, "hash", &r->hash);
5398	ndr_print_uint8(ndr, "password_matched", r->password_matched);
5399	ndr->depth--;
5400}
5401
5402static enum ndr_err_code ndr_push_samr_ValidatePasswordReq1(struct ndr_push *ndr, int ndr_flags, const struct samr_ValidatePasswordReq1 *r)
5403{
5404	if (ndr_flags & NDR_SCALARS) {
5405		NDR_CHECK(ndr_push_align(ndr, 8));
5406		NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
5407		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_matched));
5408		NDR_CHECK(ndr_push_trailer_align(ndr, 8));
5409	}
5410	if (ndr_flags & NDR_BUFFERS) {
5411		NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
5412	}
5413	return NDR_ERR_SUCCESS;
5414}
5415
5416static enum ndr_err_code ndr_pull_samr_ValidatePasswordReq1(struct ndr_pull *ndr, int ndr_flags, struct samr_ValidatePasswordReq1 *r)
5417{
5418	if (ndr_flags & NDR_SCALARS) {
5419		NDR_CHECK(ndr_pull_align(ndr, 8));
5420		NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
5421		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_matched));
5422		NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
5423	}
5424	if (ndr_flags & NDR_BUFFERS) {
5425		NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
5426	}
5427	return NDR_ERR_SUCCESS;
5428}
5429
5430_PUBLIC_ void ndr_print_samr_ValidatePasswordReq1(struct ndr_print *ndr, const char *name, const struct samr_ValidatePasswordReq1 *r)
5431{
5432	ndr_print_struct(ndr, name, "samr_ValidatePasswordReq1");
5433	ndr->depth++;
5434	ndr_print_samr_ValidatePasswordInfo(ndr, "info", &r->info);
5435	ndr_print_uint8(ndr, "password_matched", r->password_matched);
5436	ndr->depth--;
5437}
5438
5439static enum ndr_err_code ndr_push_samr_ValidatePasswordReq(struct ndr_push *ndr, int ndr_flags, const union samr_ValidatePasswordReq *r)
5440{
5441	if (ndr_flags & NDR_SCALARS) {
5442		int level = ndr_push_get_switch_value(ndr, r);
5443		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
5444		NDR_CHECK(ndr_push_union_align(ndr, 8));
5445		switch (level) {
5446			case 1: {
5447				NDR_CHECK(ndr_push_samr_ValidatePasswordReq1(ndr, NDR_SCALARS, &r->req1));
5448			break; }
5449
5450			case 2: {
5451				NDR_CHECK(ndr_push_samr_ValidatePasswordReq2(ndr, NDR_SCALARS, &r->req2));
5452			break; }
5453
5454			case 3: {
5455				NDR_CHECK(ndr_push_samr_ValidatePasswordReq3(ndr, NDR_SCALARS, &r->req3));
5456			break; }
5457
5458			default:
5459				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5460		}
5461	}
5462	if (ndr_flags & NDR_BUFFERS) {
5463		int level = ndr_push_get_switch_value(ndr, r);
5464		switch (level) {
5465			case 1:
5466				NDR_CHECK(ndr_push_samr_ValidatePasswordReq1(ndr, NDR_BUFFERS, &r->req1));
5467			break;
5468
5469			case 2:
5470				NDR_CHECK(ndr_push_samr_ValidatePasswordReq2(ndr, NDR_BUFFERS, &r->req2));
5471			break;
5472
5473			case 3:
5474				NDR_CHECK(ndr_push_samr_ValidatePasswordReq3(ndr, NDR_BUFFERS, &r->req3));
5475			break;
5476
5477			default:
5478				return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5479		}
5480	}
5481	return NDR_ERR_SUCCESS;
5482}
5483
5484static enum ndr_err_code ndr_pull_samr_ValidatePasswordReq(struct ndr_pull *ndr, int ndr_flags, union samr_ValidatePasswordReq *r)
5485{
5486	int level;
5487	uint16_t _level;
5488	level = ndr_pull_get_switch_value(ndr, r);
5489	if (ndr_flags & NDR_SCALARS) {
5490		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
5491		if (_level != level) {
5492			return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5493		}
5494		NDR_CHECK(ndr_pull_union_align(ndr, 8));
5495		switch (level) {
5496			case 1: {
5497				NDR_CHECK(ndr_pull_samr_ValidatePasswordReq1(ndr, NDR_SCALARS, &r->req1));
5498			break; }
5499
5500			case 2: {
5501				NDR_CHECK(ndr_pull_samr_ValidatePasswordReq2(ndr, NDR_SCALARS, &r->req2));
5502			break; }
5503
5504			case 3: {
5505				NDR_CHECK(ndr_pull_samr_ValidatePasswordReq3(ndr, NDR_SCALARS, &r->req3));
5506			break; }
5507
5508			default:
5509				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5510		}
5511	}
5512	if (ndr_flags & NDR_BUFFERS) {
5513		switch (level) {
5514			case 1:
5515				NDR_CHECK(ndr_pull_samr_ValidatePasswordReq1(ndr, NDR_BUFFERS, &r->req1));
5516			break;
5517
5518			case 2:
5519				NDR_CHECK(ndr_pull_samr_ValidatePasswordReq2(ndr, NDR_BUFFERS, &r->req2));
5520			break;
5521
5522			case 3:
5523				NDR_CHECK(ndr_pull_samr_ValidatePasswordReq3(ndr, NDR_BUFFERS, &r->req3));
5524			break;
5525
5526			default:
5527				return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5528		}
5529	}
5530	return NDR_ERR_SUCCESS;
5531}
5532
5533_PUBLIC_ void ndr_print_samr_ValidatePasswordReq(struct ndr_print *ndr, const char *name, const union samr_ValidatePasswordReq *r)
5534{
5535	int level;
5536	level = ndr_print_get_switch_value(ndr, r);
5537	ndr_print_union(ndr, name, level, "samr_ValidatePasswordReq");
5538	switch (level) {
5539		case 1:
5540			ndr_print_samr_ValidatePasswordReq1(ndr, "req1", &r->req1);
5541		break;
5542
5543		case 2:
5544			ndr_print_samr_ValidatePasswordReq2(ndr, "req2", &r->req2);
5545		break;
5546
5547		case 3:
5548			ndr_print_samr_ValidatePasswordReq3(ndr, "req3", &r->req3);
5549		break;
5550
5551		default:
5552			ndr_print_bad_level(ndr, name, level);
5553	}
5554}
5555
5556static enum ndr_err_code ndr_push_samr_Connect(struct ndr_push *ndr, int flags, const struct samr_Connect *r)
5557{
5558	if (flags & NDR_IN) {
5559		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
5560		if (r->in.system_name) {
5561			NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
5562		}
5563		NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
5564	}
5565	if (flags & NDR_OUT) {
5566		if (r->out.connect_handle == NULL) {
5567			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5568		}
5569		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
5570		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
5571	}
5572	return NDR_ERR_SUCCESS;
5573}
5574
5575static enum ndr_err_code ndr_pull_samr_Connect(struct ndr_pull *ndr, int flags, struct samr_Connect *r)
5576{
5577	uint32_t _ptr_system_name;
5578	TALLOC_CTX *_mem_save_system_name_0;
5579	TALLOC_CTX *_mem_save_connect_handle_0;
5580	if (flags & NDR_IN) {
5581		ZERO_STRUCT(r->out);
5582
5583		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
5584		if (_ptr_system_name) {
5585			NDR_PULL_ALLOC(ndr, r->in.system_name);
5586		} else {
5587			r->in.system_name = NULL;
5588		}
5589		if (r->in.system_name) {
5590			_mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5591			NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
5592			NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
5593			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
5594		}
5595		NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
5596		NDR_PULL_ALLOC(ndr, r->out.connect_handle);
5597		ZERO_STRUCTP(r->out.connect_handle);
5598	}
5599	if (flags & NDR_OUT) {
5600		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5601			NDR_PULL_ALLOC(ndr, r->out.connect_handle);
5602		}
5603		_mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5604		NDR_PULL_SET_MEM_CTX(ndr, r->out.connect_handle, LIBNDR_FLAG_REF_ALLOC);
5605		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
5606		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
5607		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
5608	}
5609	return NDR_ERR_SUCCESS;
5610}
5611
5612_PUBLIC_ void ndr_print_samr_Connect(struct ndr_print *ndr, const char *name, int flags, const struct samr_Connect *r)
5613{
5614	ndr_print_struct(ndr, name, "samr_Connect");
5615	ndr->depth++;
5616	if (flags & NDR_SET_VALUES) {
5617		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5618	}
5619	if (flags & NDR_IN) {
5620		ndr_print_struct(ndr, "in", "samr_Connect");
5621		ndr->depth++;
5622		ndr_print_ptr(ndr, "system_name", r->in.system_name);
5623		ndr->depth++;
5624		if (r->in.system_name) {
5625			ndr_print_uint16(ndr, "system_name", *r->in.system_name);
5626		}
5627		ndr->depth--;
5628		ndr_print_samr_ConnectAccessMask(ndr, "access_mask", r->in.access_mask);
5629		ndr->depth--;
5630	}
5631	if (flags & NDR_OUT) {
5632		ndr_print_struct(ndr, "out", "samr_Connect");
5633		ndr->depth++;
5634		ndr_print_ptr(ndr, "connect_handle", r->out.connect_handle);
5635		ndr->depth++;
5636		ndr_print_policy_handle(ndr, "connect_handle", r->out.connect_handle);
5637		ndr->depth--;
5638		ndr_print_NTSTATUS(ndr, "result", r->out.result);
5639		ndr->depth--;
5640	}
5641	ndr->depth--;
5642}
5643
5644_PUBLIC_ enum ndr_err_code ndr_push_samr_Close(struct ndr_push *ndr, int flags, const struct samr_Close *r)
5645{
5646	if (flags & NDR_IN) {
5647		if (r->in.handle == NULL) {
5648			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5649		}
5650		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
5651	}
5652	if (flags & NDR_OUT) {
5653		if (r->out.handle == NULL) {
5654			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5655		}
5656		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
5657		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
5658	}
5659	return NDR_ERR_SUCCESS;
5660}
5661
5662_PUBLIC_ enum ndr_err_code ndr_pull_samr_Close(struct ndr_pull *ndr, int flags, struct samr_Close *r)
5663{
5664	TALLOC_CTX *_mem_save_handle_0;
5665	if (flags & NDR_IN) {
5666		ZERO_STRUCT(r->out);
5667
5668		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5669			NDR_PULL_ALLOC(ndr, r->in.handle);
5670		}
5671		_mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5672		NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
5673		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
5674		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
5675		NDR_PULL_ALLOC(ndr, r->out.handle);
5676		*r->out.handle = *r->in.handle;
5677	}
5678	if (flags & NDR_OUT) {
5679		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5680			NDR_PULL_ALLOC(ndr, r->out.handle);
5681		}
5682		_mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5683		NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
5684		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
5685		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
5686		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
5687	}
5688	return NDR_ERR_SUCCESS;
5689}
5690
5691_PUBLIC_ void ndr_print_samr_Close(struct ndr_print *ndr, const char *name, int flags, const struct samr_Close *r)
5692{
5693	ndr_print_struct(ndr, name, "samr_Close");
5694	ndr->depth++;
5695	if (flags & NDR_SET_VALUES) {
5696		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5697	}
5698	if (flags & NDR_IN) {
5699		ndr_print_struct(ndr, "in", "samr_Close");
5700		ndr->depth++;
5701		ndr_print_ptr(ndr, "handle", r->in.handle);
5702		ndr->depth++;
5703		ndr_print_policy_handle(ndr, "handle", r->in.handle);
5704		ndr->depth--;
5705		ndr->depth--;
5706	}
5707	if (flags & NDR_OUT) {
5708		ndr_print_struct(ndr, "out", "samr_Close");
5709		ndr->depth++;
5710		ndr_print_ptr(ndr, "handle", r->out.handle);
5711		ndr->depth++;
5712		ndr_print_policy_handle(ndr, "handle", r->out.handle);
5713		ndr->depth--;
5714		ndr_print_NTSTATUS(ndr, "result", r->out.result);
5715		ndr->depth--;
5716	}
5717	ndr->depth--;
5718}
5719
5720static enum ndr_err_code ndr_push_samr_SetSecurity(struct ndr_push *ndr, int flags, const struct samr_SetSecurity *r)
5721{
5722	if (flags & NDR_IN) {
5723		if (r->in.handle == NULL) {
5724			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5725		}
5726		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
5727		NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
5728		if (r->in.sdbuf == NULL) {
5729			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5730		}
5731		NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sdbuf));
5732	}
5733	if (flags & NDR_OUT) {
5734		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
5735	}
5736	return NDR_ERR_SUCCESS;
5737}
5738
5739static enum ndr_err_code ndr_pull_samr_SetSecurity(struct ndr_pull *ndr, int flags, struct samr_SetSecurity *r)
5740{
5741	TALLOC_CTX *_mem_save_handle_0;
5742	TALLOC_CTX *_mem_save_sdbuf_0;
5743	if (flags & NDR_IN) {
5744		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5745			NDR_PULL_ALLOC(ndr, r->in.handle);
5746		}
5747		_mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5748		NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
5749		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
5750		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
5751		NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
5752		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5753			NDR_PULL_ALLOC(ndr, r->in.sdbuf);
5754		}
5755		_mem_save_sdbuf_0 = NDR_PULL_GET_MEM_CTX(ndr);
5756		NDR_PULL_SET_MEM_CTX(ndr, r->in.sdbuf, LIBNDR_FLAG_REF_ALLOC);
5757		NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sdbuf));
5758		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sdbuf_0, LIBNDR_FLAG_REF_ALLOC);
5759	}
5760	if (flags & NDR_OUT) {
5761		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
5762	}
5763	return NDR_ERR_SUCCESS;
5764}
5765
5766_PUBLIC_ void ndr_print_samr_SetSecurity(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetSecurity *r)
5767{
5768	ndr_print_struct(ndr, name, "samr_SetSecurity");
5769	ndr->depth++;
5770	if (flags & NDR_SET_VALUES) {
5771		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5772	}
5773	if (flags & NDR_IN) {
5774		ndr_print_struct(ndr, "in", "samr_SetSecurity");
5775		ndr->depth++;
5776		ndr_print_ptr(ndr, "handle", r->in.handle);
5777		ndr->depth++;
5778		ndr_print_policy_handle(ndr, "handle", r->in.handle);
5779		ndr->depth--;
5780		ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
5781		ndr_print_ptr(ndr, "sdbuf", r->in.sdbuf);
5782		ndr->depth++;
5783		ndr_print_sec_desc_buf(ndr, "sdbuf", r->in.sdbuf);
5784		ndr->depth--;
5785		ndr->depth--;
5786	}
5787	if (flags & NDR_OUT) {
5788		ndr_print_struct(ndr, "out", "samr_SetSecurity");
5789		ndr->depth++;
5790		ndr_print_NTSTATUS(ndr, "result", r->out.result);
5791		ndr->depth--;
5792	}
5793	ndr->depth--;
5794}
5795
5796static enum ndr_err_code ndr_push_samr_QuerySecurity(struct ndr_push *ndr, int flags, const struct samr_QuerySecurity *r)
5797{
5798	if (flags & NDR_IN) {
5799		if (r->in.handle == NULL) {
5800			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5801		}
5802		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
5803		NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
5804	}
5805	if (flags & NDR_OUT) {
5806		if (r->out.sdbuf == NULL) {
5807			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5808		}
5809		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.sdbuf));
5810		if (*r->out.sdbuf) {
5811			NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sdbuf));
5812		}
5813		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
5814	}
5815	return NDR_ERR_SUCCESS;
5816}
5817
5818static enum ndr_err_code ndr_pull_samr_QuerySecurity(struct ndr_pull *ndr, int flags, struct samr_QuerySecurity *r)
5819{
5820	uint32_t _ptr_sdbuf;
5821	TALLOC_CTX *_mem_save_handle_0;
5822	TALLOC_CTX *_mem_save_sdbuf_0;
5823	TALLOC_CTX *_mem_save_sdbuf_1;
5824	if (flags & NDR_IN) {
5825		ZERO_STRUCT(r->out);
5826
5827		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5828			NDR_PULL_ALLOC(ndr, r->in.handle);
5829		}
5830		_mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5831		NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
5832		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
5833		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
5834		NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
5835		NDR_PULL_ALLOC(ndr, r->out.sdbuf);
5836		ZERO_STRUCTP(r->out.sdbuf);
5837	}
5838	if (flags & NDR_OUT) {
5839		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5840			NDR_PULL_ALLOC(ndr, r->out.sdbuf);
5841		}
5842		_mem_save_sdbuf_0 = NDR_PULL_GET_MEM_CTX(ndr);
5843		NDR_PULL_SET_MEM_CTX(ndr, r->out.sdbuf, LIBNDR_FLAG_REF_ALLOC);
5844		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sdbuf));
5845		if (_ptr_sdbuf) {
5846			NDR_PULL_ALLOC(ndr, *r->out.sdbuf);
5847		} else {
5848			*r->out.sdbuf = NULL;
5849		}
5850		if (*r->out.sdbuf) {
5851			_mem_save_sdbuf_1 = NDR_PULL_GET_MEM_CTX(ndr);
5852			NDR_PULL_SET_MEM_CTX(ndr, *r->out.sdbuf, 0);
5853			NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sdbuf));
5854			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sdbuf_1, 0);
5855		}
5856		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sdbuf_0, LIBNDR_FLAG_REF_ALLOC);
5857		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
5858	}
5859	return NDR_ERR_SUCCESS;
5860}
5861
5862_PUBLIC_ void ndr_print_samr_QuerySecurity(struct ndr_print *ndr, const char *name, int flags, const struct samr_QuerySecurity *r)
5863{
5864	ndr_print_struct(ndr, name, "samr_QuerySecurity");
5865	ndr->depth++;
5866	if (flags & NDR_SET_VALUES) {
5867		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5868	}
5869	if (flags & NDR_IN) {
5870		ndr_print_struct(ndr, "in", "samr_QuerySecurity");
5871		ndr->depth++;
5872		ndr_print_ptr(ndr, "handle", r->in.handle);
5873		ndr->depth++;
5874		ndr_print_policy_handle(ndr, "handle", r->in.handle);
5875		ndr->depth--;
5876		ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
5877		ndr->depth--;
5878	}
5879	if (flags & NDR_OUT) {
5880		ndr_print_struct(ndr, "out", "samr_QuerySecurity");
5881		ndr->depth++;
5882		ndr_print_ptr(ndr, "sdbuf", r->out.sdbuf);
5883		ndr->depth++;
5884		ndr_print_ptr(ndr, "sdbuf", *r->out.sdbuf);
5885		ndr->depth++;
5886		if (*r->out.sdbuf) {
5887			ndr_print_sec_desc_buf(ndr, "sdbuf", *r->out.sdbuf);
5888		}
5889		ndr->depth--;
5890		ndr->depth--;
5891		ndr_print_NTSTATUS(ndr, "result", r->out.result);
5892		ndr->depth--;
5893	}
5894	ndr->depth--;
5895}
5896
5897static enum ndr_err_code ndr_push_samr_Shutdown(struct ndr_push *ndr, int flags, const struct samr_Shutdown *r)
5898{
5899	if (flags & NDR_IN) {
5900		if (r->in.connect_handle == NULL) {
5901			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5902		}
5903		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
5904	}
5905	if (flags & NDR_OUT) {
5906		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
5907	}
5908	return NDR_ERR_SUCCESS;
5909}
5910
5911static enum ndr_err_code ndr_pull_samr_Shutdown(struct ndr_pull *ndr, int flags, struct samr_Shutdown *r)
5912{
5913	TALLOC_CTX *_mem_save_connect_handle_0;
5914	if (flags & NDR_IN) {
5915		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5916			NDR_PULL_ALLOC(ndr, r->in.connect_handle);
5917		}
5918		_mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5919		NDR_PULL_SET_MEM_CTX(ndr, r->in.connect_handle, LIBNDR_FLAG_REF_ALLOC);
5920		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
5921		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
5922	}
5923	if (flags & NDR_OUT) {
5924		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
5925	}
5926	return NDR_ERR_SUCCESS;
5927}
5928
5929_PUBLIC_ void ndr_print_samr_Shutdown(struct ndr_print *ndr, const char *name, int flags, const struct samr_Shutdown *r)
5930{
5931	ndr_print_struct(ndr, name, "samr_Shutdown");
5932	ndr->depth++;
5933	if (flags & NDR_SET_VALUES) {
5934		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5935	}
5936	if (flags & NDR_IN) {
5937		ndr_print_struct(ndr, "in", "samr_Shutdown");
5938		ndr->depth++;
5939		ndr_print_ptr(ndr, "connect_handle", r->in.connect_handle);
5940		ndr->depth++;
5941		ndr_print_policy_handle(ndr, "connect_handle", r->in.connect_handle);
5942		ndr->depth--;
5943		ndr->depth--;
5944	}
5945	if (flags & NDR_OUT) {
5946		ndr_print_struct(ndr, "out", "samr_Shutdown");
5947		ndr->depth++;
5948		ndr_print_NTSTATUS(ndr, "result", r->out.result);
5949		ndr->depth--;
5950	}
5951	ndr->depth--;
5952}
5953
5954static enum ndr_err_code ndr_push_samr_LookupDomain(struct ndr_push *ndr, int flags, const struct samr_LookupDomain *r)
5955{
5956	if (flags & NDR_IN) {
5957		if (r->in.connect_handle == NULL) {
5958			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5959		}
5960		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
5961		if (r->in.domain_name == NULL) {
5962			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5963		}
5964		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_name));
5965	}
5966	if (flags & NDR_OUT) {
5967		if (r->out.sid == NULL) {
5968			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5969		}
5970		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.sid));
5971		if (*r->out.sid) {
5972			NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sid));
5973		}
5974		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
5975	}
5976	return NDR_ERR_SUCCESS;
5977}
5978
5979static enum ndr_err_code ndr_pull_samr_LookupDomain(struct ndr_pull *ndr, int flags, struct samr_LookupDomain *r)
5980{
5981	uint32_t _ptr_sid;
5982	TALLOC_CTX *_mem_save_connect_handle_0;
5983	TALLOC_CTX *_mem_save_domain_name_0;
5984	TALLOC_CTX *_mem_save_sid_0;
5985	TALLOC_CTX *_mem_save_sid_1;
5986	if (flags & NDR_IN) {
5987		ZERO_STRUCT(r->out);
5988
5989		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5990			NDR_PULL_ALLOC(ndr, r->in.connect_handle);
5991		}
5992		_mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5993		NDR_PULL_SET_MEM_CTX(ndr, r->in.connect_handle, LIBNDR_FLAG_REF_ALLOC);
5994		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
5995		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
5996		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5997			NDR_PULL_ALLOC(ndr, r->in.domain_name);
5998		}
5999		_mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6000		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, LIBNDR_FLAG_REF_ALLOC);
6001		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_name));
6002		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, LIBNDR_FLAG_REF_ALLOC);
6003		NDR_PULL_ALLOC(ndr, r->out.sid);
6004		ZERO_STRUCTP(r->out.sid);
6005	}
6006	if (flags & NDR_OUT) {
6007		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6008			NDR_PULL_ALLOC(ndr, r->out.sid);
6009		}
6010		_mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6011		NDR_PULL_SET_MEM_CTX(ndr, r->out.sid, LIBNDR_FLAG_REF_ALLOC);
6012		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
6013		if (_ptr_sid) {
6014			NDR_PULL_ALLOC(ndr, *r->out.sid);
6015		} else {
6016			*r->out.sid = NULL;
6017		}
6018		if (*r->out.sid) {
6019			_mem_save_sid_1 = NDR_PULL_GET_MEM_CTX(ndr);
6020			NDR_PULL_SET_MEM_CTX(ndr, *r->out.sid, 0);
6021			NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sid));
6022			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_1, 0);
6023		}
6024		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
6025		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6026	}
6027	return NDR_ERR_SUCCESS;
6028}
6029
6030_PUBLIC_ void ndr_print_samr_LookupDomain(struct ndr_print *ndr, const char *name, int flags, const struct samr_LookupDomain *r)
6031{
6032	ndr_print_struct(ndr, name, "samr_LookupDomain");
6033	ndr->depth++;
6034	if (flags & NDR_SET_VALUES) {
6035		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6036	}
6037	if (flags & NDR_IN) {
6038		ndr_print_struct(ndr, "in", "samr_LookupDomain");
6039		ndr->depth++;
6040		ndr_print_ptr(ndr, "connect_handle", r->in.connect_handle);
6041		ndr->depth++;
6042		ndr_print_policy_handle(ndr, "connect_handle", r->in.connect_handle);
6043		ndr->depth--;
6044		ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
6045		ndr->depth++;
6046		ndr_print_lsa_String(ndr, "domain_name", r->in.domain_name);
6047		ndr->depth--;
6048		ndr->depth--;
6049	}
6050	if (flags & NDR_OUT) {
6051		ndr_print_struct(ndr, "out", "samr_LookupDomain");
6052		ndr->depth++;
6053		ndr_print_ptr(ndr, "sid", r->out.sid);
6054		ndr->depth++;
6055		ndr_print_ptr(ndr, "sid", *r->out.sid);
6056		ndr->depth++;
6057		if (*r->out.sid) {
6058			ndr_print_dom_sid2(ndr, "sid", *r->out.sid);
6059		}
6060		ndr->depth--;
6061		ndr->depth--;
6062		ndr_print_NTSTATUS(ndr, "result", r->out.result);
6063		ndr->depth--;
6064	}
6065	ndr->depth--;
6066}
6067
6068static enum ndr_err_code ndr_push_samr_EnumDomains(struct ndr_push *ndr, int flags, const struct samr_EnumDomains *r)
6069{
6070	if (flags & NDR_IN) {
6071		if (r->in.connect_handle == NULL) {
6072			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6073		}
6074		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
6075		if (r->in.resume_handle == NULL) {
6076			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6077		}
6078		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle));
6079		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
6080	}
6081	if (flags & NDR_OUT) {
6082		if (r->out.resume_handle == NULL) {
6083			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6084		}
6085		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.resume_handle));
6086		if (r->out.sam == NULL) {
6087			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6088		}
6089		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.sam));
6090		if (*r->out.sam) {
6091			NDR_CHECK(ndr_push_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
6092		}
6093		if (r->out.num_entries == NULL) {
6094			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6095		}
6096		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_entries));
6097		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6098	}
6099	return NDR_ERR_SUCCESS;
6100}
6101
6102static enum ndr_err_code ndr_pull_samr_EnumDomains(struct ndr_pull *ndr, int flags, struct samr_EnumDomains *r)
6103{
6104	uint32_t _ptr_sam;
6105	TALLOC_CTX *_mem_save_connect_handle_0;
6106	TALLOC_CTX *_mem_save_resume_handle_0;
6107	TALLOC_CTX *_mem_save_sam_0;
6108	TALLOC_CTX *_mem_save_sam_1;
6109	TALLOC_CTX *_mem_save_num_entries_0;
6110	if (flags & NDR_IN) {
6111		ZERO_STRUCT(r->out);
6112
6113		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6114			NDR_PULL_ALLOC(ndr, r->in.connect_handle);
6115		}
6116		_mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6117		NDR_PULL_SET_MEM_CTX(ndr, r->in.connect_handle, LIBNDR_FLAG_REF_ALLOC);
6118		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
6119		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
6120		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6121			NDR_PULL_ALLOC(ndr, r->in.resume_handle);
6122		}
6123		_mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6124		NDR_PULL_SET_MEM_CTX(ndr, r->in.resume_handle, LIBNDR_FLAG_REF_ALLOC);
6125		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
6126		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
6127		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
6128		NDR_PULL_ALLOC(ndr, r->out.resume_handle);
6129		*r->out.resume_handle = *r->in.resume_handle;
6130		NDR_PULL_ALLOC(ndr, r->out.sam);
6131		ZERO_STRUCTP(r->out.sam);
6132		NDR_PULL_ALLOC(ndr, r->out.num_entries);
6133		ZERO_STRUCTP(r->out.num_entries);
6134	}
6135	if (flags & NDR_OUT) {
6136		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6137			NDR_PULL_ALLOC(ndr, r->out.resume_handle);
6138		}
6139		_mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6140		NDR_PULL_SET_MEM_CTX(ndr, r->out.resume_handle, LIBNDR_FLAG_REF_ALLOC);
6141		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.resume_handle));
6142		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
6143		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6144			NDR_PULL_ALLOC(ndr, r->out.sam);
6145		}
6146		_mem_save_sam_0 = NDR_PULL_GET_MEM_CTX(ndr);
6147		NDR_PULL_SET_MEM_CTX(ndr, r->out.sam, LIBNDR_FLAG_REF_ALLOC);
6148		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam));
6149		if (_ptr_sam) {
6150			NDR_PULL_ALLOC(ndr, *r->out.sam);
6151		} else {
6152			*r->out.sam = NULL;
6153		}
6154		if (*r->out.sam) {
6155			_mem_save_sam_1 = NDR_PULL_GET_MEM_CTX(ndr);
6156			NDR_PULL_SET_MEM_CTX(ndr, *r->out.sam, 0);
6157			NDR_CHECK(ndr_pull_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
6158			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_1, 0);
6159		}
6160		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_0, LIBNDR_FLAG_REF_ALLOC);
6161		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6162			NDR_PULL_ALLOC(ndr, r->out.num_entries);
6163		}
6164		_mem_save_num_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
6165		NDR_PULL_SET_MEM_CTX(ndr, r->out.num_entries, LIBNDR_FLAG_REF_ALLOC);
6166		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_entries));
6167		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_entries_0, LIBNDR_FLAG_REF_ALLOC);
6168		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6169	}
6170	return NDR_ERR_SUCCESS;
6171}
6172
6173_PUBLIC_ void ndr_print_samr_EnumDomains(struct ndr_print *ndr, const char *name, int flags, const struct samr_EnumDomains *r)
6174{
6175	ndr_print_struct(ndr, name, "samr_EnumDomains");
6176	ndr->depth++;
6177	if (flags & NDR_SET_VALUES) {
6178		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6179	}
6180	if (flags & NDR_IN) {
6181		ndr_print_struct(ndr, "in", "samr_EnumDomains");
6182		ndr->depth++;
6183		ndr_print_ptr(ndr, "connect_handle", r->in.connect_handle);
6184		ndr->depth++;
6185		ndr_print_policy_handle(ndr, "connect_handle", r->in.connect_handle);
6186		ndr->depth--;
6187		ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
6188		ndr->depth++;
6189		ndr_print_uint32(ndr, "resume_handle", *r->in.resume_handle);
6190		ndr->depth--;
6191		ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
6192		ndr->depth--;
6193	}
6194	if (flags & NDR_OUT) {
6195		ndr_print_struct(ndr, "out", "samr_EnumDomains");
6196		ndr->depth++;
6197		ndr_print_ptr(ndr, "resume_handle", r->out.resume_handle);
6198		ndr->depth++;
6199		ndr_print_uint32(ndr, "resume_handle", *r->out.resume_handle);
6200		ndr->depth--;
6201		ndr_print_ptr(ndr, "sam", r->out.sam);
6202		ndr->depth++;
6203		ndr_print_ptr(ndr, "sam", *r->out.sam);
6204		ndr->depth++;
6205		if (*r->out.sam) {
6206			ndr_print_samr_SamArray(ndr, "sam", *r->out.sam);
6207		}
6208		ndr->depth--;
6209		ndr->depth--;
6210		ndr_print_ptr(ndr, "num_entries", r->out.num_entries);
6211		ndr->depth++;
6212		ndr_print_uint32(ndr, "num_entries", *r->out.num_entries);
6213		ndr->depth--;
6214		ndr_print_NTSTATUS(ndr, "result", r->out.result);
6215		ndr->depth--;
6216	}
6217	ndr->depth--;
6218}
6219
6220_PUBLIC_ enum ndr_err_code ndr_push_samr_OpenDomain(struct ndr_push *ndr, int flags, const struct samr_OpenDomain *r)
6221{
6222	if (flags & NDR_IN) {
6223		if (r->in.connect_handle == NULL) {
6224			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6225		}
6226		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
6227		NDR_CHECK(ndr_push_samr_DomainAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
6228		if (r->in.sid == NULL) {
6229			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6230		}
6231		NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
6232	}
6233	if (flags & NDR_OUT) {
6234		if (r->out.domain_handle == NULL) {
6235			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6236		}
6237		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.domain_handle));
6238		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6239	}
6240	return NDR_ERR_SUCCESS;
6241}
6242
6243_PUBLIC_ enum ndr_err_code ndr_pull_samr_OpenDomain(struct ndr_pull *ndr, int flags, struct samr_OpenDomain *r)
6244{
6245	TALLOC_CTX *_mem_save_connect_handle_0;
6246	TALLOC_CTX *_mem_save_sid_0;
6247	TALLOC_CTX *_mem_save_domain_handle_0;
6248	if (flags & NDR_IN) {
6249		ZERO_STRUCT(r->out);
6250
6251		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6252			NDR_PULL_ALLOC(ndr, r->in.connect_handle);
6253		}
6254		_mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6255		NDR_PULL_SET_MEM_CTX(ndr, r->in.connect_handle, LIBNDR_FLAG_REF_ALLOC);
6256		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
6257		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
6258		NDR_CHECK(ndr_pull_samr_DomainAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
6259		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6260			NDR_PULL_ALLOC(ndr, r->in.sid);
6261		}
6262		_mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6263		NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
6264		NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
6265		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
6266		NDR_PULL_ALLOC(ndr, r->out.domain_handle);
6267		ZERO_STRUCTP(r->out.domain_handle);
6268	}
6269	if (flags & NDR_OUT) {
6270		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6271			NDR_PULL_ALLOC(ndr, r->out.domain_handle);
6272		}
6273		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6274		NDR_PULL_SET_MEM_CTX(ndr, r->out.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6275		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.domain_handle));
6276		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6277		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6278	}
6279	return NDR_ERR_SUCCESS;
6280}
6281
6282_PUBLIC_ void ndr_print_samr_OpenDomain(struct ndr_print *ndr, const char *name, int flags, const struct samr_OpenDomain *r)
6283{
6284	ndr_print_struct(ndr, name, "samr_OpenDomain");
6285	ndr->depth++;
6286	if (flags & NDR_SET_VALUES) {
6287		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6288	}
6289	if (flags & NDR_IN) {
6290		ndr_print_struct(ndr, "in", "samr_OpenDomain");
6291		ndr->depth++;
6292		ndr_print_ptr(ndr, "connect_handle", r->in.connect_handle);
6293		ndr->depth++;
6294		ndr_print_policy_handle(ndr, "connect_handle", r->in.connect_handle);
6295		ndr->depth--;
6296		ndr_print_samr_DomainAccessMask(ndr, "access_mask", r->in.access_mask);
6297		ndr_print_ptr(ndr, "sid", r->in.sid);
6298		ndr->depth++;
6299		ndr_print_dom_sid2(ndr, "sid", r->in.sid);
6300		ndr->depth--;
6301		ndr->depth--;
6302	}
6303	if (flags & NDR_OUT) {
6304		ndr_print_struct(ndr, "out", "samr_OpenDomain");
6305		ndr->depth++;
6306		ndr_print_ptr(ndr, "domain_handle", r->out.domain_handle);
6307		ndr->depth++;
6308		ndr_print_policy_handle(ndr, "domain_handle", r->out.domain_handle);
6309		ndr->depth--;
6310		ndr_print_NTSTATUS(ndr, "result", r->out.result);
6311		ndr->depth--;
6312	}
6313	ndr->depth--;
6314}
6315
6316static enum ndr_err_code ndr_push_samr_QueryDomainInfo(struct ndr_push *ndr, int flags, const struct samr_QueryDomainInfo *r)
6317{
6318	if (flags & NDR_IN) {
6319		if (r->in.domain_handle == NULL) {
6320			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6321		}
6322		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6323		NDR_CHECK(ndr_push_samr_DomainInfoClass(ndr, NDR_SCALARS, r->in.level));
6324	}
6325	if (flags & NDR_OUT) {
6326		if (r->out.info == NULL) {
6327			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6328		}
6329		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
6330		if (*r->out.info) {
6331			NDR_CHECK(ndr_push_set_switch_value(ndr, *r->out.info, r->in.level));
6332			NDR_CHECK(ndr_push_samr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
6333		}
6334		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6335	}
6336	return NDR_ERR_SUCCESS;
6337}
6338
6339static enum ndr_err_code ndr_pull_samr_QueryDomainInfo(struct ndr_pull *ndr, int flags, struct samr_QueryDomainInfo *r)
6340{
6341	uint32_t _ptr_info;
6342	TALLOC_CTX *_mem_save_domain_handle_0;
6343	TALLOC_CTX *_mem_save_info_0;
6344	TALLOC_CTX *_mem_save_info_1;
6345	if (flags & NDR_IN) {
6346		ZERO_STRUCT(r->out);
6347
6348		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6349			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
6350		}
6351		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6352		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6353		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6354		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6355		NDR_CHECK(ndr_pull_samr_DomainInfoClass(ndr, NDR_SCALARS, &r->in.level));
6356		NDR_PULL_ALLOC(ndr, r->out.info);
6357		ZERO_STRUCTP(r->out.info);
6358	}
6359	if (flags & NDR_OUT) {
6360		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6361			NDR_PULL_ALLOC(ndr, r->out.info);
6362		}
6363		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
6364		NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
6365		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
6366		if (_ptr_info) {
6367			NDR_PULL_ALLOC(ndr, *r->out.info);
6368		} else {
6369			*r->out.info = NULL;
6370		}
6371		if (*r->out.info) {
6372			_mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
6373			NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
6374			NDR_CHECK(ndr_pull_set_switch_value(ndr, *r->out.info, r->in.level));
6375			NDR_CHECK(ndr_pull_samr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
6376			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
6377		}
6378		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
6379		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6380	}
6381	return NDR_ERR_SUCCESS;
6382}
6383
6384_PUBLIC_ void ndr_print_samr_QueryDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryDomainInfo *r)
6385{
6386	ndr_print_struct(ndr, name, "samr_QueryDomainInfo");
6387	ndr->depth++;
6388	if (flags & NDR_SET_VALUES) {
6389		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6390	}
6391	if (flags & NDR_IN) {
6392		ndr_print_struct(ndr, "in", "samr_QueryDomainInfo");
6393		ndr->depth++;
6394		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
6395		ndr->depth++;
6396		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
6397		ndr->depth--;
6398		ndr_print_samr_DomainInfoClass(ndr, "level", r->in.level);
6399		ndr->depth--;
6400	}
6401	if (flags & NDR_OUT) {
6402		ndr_print_struct(ndr, "out", "samr_QueryDomainInfo");
6403		ndr->depth++;
6404		ndr_print_ptr(ndr, "info", r->out.info);
6405		ndr->depth++;
6406		ndr_print_ptr(ndr, "info", *r->out.info);
6407		ndr->depth++;
6408		if (*r->out.info) {
6409			ndr_print_set_switch_value(ndr, *r->out.info, r->in.level);
6410			ndr_print_samr_DomainInfo(ndr, "info", *r->out.info);
6411		}
6412		ndr->depth--;
6413		ndr->depth--;
6414		ndr_print_NTSTATUS(ndr, "result", r->out.result);
6415		ndr->depth--;
6416	}
6417	ndr->depth--;
6418}
6419
6420static enum ndr_err_code ndr_push_samr_SetDomainInfo(struct ndr_push *ndr, int flags, const struct samr_SetDomainInfo *r)
6421{
6422	if (flags & NDR_IN) {
6423		if (r->in.domain_handle == NULL) {
6424			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6425		}
6426		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6427		NDR_CHECK(ndr_push_samr_DomainInfoClass(ndr, NDR_SCALARS, r->in.level));
6428		if (r->in.info == NULL) {
6429			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6430		}
6431		NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level));
6432		NDR_CHECK(ndr_push_samr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
6433	}
6434	if (flags & NDR_OUT) {
6435		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6436	}
6437	return NDR_ERR_SUCCESS;
6438}
6439
6440static enum ndr_err_code ndr_pull_samr_SetDomainInfo(struct ndr_pull *ndr, int flags, struct samr_SetDomainInfo *r)
6441{
6442	TALLOC_CTX *_mem_save_domain_handle_0;
6443	TALLOC_CTX *_mem_save_info_0;
6444	if (flags & NDR_IN) {
6445		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6446			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
6447		}
6448		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6449		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6450		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6451		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6452		NDR_CHECK(ndr_pull_samr_DomainInfoClass(ndr, NDR_SCALARS, &r->in.level));
6453		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6454			NDR_PULL_ALLOC(ndr, r->in.info);
6455		}
6456		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
6457		NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC);
6458		NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level));
6459		NDR_CHECK(ndr_pull_samr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
6460		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
6461	}
6462	if (flags & NDR_OUT) {
6463		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6464	}
6465	return NDR_ERR_SUCCESS;
6466}
6467
6468_PUBLIC_ void ndr_print_samr_SetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetDomainInfo *r)
6469{
6470	ndr_print_struct(ndr, name, "samr_SetDomainInfo");
6471	ndr->depth++;
6472	if (flags & NDR_SET_VALUES) {
6473		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6474	}
6475	if (flags & NDR_IN) {
6476		ndr_print_struct(ndr, "in", "samr_SetDomainInfo");
6477		ndr->depth++;
6478		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
6479		ndr->depth++;
6480		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
6481		ndr->depth--;
6482		ndr_print_samr_DomainInfoClass(ndr, "level", r->in.level);
6483		ndr_print_ptr(ndr, "info", r->in.info);
6484		ndr->depth++;
6485		ndr_print_set_switch_value(ndr, r->in.info, r->in.level);
6486		ndr_print_samr_DomainInfo(ndr, "info", r->in.info);
6487		ndr->depth--;
6488		ndr->depth--;
6489	}
6490	if (flags & NDR_OUT) {
6491		ndr_print_struct(ndr, "out", "samr_SetDomainInfo");
6492		ndr->depth++;
6493		ndr_print_NTSTATUS(ndr, "result", r->out.result);
6494		ndr->depth--;
6495	}
6496	ndr->depth--;
6497}
6498
6499static enum ndr_err_code ndr_push_samr_CreateDomainGroup(struct ndr_push *ndr, int flags, const struct samr_CreateDomainGroup *r)
6500{
6501	if (flags & NDR_IN) {
6502		if (r->in.domain_handle == NULL) {
6503			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6504		}
6505		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6506		if (r->in.name == NULL) {
6507			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6508		}
6509		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
6510		NDR_CHECK(ndr_push_samr_GroupAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
6511	}
6512	if (flags & NDR_OUT) {
6513		if (r->out.group_handle == NULL) {
6514			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6515		}
6516		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.group_handle));
6517		if (r->out.rid == NULL) {
6518			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6519		}
6520		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
6521		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6522	}
6523	return NDR_ERR_SUCCESS;
6524}
6525
6526static enum ndr_err_code ndr_pull_samr_CreateDomainGroup(struct ndr_pull *ndr, int flags, struct samr_CreateDomainGroup *r)
6527{
6528	TALLOC_CTX *_mem_save_domain_handle_0;
6529	TALLOC_CTX *_mem_save_name_0;
6530	TALLOC_CTX *_mem_save_group_handle_0;
6531	TALLOC_CTX *_mem_save_rid_0;
6532	if (flags & NDR_IN) {
6533		ZERO_STRUCT(r->out);
6534
6535		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6536			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
6537		}
6538		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6539		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6540		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6541		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6542		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6543			NDR_PULL_ALLOC(ndr, r->in.name);
6544		}
6545		_mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6546		NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
6547		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
6548		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
6549		NDR_CHECK(ndr_pull_samr_GroupAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
6550		NDR_PULL_ALLOC(ndr, r->out.group_handle);
6551		ZERO_STRUCTP(r->out.group_handle);
6552		NDR_PULL_ALLOC(ndr, r->out.rid);
6553		ZERO_STRUCTP(r->out.rid);
6554	}
6555	if (flags & NDR_OUT) {
6556		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6557			NDR_PULL_ALLOC(ndr, r->out.group_handle);
6558		}
6559		_mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6560		NDR_PULL_SET_MEM_CTX(ndr, r->out.group_handle, LIBNDR_FLAG_REF_ALLOC);
6561		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.group_handle));
6562		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
6563		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6564			NDR_PULL_ALLOC(ndr, r->out.rid);
6565		}
6566		_mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6567		NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
6568		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
6569		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
6570		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6571	}
6572	return NDR_ERR_SUCCESS;
6573}
6574
6575_PUBLIC_ void ndr_print_samr_CreateDomainGroup(struct ndr_print *ndr, const char *name, int flags, const struct samr_CreateDomainGroup *r)
6576{
6577	ndr_print_struct(ndr, name, "samr_CreateDomainGroup");
6578	ndr->depth++;
6579	if (flags & NDR_SET_VALUES) {
6580		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6581	}
6582	if (flags & NDR_IN) {
6583		ndr_print_struct(ndr, "in", "samr_CreateDomainGroup");
6584		ndr->depth++;
6585		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
6586		ndr->depth++;
6587		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
6588		ndr->depth--;
6589		ndr_print_ptr(ndr, "name", r->in.name);
6590		ndr->depth++;
6591		ndr_print_lsa_String(ndr, "name", r->in.name);
6592		ndr->depth--;
6593		ndr_print_samr_GroupAccessMask(ndr, "access_mask", r->in.access_mask);
6594		ndr->depth--;
6595	}
6596	if (flags & NDR_OUT) {
6597		ndr_print_struct(ndr, "out", "samr_CreateDomainGroup");
6598		ndr->depth++;
6599		ndr_print_ptr(ndr, "group_handle", r->out.group_handle);
6600		ndr->depth++;
6601		ndr_print_policy_handle(ndr, "group_handle", r->out.group_handle);
6602		ndr->depth--;
6603		ndr_print_ptr(ndr, "rid", r->out.rid);
6604		ndr->depth++;
6605		ndr_print_uint32(ndr, "rid", *r->out.rid);
6606		ndr->depth--;
6607		ndr_print_NTSTATUS(ndr, "result", r->out.result);
6608		ndr->depth--;
6609	}
6610	ndr->depth--;
6611}
6612
6613static enum ndr_err_code ndr_push_samr_EnumDomainGroups(struct ndr_push *ndr, int flags, const struct samr_EnumDomainGroups *r)
6614{
6615	if (flags & NDR_IN) {
6616		if (r->in.domain_handle == NULL) {
6617			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6618		}
6619		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6620		if (r->in.resume_handle == NULL) {
6621			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6622		}
6623		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle));
6624		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_size));
6625	}
6626	if (flags & NDR_OUT) {
6627		if (r->out.resume_handle == NULL) {
6628			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6629		}
6630		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.resume_handle));
6631		if (r->out.sam == NULL) {
6632			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6633		}
6634		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.sam));
6635		if (*r->out.sam) {
6636			NDR_CHECK(ndr_push_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
6637		}
6638		if (r->out.num_entries == NULL) {
6639			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6640		}
6641		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_entries));
6642		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6643	}
6644	return NDR_ERR_SUCCESS;
6645}
6646
6647static enum ndr_err_code ndr_pull_samr_EnumDomainGroups(struct ndr_pull *ndr, int flags, struct samr_EnumDomainGroups *r)
6648{
6649	uint32_t _ptr_sam;
6650	TALLOC_CTX *_mem_save_domain_handle_0;
6651	TALLOC_CTX *_mem_save_resume_handle_0;
6652	TALLOC_CTX *_mem_save_sam_0;
6653	TALLOC_CTX *_mem_save_sam_1;
6654	TALLOC_CTX *_mem_save_num_entries_0;
6655	if (flags & NDR_IN) {
6656		ZERO_STRUCT(r->out);
6657
6658		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6659			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
6660		}
6661		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6662		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6663		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6664		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6665		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6666			NDR_PULL_ALLOC(ndr, r->in.resume_handle);
6667		}
6668		_mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6669		NDR_PULL_SET_MEM_CTX(ndr, r->in.resume_handle, LIBNDR_FLAG_REF_ALLOC);
6670		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
6671		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
6672		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_size));
6673		NDR_PULL_ALLOC(ndr, r->out.resume_handle);
6674		*r->out.resume_handle = *r->in.resume_handle;
6675		NDR_PULL_ALLOC(ndr, r->out.sam);
6676		ZERO_STRUCTP(r->out.sam);
6677		NDR_PULL_ALLOC(ndr, r->out.num_entries);
6678		ZERO_STRUCTP(r->out.num_entries);
6679	}
6680	if (flags & NDR_OUT) {
6681		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6682			NDR_PULL_ALLOC(ndr, r->out.resume_handle);
6683		}
6684		_mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6685		NDR_PULL_SET_MEM_CTX(ndr, r->out.resume_handle, LIBNDR_FLAG_REF_ALLOC);
6686		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.resume_handle));
6687		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
6688		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6689			NDR_PULL_ALLOC(ndr, r->out.sam);
6690		}
6691		_mem_save_sam_0 = NDR_PULL_GET_MEM_CTX(ndr);
6692		NDR_PULL_SET_MEM_CTX(ndr, r->out.sam, LIBNDR_FLAG_REF_ALLOC);
6693		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam));
6694		if (_ptr_sam) {
6695			NDR_PULL_ALLOC(ndr, *r->out.sam);
6696		} else {
6697			*r->out.sam = NULL;
6698		}
6699		if (*r->out.sam) {
6700			_mem_save_sam_1 = NDR_PULL_GET_MEM_CTX(ndr);
6701			NDR_PULL_SET_MEM_CTX(ndr, *r->out.sam, 0);
6702			NDR_CHECK(ndr_pull_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
6703			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_1, 0);
6704		}
6705		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_0, LIBNDR_FLAG_REF_ALLOC);
6706		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6707			NDR_PULL_ALLOC(ndr, r->out.num_entries);
6708		}
6709		_mem_save_num_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
6710		NDR_PULL_SET_MEM_CTX(ndr, r->out.num_entries, LIBNDR_FLAG_REF_ALLOC);
6711		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_entries));
6712		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_entries_0, LIBNDR_FLAG_REF_ALLOC);
6713		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6714	}
6715	return NDR_ERR_SUCCESS;
6716}
6717
6718_PUBLIC_ void ndr_print_samr_EnumDomainGroups(struct ndr_print *ndr, const char *name, int flags, const struct samr_EnumDomainGroups *r)
6719{
6720	ndr_print_struct(ndr, name, "samr_EnumDomainGroups");
6721	ndr->depth++;
6722	if (flags & NDR_SET_VALUES) {
6723		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6724	}
6725	if (flags & NDR_IN) {
6726		ndr_print_struct(ndr, "in", "samr_EnumDomainGroups");
6727		ndr->depth++;
6728		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
6729		ndr->depth++;
6730		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
6731		ndr->depth--;
6732		ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
6733		ndr->depth++;
6734		ndr_print_uint32(ndr, "resume_handle", *r->in.resume_handle);
6735		ndr->depth--;
6736		ndr_print_uint32(ndr, "max_size", r->in.max_size);
6737		ndr->depth--;
6738	}
6739	if (flags & NDR_OUT) {
6740		ndr_print_struct(ndr, "out", "samr_EnumDomainGroups");
6741		ndr->depth++;
6742		ndr_print_ptr(ndr, "resume_handle", r->out.resume_handle);
6743		ndr->depth++;
6744		ndr_print_uint32(ndr, "resume_handle", *r->out.resume_handle);
6745		ndr->depth--;
6746		ndr_print_ptr(ndr, "sam", r->out.sam);
6747		ndr->depth++;
6748		ndr_print_ptr(ndr, "sam", *r->out.sam);
6749		ndr->depth++;
6750		if (*r->out.sam) {
6751			ndr_print_samr_SamArray(ndr, "sam", *r->out.sam);
6752		}
6753		ndr->depth--;
6754		ndr->depth--;
6755		ndr_print_ptr(ndr, "num_entries", r->out.num_entries);
6756		ndr->depth++;
6757		ndr_print_uint32(ndr, "num_entries", *r->out.num_entries);
6758		ndr->depth--;
6759		ndr_print_NTSTATUS(ndr, "result", r->out.result);
6760		ndr->depth--;
6761	}
6762	ndr->depth--;
6763}
6764
6765static enum ndr_err_code ndr_push_samr_CreateUser(struct ndr_push *ndr, int flags, const struct samr_CreateUser *r)
6766{
6767	if (flags & NDR_IN) {
6768		if (r->in.domain_handle == NULL) {
6769			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6770		}
6771		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6772		if (r->in.account_name == NULL) {
6773			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6774		}
6775		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account_name));
6776		NDR_CHECK(ndr_push_samr_UserAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
6777	}
6778	if (flags & NDR_OUT) {
6779		if (r->out.user_handle == NULL) {
6780			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6781		}
6782		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
6783		if (r->out.rid == NULL) {
6784			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6785		}
6786		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
6787		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6788	}
6789	return NDR_ERR_SUCCESS;
6790}
6791
6792static enum ndr_err_code ndr_pull_samr_CreateUser(struct ndr_pull *ndr, int flags, struct samr_CreateUser *r)
6793{
6794	TALLOC_CTX *_mem_save_domain_handle_0;
6795	TALLOC_CTX *_mem_save_account_name_0;
6796	TALLOC_CTX *_mem_save_user_handle_0;
6797	TALLOC_CTX *_mem_save_rid_0;
6798	if (flags & NDR_IN) {
6799		ZERO_STRUCT(r->out);
6800
6801		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6802			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
6803		}
6804		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6805		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6806		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6807		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6808		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6809			NDR_PULL_ALLOC(ndr, r->in.account_name);
6810		}
6811		_mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6812		NDR_PULL_SET_MEM_CTX(ndr, r->in.account_name, LIBNDR_FLAG_REF_ALLOC);
6813		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account_name));
6814		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, LIBNDR_FLAG_REF_ALLOC);
6815		NDR_CHECK(ndr_pull_samr_UserAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
6816		NDR_PULL_ALLOC(ndr, r->out.user_handle);
6817		ZERO_STRUCTP(r->out.user_handle);
6818		NDR_PULL_ALLOC(ndr, r->out.rid);
6819		ZERO_STRUCTP(r->out.rid);
6820	}
6821	if (flags & NDR_OUT) {
6822		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6823			NDR_PULL_ALLOC(ndr, r->out.user_handle);
6824		}
6825		_mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6826		NDR_PULL_SET_MEM_CTX(ndr, r->out.user_handle, LIBNDR_FLAG_REF_ALLOC);
6827		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
6828		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
6829		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6830			NDR_PULL_ALLOC(ndr, r->out.rid);
6831		}
6832		_mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6833		NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
6834		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
6835		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
6836		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6837	}
6838	return NDR_ERR_SUCCESS;
6839}
6840
6841_PUBLIC_ void ndr_print_samr_CreateUser(struct ndr_print *ndr, const char *name, int flags, const struct samr_CreateUser *r)
6842{
6843	ndr_print_struct(ndr, name, "samr_CreateUser");
6844	ndr->depth++;
6845	if (flags & NDR_SET_VALUES) {
6846		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6847	}
6848	if (flags & NDR_IN) {
6849		ndr_print_struct(ndr, "in", "samr_CreateUser");
6850		ndr->depth++;
6851		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
6852		ndr->depth++;
6853		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
6854		ndr->depth--;
6855		ndr_print_ptr(ndr, "account_name", r->in.account_name);
6856		ndr->depth++;
6857		ndr_print_lsa_String(ndr, "account_name", r->in.account_name);
6858		ndr->depth--;
6859		ndr_print_samr_UserAccessMask(ndr, "access_mask", r->in.access_mask);
6860		ndr->depth--;
6861	}
6862	if (flags & NDR_OUT) {
6863		ndr_print_struct(ndr, "out", "samr_CreateUser");
6864		ndr->depth++;
6865		ndr_print_ptr(ndr, "user_handle", r->out.user_handle);
6866		ndr->depth++;
6867		ndr_print_policy_handle(ndr, "user_handle", r->out.user_handle);
6868		ndr->depth--;
6869		ndr_print_ptr(ndr, "rid", r->out.rid);
6870		ndr->depth++;
6871		ndr_print_uint32(ndr, "rid", *r->out.rid);
6872		ndr->depth--;
6873		ndr_print_NTSTATUS(ndr, "result", r->out.result);
6874		ndr->depth--;
6875	}
6876	ndr->depth--;
6877}
6878
6879static enum ndr_err_code ndr_push_samr_EnumDomainUsers(struct ndr_push *ndr, int flags, const struct samr_EnumDomainUsers *r)
6880{
6881	if (flags & NDR_IN) {
6882		if (r->in.domain_handle == NULL) {
6883			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6884		}
6885		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6886		if (r->in.resume_handle == NULL) {
6887			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6888		}
6889		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle));
6890		NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.acct_flags));
6891		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_size));
6892	}
6893	if (flags & NDR_OUT) {
6894		if (r->out.resume_handle == NULL) {
6895			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6896		}
6897		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.resume_handle));
6898		if (r->out.sam == NULL) {
6899			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6900		}
6901		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.sam));
6902		if (*r->out.sam) {
6903			NDR_CHECK(ndr_push_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
6904		}
6905		if (r->out.num_entries == NULL) {
6906			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6907		}
6908		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_entries));
6909		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6910	}
6911	return NDR_ERR_SUCCESS;
6912}
6913
6914static enum ndr_err_code ndr_pull_samr_EnumDomainUsers(struct ndr_pull *ndr, int flags, struct samr_EnumDomainUsers *r)
6915{
6916	uint32_t _ptr_sam;
6917	TALLOC_CTX *_mem_save_domain_handle_0;
6918	TALLOC_CTX *_mem_save_resume_handle_0;
6919	TALLOC_CTX *_mem_save_sam_0;
6920	TALLOC_CTX *_mem_save_sam_1;
6921	TALLOC_CTX *_mem_save_num_entries_0;
6922	if (flags & NDR_IN) {
6923		ZERO_STRUCT(r->out);
6924
6925		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6926			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
6927		}
6928		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6929		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6930		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6931		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6932		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6933			NDR_PULL_ALLOC(ndr, r->in.resume_handle);
6934		}
6935		_mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6936		NDR_PULL_SET_MEM_CTX(ndr, r->in.resume_handle, LIBNDR_FLAG_REF_ALLOC);
6937		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
6938		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
6939		NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.acct_flags));
6940		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_size));
6941		NDR_PULL_ALLOC(ndr, r->out.resume_handle);
6942		*r->out.resume_handle = *r->in.resume_handle;
6943		NDR_PULL_ALLOC(ndr, r->out.sam);
6944		ZERO_STRUCTP(r->out.sam);
6945		NDR_PULL_ALLOC(ndr, r->out.num_entries);
6946		ZERO_STRUCTP(r->out.num_entries);
6947	}
6948	if (flags & NDR_OUT) {
6949		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6950			NDR_PULL_ALLOC(ndr, r->out.resume_handle);
6951		}
6952		_mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6953		NDR_PULL_SET_MEM_CTX(ndr, r->out.resume_handle, LIBNDR_FLAG_REF_ALLOC);
6954		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.resume_handle));
6955		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
6956		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6957			NDR_PULL_ALLOC(ndr, r->out.sam);
6958		}
6959		_mem_save_sam_0 = NDR_PULL_GET_MEM_CTX(ndr);
6960		NDR_PULL_SET_MEM_CTX(ndr, r->out.sam, LIBNDR_FLAG_REF_ALLOC);
6961		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam));
6962		if (_ptr_sam) {
6963			NDR_PULL_ALLOC(ndr, *r->out.sam);
6964		} else {
6965			*r->out.sam = NULL;
6966		}
6967		if (*r->out.sam) {
6968			_mem_save_sam_1 = NDR_PULL_GET_MEM_CTX(ndr);
6969			NDR_PULL_SET_MEM_CTX(ndr, *r->out.sam, 0);
6970			NDR_CHECK(ndr_pull_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
6971			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_1, 0);
6972		}
6973		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_0, LIBNDR_FLAG_REF_ALLOC);
6974		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6975			NDR_PULL_ALLOC(ndr, r->out.num_entries);
6976		}
6977		_mem_save_num_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
6978		NDR_PULL_SET_MEM_CTX(ndr, r->out.num_entries, LIBNDR_FLAG_REF_ALLOC);
6979		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_entries));
6980		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_entries_0, LIBNDR_FLAG_REF_ALLOC);
6981		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6982	}
6983	return NDR_ERR_SUCCESS;
6984}
6985
6986_PUBLIC_ void ndr_print_samr_EnumDomainUsers(struct ndr_print *ndr, const char *name, int flags, const struct samr_EnumDomainUsers *r)
6987{
6988	ndr_print_struct(ndr, name, "samr_EnumDomainUsers");
6989	ndr->depth++;
6990	if (flags & NDR_SET_VALUES) {
6991		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6992	}
6993	if (flags & NDR_IN) {
6994		ndr_print_struct(ndr, "in", "samr_EnumDomainUsers");
6995		ndr->depth++;
6996		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
6997		ndr->depth++;
6998		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
6999		ndr->depth--;
7000		ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
7001		ndr->depth++;
7002		ndr_print_uint32(ndr, "resume_handle", *r->in.resume_handle);
7003		ndr->depth--;
7004		ndr_print_samr_AcctFlags(ndr, "acct_flags", r->in.acct_flags);
7005		ndr_print_uint32(ndr, "max_size", r->in.max_size);
7006		ndr->depth--;
7007	}
7008	if (flags & NDR_OUT) {
7009		ndr_print_struct(ndr, "out", "samr_EnumDomainUsers");
7010		ndr->depth++;
7011		ndr_print_ptr(ndr, "resume_handle", r->out.resume_handle);
7012		ndr->depth++;
7013		ndr_print_uint32(ndr, "resume_handle", *r->out.resume_handle);
7014		ndr->depth--;
7015		ndr_print_ptr(ndr, "sam", r->out.sam);
7016		ndr->depth++;
7017		ndr_print_ptr(ndr, "sam", *r->out.sam);
7018		ndr->depth++;
7019		if (*r->out.sam) {
7020			ndr_print_samr_SamArray(ndr, "sam", *r->out.sam);
7021		}
7022		ndr->depth--;
7023		ndr->depth--;
7024		ndr_print_ptr(ndr, "num_entries", r->out.num_entries);
7025		ndr->depth++;
7026		ndr_print_uint32(ndr, "num_entries", *r->out.num_entries);
7027		ndr->depth--;
7028		ndr_print_NTSTATUS(ndr, "result", r->out.result);
7029		ndr->depth--;
7030	}
7031	ndr->depth--;
7032}
7033
7034static enum ndr_err_code ndr_push_samr_CreateDomAlias(struct ndr_push *ndr, int flags, const struct samr_CreateDomAlias *r)
7035{
7036	if (flags & NDR_IN) {
7037		if (r->in.domain_handle == NULL) {
7038			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7039		}
7040		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7041		if (r->in.alias_name == NULL) {
7042			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7043		}
7044		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.alias_name));
7045		NDR_CHECK(ndr_push_samr_AliasAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
7046	}
7047	if (flags & NDR_OUT) {
7048		if (r->out.alias_handle == NULL) {
7049			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7050		}
7051		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.alias_handle));
7052		if (r->out.rid == NULL) {
7053			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7054		}
7055		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
7056		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7057	}
7058	return NDR_ERR_SUCCESS;
7059}
7060
7061static enum ndr_err_code ndr_pull_samr_CreateDomAlias(struct ndr_pull *ndr, int flags, struct samr_CreateDomAlias *r)
7062{
7063	TALLOC_CTX *_mem_save_domain_handle_0;
7064	TALLOC_CTX *_mem_save_alias_name_0;
7065	TALLOC_CTX *_mem_save_alias_handle_0;
7066	TALLOC_CTX *_mem_save_rid_0;
7067	if (flags & NDR_IN) {
7068		ZERO_STRUCT(r->out);
7069
7070		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7071			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
7072		}
7073		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7074		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
7075		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7076		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
7077		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7078			NDR_PULL_ALLOC(ndr, r->in.alias_name);
7079		}
7080		_mem_save_alias_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7081		NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_name, LIBNDR_FLAG_REF_ALLOC);
7082		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.alias_name));
7083		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_name_0, LIBNDR_FLAG_REF_ALLOC);
7084		NDR_CHECK(ndr_pull_samr_AliasAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
7085		NDR_PULL_ALLOC(ndr, r->out.alias_handle);
7086		ZERO_STRUCTP(r->out.alias_handle);
7087		NDR_PULL_ALLOC(ndr, r->out.rid);
7088		ZERO_STRUCTP(r->out.rid);
7089	}
7090	if (flags & NDR_OUT) {
7091		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7092			NDR_PULL_ALLOC(ndr, r->out.alias_handle);
7093		}
7094		_mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7095		NDR_PULL_SET_MEM_CTX(ndr, r->out.alias_handle, LIBNDR_FLAG_REF_ALLOC);
7096		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.alias_handle));
7097		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
7098		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7099			NDR_PULL_ALLOC(ndr, r->out.rid);
7100		}
7101		_mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7102		NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
7103		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
7104		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
7105		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7106	}
7107	return NDR_ERR_SUCCESS;
7108}
7109
7110_PUBLIC_ void ndr_print_samr_CreateDomAlias(struct ndr_print *ndr, const char *name, int flags, const struct samr_CreateDomAlias *r)
7111{
7112	ndr_print_struct(ndr, name, "samr_CreateDomAlias");
7113	ndr->depth++;
7114	if (flags & NDR_SET_VALUES) {
7115		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7116	}
7117	if (flags & NDR_IN) {
7118		ndr_print_struct(ndr, "in", "samr_CreateDomAlias");
7119		ndr->depth++;
7120		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
7121		ndr->depth++;
7122		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
7123		ndr->depth--;
7124		ndr_print_ptr(ndr, "alias_name", r->in.alias_name);
7125		ndr->depth++;
7126		ndr_print_lsa_String(ndr, "alias_name", r->in.alias_name);
7127		ndr->depth--;
7128		ndr_print_samr_AliasAccessMask(ndr, "access_mask", r->in.access_mask);
7129		ndr->depth--;
7130	}
7131	if (flags & NDR_OUT) {
7132		ndr_print_struct(ndr, "out", "samr_CreateDomAlias");
7133		ndr->depth++;
7134		ndr_print_ptr(ndr, "alias_handle", r->out.alias_handle);
7135		ndr->depth++;
7136		ndr_print_policy_handle(ndr, "alias_handle", r->out.alias_handle);
7137		ndr->depth--;
7138		ndr_print_ptr(ndr, "rid", r->out.rid);
7139		ndr->depth++;
7140		ndr_print_uint32(ndr, "rid", *r->out.rid);
7141		ndr->depth--;
7142		ndr_print_NTSTATUS(ndr, "result", r->out.result);
7143		ndr->depth--;
7144	}
7145	ndr->depth--;
7146}
7147
7148static enum ndr_err_code ndr_push_samr_EnumDomainAliases(struct ndr_push *ndr, int flags, const struct samr_EnumDomainAliases *r)
7149{
7150	if (flags & NDR_IN) {
7151		if (r->in.domain_handle == NULL) {
7152			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7153		}
7154		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7155		if (r->in.resume_handle == NULL) {
7156			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7157		}
7158		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle));
7159		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_size));
7160	}
7161	if (flags & NDR_OUT) {
7162		if (r->out.resume_handle == NULL) {
7163			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7164		}
7165		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.resume_handle));
7166		if (r->out.sam == NULL) {
7167			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7168		}
7169		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.sam));
7170		if (*r->out.sam) {
7171			NDR_CHECK(ndr_push_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
7172		}
7173		if (r->out.num_entries == NULL) {
7174			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7175		}
7176		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_entries));
7177		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7178	}
7179	return NDR_ERR_SUCCESS;
7180}
7181
7182static enum ndr_err_code ndr_pull_samr_EnumDomainAliases(struct ndr_pull *ndr, int flags, struct samr_EnumDomainAliases *r)
7183{
7184	uint32_t _ptr_sam;
7185	TALLOC_CTX *_mem_save_domain_handle_0;
7186	TALLOC_CTX *_mem_save_resume_handle_0;
7187	TALLOC_CTX *_mem_save_sam_0;
7188	TALLOC_CTX *_mem_save_sam_1;
7189	TALLOC_CTX *_mem_save_num_entries_0;
7190	if (flags & NDR_IN) {
7191		ZERO_STRUCT(r->out);
7192
7193		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7194			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
7195		}
7196		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7197		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
7198		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7199		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
7200		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7201			NDR_PULL_ALLOC(ndr, r->in.resume_handle);
7202		}
7203		_mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7204		NDR_PULL_SET_MEM_CTX(ndr, r->in.resume_handle, LIBNDR_FLAG_REF_ALLOC);
7205		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
7206		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
7207		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_size));
7208		NDR_PULL_ALLOC(ndr, r->out.resume_handle);
7209		*r->out.resume_handle = *r->in.resume_handle;
7210		NDR_PULL_ALLOC(ndr, r->out.sam);
7211		ZERO_STRUCTP(r->out.sam);
7212		NDR_PULL_ALLOC(ndr, r->out.num_entries);
7213		ZERO_STRUCTP(r->out.num_entries);
7214	}
7215	if (flags & NDR_OUT) {
7216		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7217			NDR_PULL_ALLOC(ndr, r->out.resume_handle);
7218		}
7219		_mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7220		NDR_PULL_SET_MEM_CTX(ndr, r->out.resume_handle, LIBNDR_FLAG_REF_ALLOC);
7221		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.resume_handle));
7222		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
7223		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7224			NDR_PULL_ALLOC(ndr, r->out.sam);
7225		}
7226		_mem_save_sam_0 = NDR_PULL_GET_MEM_CTX(ndr);
7227		NDR_PULL_SET_MEM_CTX(ndr, r->out.sam, LIBNDR_FLAG_REF_ALLOC);
7228		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam));
7229		if (_ptr_sam) {
7230			NDR_PULL_ALLOC(ndr, *r->out.sam);
7231		} else {
7232			*r->out.sam = NULL;
7233		}
7234		if (*r->out.sam) {
7235			_mem_save_sam_1 = NDR_PULL_GET_MEM_CTX(ndr);
7236			NDR_PULL_SET_MEM_CTX(ndr, *r->out.sam, 0);
7237			NDR_CHECK(ndr_pull_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
7238			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_1, 0);
7239		}
7240		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_0, LIBNDR_FLAG_REF_ALLOC);
7241		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7242			NDR_PULL_ALLOC(ndr, r->out.num_entries);
7243		}
7244		_mem_save_num_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
7245		NDR_PULL_SET_MEM_CTX(ndr, r->out.num_entries, LIBNDR_FLAG_REF_ALLOC);
7246		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_entries));
7247		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_entries_0, LIBNDR_FLAG_REF_ALLOC);
7248		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7249	}
7250	return NDR_ERR_SUCCESS;
7251}
7252
7253_PUBLIC_ void ndr_print_samr_EnumDomainAliases(struct ndr_print *ndr, const char *name, int flags, const struct samr_EnumDomainAliases *r)
7254{
7255	ndr_print_struct(ndr, name, "samr_EnumDomainAliases");
7256	ndr->depth++;
7257	if (flags & NDR_SET_VALUES) {
7258		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7259	}
7260	if (flags & NDR_IN) {
7261		ndr_print_struct(ndr, "in", "samr_EnumDomainAliases");
7262		ndr->depth++;
7263		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
7264		ndr->depth++;
7265		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
7266		ndr->depth--;
7267		ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
7268		ndr->depth++;
7269		ndr_print_uint32(ndr, "resume_handle", *r->in.resume_handle);
7270		ndr->depth--;
7271		ndr_print_uint32(ndr, "max_size", r->in.max_size);
7272		ndr->depth--;
7273	}
7274	if (flags & NDR_OUT) {
7275		ndr_print_struct(ndr, "out", "samr_EnumDomainAliases");
7276		ndr->depth++;
7277		ndr_print_ptr(ndr, "resume_handle", r->out.resume_handle);
7278		ndr->depth++;
7279		ndr_print_uint32(ndr, "resume_handle", *r->out.resume_handle);
7280		ndr->depth--;
7281		ndr_print_ptr(ndr, "sam", r->out.sam);
7282		ndr->depth++;
7283		ndr_print_ptr(ndr, "sam", *r->out.sam);
7284		ndr->depth++;
7285		if (*r->out.sam) {
7286			ndr_print_samr_SamArray(ndr, "sam", *r->out.sam);
7287		}
7288		ndr->depth--;
7289		ndr->depth--;
7290		ndr_print_ptr(ndr, "num_entries", r->out.num_entries);
7291		ndr->depth++;
7292		ndr_print_uint32(ndr, "num_entries", *r->out.num_entries);
7293		ndr->depth--;
7294		ndr_print_NTSTATUS(ndr, "result", r->out.result);
7295		ndr->depth--;
7296	}
7297	ndr->depth--;
7298}
7299
7300static enum ndr_err_code ndr_push_samr_GetAliasMembership(struct ndr_push *ndr, int flags, const struct samr_GetAliasMembership *r)
7301{
7302	if (flags & NDR_IN) {
7303		if (r->in.domain_handle == NULL) {
7304			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7305		}
7306		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7307		if (r->in.sids == NULL) {
7308			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7309		}
7310		NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
7311	}
7312	if (flags & NDR_OUT) {
7313		if (r->out.rids == NULL) {
7314			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7315		}
7316		NDR_CHECK(ndr_push_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rids));
7317		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7318	}
7319	return NDR_ERR_SUCCESS;
7320}
7321
7322static enum ndr_err_code ndr_pull_samr_GetAliasMembership(struct ndr_pull *ndr, int flags, struct samr_GetAliasMembership *r)
7323{
7324	TALLOC_CTX *_mem_save_domain_handle_0;
7325	TALLOC_CTX *_mem_save_sids_0;
7326	TALLOC_CTX *_mem_save_rids_0;
7327	if (flags & NDR_IN) {
7328		ZERO_STRUCT(r->out);
7329
7330		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7331			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
7332		}
7333		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7334		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
7335		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7336		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
7337		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7338			NDR_PULL_ALLOC(ndr, r->in.sids);
7339		}
7340		_mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
7341		NDR_PULL_SET_MEM_CTX(ndr, r->in.sids, LIBNDR_FLAG_REF_ALLOC);
7342		NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
7343		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, LIBNDR_FLAG_REF_ALLOC);
7344		NDR_PULL_ALLOC(ndr, r->out.rids);
7345		ZERO_STRUCTP(r->out.rids);
7346	}
7347	if (flags & NDR_OUT) {
7348		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7349			NDR_PULL_ALLOC(ndr, r->out.rids);
7350		}
7351		_mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
7352		NDR_PULL_SET_MEM_CTX(ndr, r->out.rids, LIBNDR_FLAG_REF_ALLOC);
7353		NDR_CHECK(ndr_pull_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rids));
7354		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, LIBNDR_FLAG_REF_ALLOC);
7355		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7356	}
7357	return NDR_ERR_SUCCESS;
7358}
7359
7360_PUBLIC_ void ndr_print_samr_GetAliasMembership(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetAliasMembership *r)
7361{
7362	ndr_print_struct(ndr, name, "samr_GetAliasMembership");
7363	ndr->depth++;
7364	if (flags & NDR_SET_VALUES) {
7365		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7366	}
7367	if (flags & NDR_IN) {
7368		ndr_print_struct(ndr, "in", "samr_GetAliasMembership");
7369		ndr->depth++;
7370		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
7371		ndr->depth++;
7372		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
7373		ndr->depth--;
7374		ndr_print_ptr(ndr, "sids", r->in.sids);
7375		ndr->depth++;
7376		ndr_print_lsa_SidArray(ndr, "sids", r->in.sids);
7377		ndr->depth--;
7378		ndr->depth--;
7379	}
7380	if (flags & NDR_OUT) {
7381		ndr_print_struct(ndr, "out", "samr_GetAliasMembership");
7382		ndr->depth++;
7383		ndr_print_ptr(ndr, "rids", r->out.rids);
7384		ndr->depth++;
7385		ndr_print_samr_Ids(ndr, "rids", r->out.rids);
7386		ndr->depth--;
7387		ndr_print_NTSTATUS(ndr, "result", r->out.result);
7388		ndr->depth--;
7389	}
7390	ndr->depth--;
7391}
7392
7393_PUBLIC_ enum ndr_err_code ndr_push_samr_LookupNames(struct ndr_push *ndr, int flags, const struct samr_LookupNames *r)
7394{
7395	uint32_t cntr_names_0;
7396	if (flags & NDR_IN) {
7397		if (r->in.domain_handle == NULL) {
7398			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7399		}
7400		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7401		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_names));
7402		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 1000));
7403		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7404		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.num_names));
7405		for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) {
7406			NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->in.names[cntr_names_0]));
7407		}
7408		for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) {
7409			NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->in.names[cntr_names_0]));
7410		}
7411	}
7412	if (flags & NDR_OUT) {
7413		if (r->out.rids == NULL) {
7414			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7415		}
7416		NDR_CHECK(ndr_push_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rids));
7417		if (r->out.types == NULL) {
7418			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7419		}
7420		NDR_CHECK(ndr_push_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.types));
7421		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7422	}
7423	return NDR_ERR_SUCCESS;
7424}
7425
7426_PUBLIC_ enum ndr_err_code ndr_pull_samr_LookupNames(struct ndr_pull *ndr, int flags, struct samr_LookupNames *r)
7427{
7428	uint32_t cntr_names_0;
7429	TALLOC_CTX *_mem_save_domain_handle_0;
7430	TALLOC_CTX *_mem_save_names_0;
7431	TALLOC_CTX *_mem_save_rids_0;
7432	TALLOC_CTX *_mem_save_types_0;
7433	if (flags & NDR_IN) {
7434		ZERO_STRUCT(r->out);
7435
7436		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7437			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
7438		}
7439		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7440		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
7441		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7442		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
7443		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_names));
7444		if (r->in.num_names > 1000) {
7445			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7446		}
7447		NDR_CHECK(ndr_pull_array_size(ndr, &r->in.names));
7448		NDR_CHECK(ndr_pull_array_length(ndr, &r->in.names));
7449		if (ndr_get_array_length(ndr, &r->in.names) > ndr_get_array_size(ndr, &r->in.names)) {
7450			return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.names), ndr_get_array_length(ndr, &r->in.names));
7451		}
7452		NDR_PULL_ALLOC_N(ndr, r->in.names, ndr_get_array_size(ndr, &r->in.names));
7453		_mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
7454		NDR_PULL_SET_MEM_CTX(ndr, r->in.names, 0);
7455		for (cntr_names_0 = 0; cntr_names_0 < ndr_get_array_length(ndr, &r->in.names); cntr_names_0++) {
7456			NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->in.names[cntr_names_0]));
7457		}
7458		for (cntr_names_0 = 0; cntr_names_0 < ndr_get_array_length(ndr, &r->in.names); cntr_names_0++) {
7459			NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->in.names[cntr_names_0]));
7460		}
7461		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0);
7462		NDR_PULL_ALLOC(ndr, r->out.rids);
7463		ZERO_STRUCTP(r->out.rids);
7464		NDR_PULL_ALLOC(ndr, r->out.types);
7465		ZERO_STRUCTP(r->out.types);
7466		if (r->in.names) {
7467			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.names, 1000));
7468		}
7469		if (r->in.names) {
7470			NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.names, r->in.num_names));
7471		}
7472	}
7473	if (flags & NDR_OUT) {
7474		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7475			NDR_PULL_ALLOC(ndr, r->out.rids);
7476		}
7477		_mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
7478		NDR_PULL_SET_MEM_CTX(ndr, r->out.rids, LIBNDR_FLAG_REF_ALLOC);
7479		NDR_CHECK(ndr_pull_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rids));
7480		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, LIBNDR_FLAG_REF_ALLOC);
7481		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7482			NDR_PULL_ALLOC(ndr, r->out.types);
7483		}
7484		_mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
7485		NDR_PULL_SET_MEM_CTX(ndr, r->out.types, LIBNDR_FLAG_REF_ALLOC);
7486		NDR_CHECK(ndr_pull_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.types));
7487		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, LIBNDR_FLAG_REF_ALLOC);
7488		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7489	}
7490	return NDR_ERR_SUCCESS;
7491}
7492
7493_PUBLIC_ void ndr_print_samr_LookupNames(struct ndr_print *ndr, const char *name, int flags, const struct samr_LookupNames *r)
7494{
7495	uint32_t cntr_names_0;
7496	ndr_print_struct(ndr, name, "samr_LookupNames");
7497	ndr->depth++;
7498	if (flags & NDR_SET_VALUES) {
7499		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7500	}
7501	if (flags & NDR_IN) {
7502		ndr_print_struct(ndr, "in", "samr_LookupNames");
7503		ndr->depth++;
7504		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
7505		ndr->depth++;
7506		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
7507		ndr->depth--;
7508		ndr_print_uint32(ndr, "num_names", r->in.num_names);
7509		ndr->print(ndr, "%s: ARRAY(%d)", "names", (int)r->in.num_names);
7510		ndr->depth++;
7511		for (cntr_names_0=0;cntr_names_0<r->in.num_names;cntr_names_0++) {
7512			char *idx_0=NULL;
7513			if (asprintf(&idx_0, "[%d]", cntr_names_0) != -1) {
7514				ndr_print_lsa_String(ndr, "names", &r->in.names[cntr_names_0]);
7515				free(idx_0);
7516			}
7517		}
7518		ndr->depth--;
7519		ndr->depth--;
7520	}
7521	if (flags & NDR_OUT) {
7522		ndr_print_struct(ndr, "out", "samr_LookupNames");
7523		ndr->depth++;
7524		ndr_print_ptr(ndr, "rids", r->out.rids);
7525		ndr->depth++;
7526		ndr_print_samr_Ids(ndr, "rids", r->out.rids);
7527		ndr->depth--;
7528		ndr_print_ptr(ndr, "types", r->out.types);
7529		ndr->depth++;
7530		ndr_print_samr_Ids(ndr, "types", r->out.types);
7531		ndr->depth--;
7532		ndr_print_NTSTATUS(ndr, "result", r->out.result);
7533		ndr->depth--;
7534	}
7535	ndr->depth--;
7536}
7537
7538static enum ndr_err_code ndr_push_samr_LookupRids(struct ndr_push *ndr, int flags, const struct samr_LookupRids *r)
7539{
7540	uint32_t cntr_rids_0;
7541	if (flags & NDR_IN) {
7542		if (r->in.domain_handle == NULL) {
7543			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7544		}
7545		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7546		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_rids));
7547		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 1000));
7548		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7549		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.num_rids));
7550		for (cntr_rids_0 = 0; cntr_rids_0 < r->in.num_rids; cntr_rids_0++) {
7551			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.rids[cntr_rids_0]));
7552		}
7553	}
7554	if (flags & NDR_OUT) {
7555		if (r->out.names == NULL) {
7556			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7557		}
7558		NDR_CHECK(ndr_push_lsa_Strings(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.names));
7559		if (r->out.types == NULL) {
7560			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7561		}
7562		NDR_CHECK(ndr_push_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.types));
7563		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7564	}
7565	return NDR_ERR_SUCCESS;
7566}
7567
7568static enum ndr_err_code ndr_pull_samr_LookupRids(struct ndr_pull *ndr, int flags, struct samr_LookupRids *r)
7569{
7570	uint32_t cntr_rids_0;
7571	TALLOC_CTX *_mem_save_domain_handle_0;
7572	TALLOC_CTX *_mem_save_rids_0;
7573	TALLOC_CTX *_mem_save_names_0;
7574	TALLOC_CTX *_mem_save_types_0;
7575	if (flags & NDR_IN) {
7576		ZERO_STRUCT(r->out);
7577
7578		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7579			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
7580		}
7581		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7582		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
7583		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7584		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
7585		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_rids));
7586		if (r->in.num_rids > 1000) {
7587			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7588		}
7589		NDR_CHECK(ndr_pull_array_size(ndr, &r->in.rids));
7590		NDR_CHECK(ndr_pull_array_length(ndr, &r->in.rids));
7591		if (ndr_get_array_length(ndr, &r->in.rids) > ndr_get_array_size(ndr, &r->in.rids)) {
7592			return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.rids), ndr_get_array_length(ndr, &r->in.rids));
7593		}
7594		NDR_PULL_ALLOC_N(ndr, r->in.rids, ndr_get_array_size(ndr, &r->in.rids));
7595		_mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
7596		NDR_PULL_SET_MEM_CTX(ndr, r->in.rids, 0);
7597		for (cntr_rids_0 = 0; cntr_rids_0 < ndr_get_array_length(ndr, &r->in.rids); cntr_rids_0++) {
7598			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rids[cntr_rids_0]));
7599		}
7600		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
7601		NDR_PULL_ALLOC(ndr, r->out.names);
7602		ZERO_STRUCTP(r->out.names);
7603		NDR_PULL_ALLOC(ndr, r->out.types);
7604		ZERO_STRUCTP(r->out.types);
7605		if (r->in.rids) {
7606			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.rids, 1000));
7607		}
7608		if (r->in.rids) {
7609			NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.rids, r->in.num_rids));
7610		}
7611	}
7612	if (flags & NDR_OUT) {
7613		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7614			NDR_PULL_ALLOC(ndr, r->out.names);
7615		}
7616		_mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
7617		NDR_PULL_SET_MEM_CTX(ndr, r->out.names, LIBNDR_FLAG_REF_ALLOC);
7618		NDR_CHECK(ndr_pull_lsa_Strings(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.names));
7619		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, LIBNDR_FLAG_REF_ALLOC);
7620		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7621			NDR_PULL_ALLOC(ndr, r->out.types);
7622		}
7623		_mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
7624		NDR_PULL_SET_MEM_CTX(ndr, r->out.types, LIBNDR_FLAG_REF_ALLOC);
7625		NDR_CHECK(ndr_pull_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.types));
7626		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, LIBNDR_FLAG_REF_ALLOC);
7627		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7628	}
7629	return NDR_ERR_SUCCESS;
7630}
7631
7632_PUBLIC_ void ndr_print_samr_LookupRids(struct ndr_print *ndr, const char *name, int flags, const struct samr_LookupRids *r)
7633{
7634	uint32_t cntr_rids_0;
7635	ndr_print_struct(ndr, name, "samr_LookupRids");
7636	ndr->depth++;
7637	if (flags & NDR_SET_VALUES) {
7638		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7639	}
7640	if (flags & NDR_IN) {
7641		ndr_print_struct(ndr, "in", "samr_LookupRids");
7642		ndr->depth++;
7643		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
7644		ndr->depth++;
7645		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
7646		ndr->depth--;
7647		ndr_print_uint32(ndr, "num_rids", r->in.num_rids);
7648		ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->in.num_rids);
7649		ndr->depth++;
7650		for (cntr_rids_0=0;cntr_rids_0<r->in.num_rids;cntr_rids_0++) {
7651			char *idx_0=NULL;
7652			if (asprintf(&idx_0, "[%d]", cntr_rids_0) != -1) {
7653				ndr_print_uint32(ndr, "rids", r->in.rids[cntr_rids_0]);
7654				free(idx_0);
7655			}
7656		}
7657		ndr->depth--;
7658		ndr->depth--;
7659	}
7660	if (flags & NDR_OUT) {
7661		ndr_print_struct(ndr, "out", "samr_LookupRids");
7662		ndr->depth++;
7663		ndr_print_ptr(ndr, "names", r->out.names);
7664		ndr->depth++;
7665		ndr_print_lsa_Strings(ndr, "names", r->out.names);
7666		ndr->depth--;
7667		ndr_print_ptr(ndr, "types", r->out.types);
7668		ndr->depth++;
7669		ndr_print_samr_Ids(ndr, "types", r->out.types);
7670		ndr->depth--;
7671		ndr_print_NTSTATUS(ndr, "result", r->out.result);
7672		ndr->depth--;
7673	}
7674	ndr->depth--;
7675}
7676
7677static enum ndr_err_code ndr_push_samr_OpenGroup(struct ndr_push *ndr, int flags, const struct samr_OpenGroup *r)
7678{
7679	if (flags & NDR_IN) {
7680		if (r->in.domain_handle == NULL) {
7681			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7682		}
7683		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7684		NDR_CHECK(ndr_push_samr_GroupAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
7685		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.rid));
7686	}
7687	if (flags & NDR_OUT) {
7688		if (r->out.group_handle == NULL) {
7689			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7690		}
7691		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.group_handle));
7692		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7693	}
7694	return NDR_ERR_SUCCESS;
7695}
7696
7697static enum ndr_err_code ndr_pull_samr_OpenGroup(struct ndr_pull *ndr, int flags, struct samr_OpenGroup *r)
7698{
7699	TALLOC_CTX *_mem_save_domain_handle_0;
7700	TALLOC_CTX *_mem_save_group_handle_0;
7701	if (flags & NDR_IN) {
7702		ZERO_STRUCT(r->out);
7703
7704		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7705			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
7706		}
7707		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7708		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
7709		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7710		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
7711		NDR_CHECK(ndr_pull_samr_GroupAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
7712		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rid));
7713		NDR_PULL_ALLOC(ndr, r->out.group_handle);
7714		ZERO_STRUCTP(r->out.group_handle);
7715	}
7716	if (flags & NDR_OUT) {
7717		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7718			NDR_PULL_ALLOC(ndr, r->out.group_handle);
7719		}
7720		_mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7721		NDR_PULL_SET_MEM_CTX(ndr, r->out.group_handle, LIBNDR_FLAG_REF_ALLOC);
7722		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.group_handle));
7723		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
7724		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7725	}
7726	return NDR_ERR_SUCCESS;
7727}
7728
7729_PUBLIC_ void ndr_print_samr_OpenGroup(struct ndr_print *ndr, const char *name, int flags, const struct samr_OpenGroup *r)
7730{
7731	ndr_print_struct(ndr, name, "samr_OpenGroup");
7732	ndr->depth++;
7733	if (flags & NDR_SET_VALUES) {
7734		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7735	}
7736	if (flags & NDR_IN) {
7737		ndr_print_struct(ndr, "in", "samr_OpenGroup");
7738		ndr->depth++;
7739		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
7740		ndr->depth++;
7741		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
7742		ndr->depth--;
7743		ndr_print_samr_GroupAccessMask(ndr, "access_mask", r->in.access_mask);
7744		ndr_print_uint32(ndr, "rid", r->in.rid);
7745		ndr->depth--;
7746	}
7747	if (flags & NDR_OUT) {
7748		ndr_print_struct(ndr, "out", "samr_OpenGroup");
7749		ndr->depth++;
7750		ndr_print_ptr(ndr, "group_handle", r->out.group_handle);
7751		ndr->depth++;
7752		ndr_print_policy_handle(ndr, "group_handle", r->out.group_handle);
7753		ndr->depth--;
7754		ndr_print_NTSTATUS(ndr, "result", r->out.result);
7755		ndr->depth--;
7756	}
7757	ndr->depth--;
7758}
7759
7760static enum ndr_err_code ndr_push_samr_QueryGroupInfo(struct ndr_push *ndr, int flags, const struct samr_QueryGroupInfo *r)
7761{
7762	if (flags & NDR_IN) {
7763		if (r->in.group_handle == NULL) {
7764			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7765		}
7766		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7767		NDR_CHECK(ndr_push_samr_GroupInfoEnum(ndr, NDR_SCALARS, r->in.level));
7768	}
7769	if (flags & NDR_OUT) {
7770		if (r->out.info == NULL) {
7771			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7772		}
7773		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
7774		if (*r->out.info) {
7775			NDR_CHECK(ndr_push_set_switch_value(ndr, *r->out.info, r->in.level));
7776			NDR_CHECK(ndr_push_samr_GroupInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
7777		}
7778		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7779	}
7780	return NDR_ERR_SUCCESS;
7781}
7782
7783static enum ndr_err_code ndr_pull_samr_QueryGroupInfo(struct ndr_pull *ndr, int flags, struct samr_QueryGroupInfo *r)
7784{
7785	uint32_t _ptr_info;
7786	TALLOC_CTX *_mem_save_group_handle_0;
7787	TALLOC_CTX *_mem_save_info_0;
7788	TALLOC_CTX *_mem_save_info_1;
7789	if (flags & NDR_IN) {
7790		ZERO_STRUCT(r->out);
7791
7792		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7793			NDR_PULL_ALLOC(ndr, r->in.group_handle);
7794		}
7795		_mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7796		NDR_PULL_SET_MEM_CTX(ndr, r->in.group_handle, LIBNDR_FLAG_REF_ALLOC);
7797		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7798		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
7799		NDR_CHECK(ndr_pull_samr_GroupInfoEnum(ndr, NDR_SCALARS, &r->in.level));
7800		NDR_PULL_ALLOC(ndr, r->out.info);
7801		ZERO_STRUCTP(r->out.info);
7802	}
7803	if (flags & NDR_OUT) {
7804		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7805			NDR_PULL_ALLOC(ndr, r->out.info);
7806		}
7807		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7808		NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
7809		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
7810		if (_ptr_info) {
7811			NDR_PULL_ALLOC(ndr, *r->out.info);
7812		} else {
7813			*r->out.info = NULL;
7814		}
7815		if (*r->out.info) {
7816			_mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
7817			NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
7818			NDR_CHECK(ndr_pull_set_switch_value(ndr, *r->out.info, r->in.level));
7819			NDR_CHECK(ndr_pull_samr_GroupInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
7820			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
7821		}
7822		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
7823		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7824	}
7825	return NDR_ERR_SUCCESS;
7826}
7827
7828_PUBLIC_ void ndr_print_samr_QueryGroupInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryGroupInfo *r)
7829{
7830	ndr_print_struct(ndr, name, "samr_QueryGroupInfo");
7831	ndr->depth++;
7832	if (flags & NDR_SET_VALUES) {
7833		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7834	}
7835	if (flags & NDR_IN) {
7836		ndr_print_struct(ndr, "in", "samr_QueryGroupInfo");
7837		ndr->depth++;
7838		ndr_print_ptr(ndr, "group_handle", r->in.group_handle);
7839		ndr->depth++;
7840		ndr_print_policy_handle(ndr, "group_handle", r->in.group_handle);
7841		ndr->depth--;
7842		ndr_print_samr_GroupInfoEnum(ndr, "level", r->in.level);
7843		ndr->depth--;
7844	}
7845	if (flags & NDR_OUT) {
7846		ndr_print_struct(ndr, "out", "samr_QueryGroupInfo");
7847		ndr->depth++;
7848		ndr_print_ptr(ndr, "info", r->out.info);
7849		ndr->depth++;
7850		ndr_print_ptr(ndr, "info", *r->out.info);
7851		ndr->depth++;
7852		if (*r->out.info) {
7853			ndr_print_set_switch_value(ndr, *r->out.info, r->in.level);
7854			ndr_print_samr_GroupInfo(ndr, "info", *r->out.info);
7855		}
7856		ndr->depth--;
7857		ndr->depth--;
7858		ndr_print_NTSTATUS(ndr, "result", r->out.result);
7859		ndr->depth--;
7860	}
7861	ndr->depth--;
7862}
7863
7864static enum ndr_err_code ndr_push_samr_SetGroupInfo(struct ndr_push *ndr, int flags, const struct samr_SetGroupInfo *r)
7865{
7866	if (flags & NDR_IN) {
7867		if (r->in.group_handle == NULL) {
7868			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7869		}
7870		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7871		NDR_CHECK(ndr_push_samr_GroupInfoEnum(ndr, NDR_SCALARS, r->in.level));
7872		if (r->in.info == NULL) {
7873			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7874		}
7875		NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level));
7876		NDR_CHECK(ndr_push_samr_GroupInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
7877	}
7878	if (flags & NDR_OUT) {
7879		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7880	}
7881	return NDR_ERR_SUCCESS;
7882}
7883
7884static enum ndr_err_code ndr_pull_samr_SetGroupInfo(struct ndr_pull *ndr, int flags, struct samr_SetGroupInfo *r)
7885{
7886	TALLOC_CTX *_mem_save_group_handle_0;
7887	TALLOC_CTX *_mem_save_info_0;
7888	if (flags & NDR_IN) {
7889		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7890			NDR_PULL_ALLOC(ndr, r->in.group_handle);
7891		}
7892		_mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7893		NDR_PULL_SET_MEM_CTX(ndr, r->in.group_handle, LIBNDR_FLAG_REF_ALLOC);
7894		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7895		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
7896		NDR_CHECK(ndr_pull_samr_GroupInfoEnum(ndr, NDR_SCALARS, &r->in.level));
7897		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7898			NDR_PULL_ALLOC(ndr, r->in.info);
7899		}
7900		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7901		NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC);
7902		NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level));
7903		NDR_CHECK(ndr_pull_samr_GroupInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
7904		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
7905	}
7906	if (flags & NDR_OUT) {
7907		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7908	}
7909	return NDR_ERR_SUCCESS;
7910}
7911
7912_PUBLIC_ void ndr_print_samr_SetGroupInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetGroupInfo *r)
7913{
7914	ndr_print_struct(ndr, name, "samr_SetGroupInfo");
7915	ndr->depth++;
7916	if (flags & NDR_SET_VALUES) {
7917		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7918	}
7919	if (flags & NDR_IN) {
7920		ndr_print_struct(ndr, "in", "samr_SetGroupInfo");
7921		ndr->depth++;
7922		ndr_print_ptr(ndr, "group_handle", r->in.group_handle);
7923		ndr->depth++;
7924		ndr_print_policy_handle(ndr, "group_handle", r->in.group_handle);
7925		ndr->depth--;
7926		ndr_print_samr_GroupInfoEnum(ndr, "level", r->in.level);
7927		ndr_print_ptr(ndr, "info", r->in.info);
7928		ndr->depth++;
7929		ndr_print_set_switch_value(ndr, r->in.info, r->in.level);
7930		ndr_print_samr_GroupInfo(ndr, "info", r->in.info);
7931		ndr->depth--;
7932		ndr->depth--;
7933	}
7934	if (flags & NDR_OUT) {
7935		ndr_print_struct(ndr, "out", "samr_SetGroupInfo");
7936		ndr->depth++;
7937		ndr_print_NTSTATUS(ndr, "result", r->out.result);
7938		ndr->depth--;
7939	}
7940	ndr->depth--;
7941}
7942
7943static enum ndr_err_code ndr_push_samr_AddGroupMember(struct ndr_push *ndr, int flags, const struct samr_AddGroupMember *r)
7944{
7945	if (flags & NDR_IN) {
7946		if (r->in.group_handle == NULL) {
7947			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7948		}
7949		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7950		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.rid));
7951		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
7952	}
7953	if (flags & NDR_OUT) {
7954		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7955	}
7956	return NDR_ERR_SUCCESS;
7957}
7958
7959static enum ndr_err_code ndr_pull_samr_AddGroupMember(struct ndr_pull *ndr, int flags, struct samr_AddGroupMember *r)
7960{
7961	TALLOC_CTX *_mem_save_group_handle_0;
7962	if (flags & NDR_IN) {
7963		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7964			NDR_PULL_ALLOC(ndr, r->in.group_handle);
7965		}
7966		_mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7967		NDR_PULL_SET_MEM_CTX(ndr, r->in.group_handle, LIBNDR_FLAG_REF_ALLOC);
7968		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7969		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
7970		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rid));
7971		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
7972	}
7973	if (flags & NDR_OUT) {
7974		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7975	}
7976	return NDR_ERR_SUCCESS;
7977}
7978
7979_PUBLIC_ void ndr_print_samr_AddGroupMember(struct ndr_print *ndr, const char *name, int flags, const struct samr_AddGroupMember *r)
7980{
7981	ndr_print_struct(ndr, name, "samr_AddGroupMember");
7982	ndr->depth++;
7983	if (flags & NDR_SET_VALUES) {
7984		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7985	}
7986	if (flags & NDR_IN) {
7987		ndr_print_struct(ndr, "in", "samr_AddGroupMember");
7988		ndr->depth++;
7989		ndr_print_ptr(ndr, "group_handle", r->in.group_handle);
7990		ndr->depth++;
7991		ndr_print_policy_handle(ndr, "group_handle", r->in.group_handle);
7992		ndr->depth--;
7993		ndr_print_uint32(ndr, "rid", r->in.rid);
7994		ndr_print_uint32(ndr, "flags", r->in.flags);
7995		ndr->depth--;
7996	}
7997	if (flags & NDR_OUT) {
7998		ndr_print_struct(ndr, "out", "samr_AddGroupMember");
7999		ndr->depth++;
8000		ndr_print_NTSTATUS(ndr, "result", r->out.result);
8001		ndr->depth--;
8002	}
8003	ndr->depth--;
8004}
8005
8006static enum ndr_err_code ndr_push_samr_DeleteDomainGroup(struct ndr_push *ndr, int flags, const struct samr_DeleteDomainGroup *r)
8007{
8008	if (flags & NDR_IN) {
8009		if (r->in.group_handle == NULL) {
8010			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8011		}
8012		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
8013	}
8014	if (flags & NDR_OUT) {
8015		if (r->out.group_handle == NULL) {
8016			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8017		}
8018		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.group_handle));
8019		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8020	}
8021	return NDR_ERR_SUCCESS;
8022}
8023
8024static enum ndr_err_code ndr_pull_samr_DeleteDomainGroup(struct ndr_pull *ndr, int flags, struct samr_DeleteDomainGroup *r)
8025{
8026	TALLOC_CTX *_mem_save_group_handle_0;
8027	if (flags & NDR_IN) {
8028		ZERO_STRUCT(r->out);
8029
8030		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8031			NDR_PULL_ALLOC(ndr, r->in.group_handle);
8032		}
8033		_mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8034		NDR_PULL_SET_MEM_CTX(ndr, r->in.group_handle, LIBNDR_FLAG_REF_ALLOC);
8035		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
8036		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
8037		NDR_PULL_ALLOC(ndr, r->out.group_handle);
8038		*r->out.group_handle = *r->in.group_handle;
8039	}
8040	if (flags & NDR_OUT) {
8041		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8042			NDR_PULL_ALLOC(ndr, r->out.group_handle);
8043		}
8044		_mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8045		NDR_PULL_SET_MEM_CTX(ndr, r->out.group_handle, LIBNDR_FLAG_REF_ALLOC);
8046		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.group_handle));
8047		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
8048		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8049	}
8050	return NDR_ERR_SUCCESS;
8051}
8052
8053_PUBLIC_ void ndr_print_samr_DeleteDomainGroup(struct ndr_print *ndr, const char *name, int flags, const struct samr_DeleteDomainGroup *r)
8054{
8055	ndr_print_struct(ndr, name, "samr_DeleteDomainGroup");
8056	ndr->depth++;
8057	if (flags & NDR_SET_VALUES) {
8058		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8059	}
8060	if (flags & NDR_IN) {
8061		ndr_print_struct(ndr, "in", "samr_DeleteDomainGroup");
8062		ndr->depth++;
8063		ndr_print_ptr(ndr, "group_handle", r->in.group_handle);
8064		ndr->depth++;
8065		ndr_print_policy_handle(ndr, "group_handle", r->in.group_handle);
8066		ndr->depth--;
8067		ndr->depth--;
8068	}
8069	if (flags & NDR_OUT) {
8070		ndr_print_struct(ndr, "out", "samr_DeleteDomainGroup");
8071		ndr->depth++;
8072		ndr_print_ptr(ndr, "group_handle", r->out.group_handle);
8073		ndr->depth++;
8074		ndr_print_policy_handle(ndr, "group_handle", r->out.group_handle);
8075		ndr->depth--;
8076		ndr_print_NTSTATUS(ndr, "result", r->out.result);
8077		ndr->depth--;
8078	}
8079	ndr->depth--;
8080}
8081
8082static enum ndr_err_code ndr_push_samr_DeleteGroupMember(struct ndr_push *ndr, int flags, const struct samr_DeleteGroupMember *r)
8083{
8084	if (flags & NDR_IN) {
8085		if (r->in.group_handle == NULL) {
8086			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8087		}
8088		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
8089		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.rid));
8090	}
8091	if (flags & NDR_OUT) {
8092		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8093	}
8094	return NDR_ERR_SUCCESS;
8095}
8096
8097static enum ndr_err_code ndr_pull_samr_DeleteGroupMember(struct ndr_pull *ndr, int flags, struct samr_DeleteGroupMember *r)
8098{
8099	TALLOC_CTX *_mem_save_group_handle_0;
8100	if (flags & NDR_IN) {
8101		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8102			NDR_PULL_ALLOC(ndr, r->in.group_handle);
8103		}
8104		_mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8105		NDR_PULL_SET_MEM_CTX(ndr, r->in.group_handle, LIBNDR_FLAG_REF_ALLOC);
8106		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
8107		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
8108		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rid));
8109	}
8110	if (flags & NDR_OUT) {
8111		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8112	}
8113	return NDR_ERR_SUCCESS;
8114}
8115
8116_PUBLIC_ void ndr_print_samr_DeleteGroupMember(struct ndr_print *ndr, const char *name, int flags, const struct samr_DeleteGroupMember *r)
8117{
8118	ndr_print_struct(ndr, name, "samr_DeleteGroupMember");
8119	ndr->depth++;
8120	if (flags & NDR_SET_VALUES) {
8121		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8122	}
8123	if (flags & NDR_IN) {
8124		ndr_print_struct(ndr, "in", "samr_DeleteGroupMember");
8125		ndr->depth++;
8126		ndr_print_ptr(ndr, "group_handle", r->in.group_handle);
8127		ndr->depth++;
8128		ndr_print_policy_handle(ndr, "group_handle", r->in.group_handle);
8129		ndr->depth--;
8130		ndr_print_uint32(ndr, "rid", r->in.rid);
8131		ndr->depth--;
8132	}
8133	if (flags & NDR_OUT) {
8134		ndr_print_struct(ndr, "out", "samr_DeleteGroupMember");
8135		ndr->depth++;
8136		ndr_print_NTSTATUS(ndr, "result", r->out.result);
8137		ndr->depth--;
8138	}
8139	ndr->depth--;
8140}
8141
8142static enum ndr_err_code ndr_push_samr_QueryGroupMember(struct ndr_push *ndr, int flags, const struct samr_QueryGroupMember *r)
8143{
8144	if (flags & NDR_IN) {
8145		if (r->in.group_handle == NULL) {
8146			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8147		}
8148		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
8149	}
8150	if (flags & NDR_OUT) {
8151		if (r->out.rids == NULL) {
8152			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8153		}
8154		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.rids));
8155		if (*r->out.rids) {
8156			NDR_CHECK(ndr_push_samr_RidTypeArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.rids));
8157		}
8158		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8159	}
8160	return NDR_ERR_SUCCESS;
8161}
8162
8163static enum ndr_err_code ndr_pull_samr_QueryGroupMember(struct ndr_pull *ndr, int flags, struct samr_QueryGroupMember *r)
8164{
8165	uint32_t _ptr_rids;
8166	TALLOC_CTX *_mem_save_group_handle_0;
8167	TALLOC_CTX *_mem_save_rids_0;
8168	TALLOC_CTX *_mem_save_rids_1;
8169	if (flags & NDR_IN) {
8170		ZERO_STRUCT(r->out);
8171
8172		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8173			NDR_PULL_ALLOC(ndr, r->in.group_handle);
8174		}
8175		_mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8176		NDR_PULL_SET_MEM_CTX(ndr, r->in.group_handle, LIBNDR_FLAG_REF_ALLOC);
8177		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
8178		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
8179		NDR_PULL_ALLOC(ndr, r->out.rids);
8180		ZERO_STRUCTP(r->out.rids);
8181	}
8182	if (flags & NDR_OUT) {
8183		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8184			NDR_PULL_ALLOC(ndr, r->out.rids);
8185		}
8186		_mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
8187		NDR_PULL_SET_MEM_CTX(ndr, r->out.rids, LIBNDR_FLAG_REF_ALLOC);
8188		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
8189		if (_ptr_rids) {
8190			NDR_PULL_ALLOC(ndr, *r->out.rids);
8191		} else {
8192			*r->out.rids = NULL;
8193		}
8194		if (*r->out.rids) {
8195			_mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
8196			NDR_PULL_SET_MEM_CTX(ndr, *r->out.rids, 0);
8197			NDR_CHECK(ndr_pull_samr_RidTypeArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.rids));
8198			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
8199		}
8200		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, LIBNDR_FLAG_REF_ALLOC);
8201		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8202	}
8203	return NDR_ERR_SUCCESS;
8204}
8205
8206_PUBLIC_ void ndr_print_samr_QueryGroupMember(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryGroupMember *r)
8207{
8208	ndr_print_struct(ndr, name, "samr_QueryGroupMember");
8209	ndr->depth++;
8210	if (flags & NDR_SET_VALUES) {
8211		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8212	}
8213	if (flags & NDR_IN) {
8214		ndr_print_struct(ndr, "in", "samr_QueryGroupMember");
8215		ndr->depth++;
8216		ndr_print_ptr(ndr, "group_handle", r->in.group_handle);
8217		ndr->depth++;
8218		ndr_print_policy_handle(ndr, "group_handle", r->in.group_handle);
8219		ndr->depth--;
8220		ndr->depth--;
8221	}
8222	if (flags & NDR_OUT) {
8223		ndr_print_struct(ndr, "out", "samr_QueryGroupMember");
8224		ndr->depth++;
8225		ndr_print_ptr(ndr, "rids", r->out.rids);
8226		ndr->depth++;
8227		ndr_print_ptr(ndr, "rids", *r->out.rids);
8228		ndr->depth++;
8229		if (*r->out.rids) {
8230			ndr_print_samr_RidTypeArray(ndr, "rids", *r->out.rids);
8231		}
8232		ndr->depth--;
8233		ndr->depth--;
8234		ndr_print_NTSTATUS(ndr, "result", r->out.result);
8235		ndr->depth--;
8236	}
8237	ndr->depth--;
8238}
8239
8240static enum ndr_err_code ndr_push_samr_SetMemberAttributesOfGroup(struct ndr_push *ndr, int flags, const struct samr_SetMemberAttributesOfGroup *r)
8241{
8242	if (flags & NDR_IN) {
8243		if (r->in.group_handle == NULL) {
8244			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8245		}
8246		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
8247		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown1));
8248		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
8249	}
8250	if (flags & NDR_OUT) {
8251		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8252	}
8253	return NDR_ERR_SUCCESS;
8254}
8255
8256static enum ndr_err_code ndr_pull_samr_SetMemberAttributesOfGroup(struct ndr_pull *ndr, int flags, struct samr_SetMemberAttributesOfGroup *r)
8257{
8258	TALLOC_CTX *_mem_save_group_handle_0;
8259	if (flags & NDR_IN) {
8260		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8261			NDR_PULL_ALLOC(ndr, r->in.group_handle);
8262		}
8263		_mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8264		NDR_PULL_SET_MEM_CTX(ndr, r->in.group_handle, LIBNDR_FLAG_REF_ALLOC);
8265		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
8266		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
8267		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown1));
8268		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
8269	}
8270	if (flags & NDR_OUT) {
8271		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8272	}
8273	return NDR_ERR_SUCCESS;
8274}
8275
8276_PUBLIC_ void ndr_print_samr_SetMemberAttributesOfGroup(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetMemberAttributesOfGroup *r)
8277{
8278	ndr_print_struct(ndr, name, "samr_SetMemberAttributesOfGroup");
8279	ndr->depth++;
8280	if (flags & NDR_SET_VALUES) {
8281		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8282	}
8283	if (flags & NDR_IN) {
8284		ndr_print_struct(ndr, "in", "samr_SetMemberAttributesOfGroup");
8285		ndr->depth++;
8286		ndr_print_ptr(ndr, "group_handle", r->in.group_handle);
8287		ndr->depth++;
8288		ndr_print_policy_handle(ndr, "group_handle", r->in.group_handle);
8289		ndr->depth--;
8290		ndr_print_uint32(ndr, "unknown1", r->in.unknown1);
8291		ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
8292		ndr->depth--;
8293	}
8294	if (flags & NDR_OUT) {
8295		ndr_print_struct(ndr, "out", "samr_SetMemberAttributesOfGroup");
8296		ndr->depth++;
8297		ndr_print_NTSTATUS(ndr, "result", r->out.result);
8298		ndr->depth--;
8299	}
8300	ndr->depth--;
8301}
8302
8303static enum ndr_err_code ndr_push_samr_OpenAlias(struct ndr_push *ndr, int flags, const struct samr_OpenAlias *r)
8304{
8305	if (flags & NDR_IN) {
8306		if (r->in.domain_handle == NULL) {
8307			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8308		}
8309		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
8310		NDR_CHECK(ndr_push_samr_AliasAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
8311		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.rid));
8312	}
8313	if (flags & NDR_OUT) {
8314		if (r->out.alias_handle == NULL) {
8315			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8316		}
8317		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.alias_handle));
8318		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8319	}
8320	return NDR_ERR_SUCCESS;
8321}
8322
8323static enum ndr_err_code ndr_pull_samr_OpenAlias(struct ndr_pull *ndr, int flags, struct samr_OpenAlias *r)
8324{
8325	TALLOC_CTX *_mem_save_domain_handle_0;
8326	TALLOC_CTX *_mem_save_alias_handle_0;
8327	if (flags & NDR_IN) {
8328		ZERO_STRUCT(r->out);
8329
8330		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8331			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
8332		}
8333		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8334		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
8335		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
8336		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
8337		NDR_CHECK(ndr_pull_samr_AliasAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
8338		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rid));
8339		NDR_PULL_ALLOC(ndr, r->out.alias_handle);
8340		ZERO_STRUCTP(r->out.alias_handle);
8341	}
8342	if (flags & NDR_OUT) {
8343		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8344			NDR_PULL_ALLOC(ndr, r->out.alias_handle);
8345		}
8346		_mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8347		NDR_PULL_SET_MEM_CTX(ndr, r->out.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8348		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.alias_handle));
8349		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8350		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8351	}
8352	return NDR_ERR_SUCCESS;
8353}
8354
8355_PUBLIC_ void ndr_print_samr_OpenAlias(struct ndr_print *ndr, const char *name, int flags, const struct samr_OpenAlias *r)
8356{
8357	ndr_print_struct(ndr, name, "samr_OpenAlias");
8358	ndr->depth++;
8359	if (flags & NDR_SET_VALUES) {
8360		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8361	}
8362	if (flags & NDR_IN) {
8363		ndr_print_struct(ndr, "in", "samr_OpenAlias");
8364		ndr->depth++;
8365		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
8366		ndr->depth++;
8367		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
8368		ndr->depth--;
8369		ndr_print_samr_AliasAccessMask(ndr, "access_mask", r->in.access_mask);
8370		ndr_print_uint32(ndr, "rid", r->in.rid);
8371		ndr->depth--;
8372	}
8373	if (flags & NDR_OUT) {
8374		ndr_print_struct(ndr, "out", "samr_OpenAlias");
8375		ndr->depth++;
8376		ndr_print_ptr(ndr, "alias_handle", r->out.alias_handle);
8377		ndr->depth++;
8378		ndr_print_policy_handle(ndr, "alias_handle", r->out.alias_handle);
8379		ndr->depth--;
8380		ndr_print_NTSTATUS(ndr, "result", r->out.result);
8381		ndr->depth--;
8382	}
8383	ndr->depth--;
8384}
8385
8386static enum ndr_err_code ndr_push_samr_QueryAliasInfo(struct ndr_push *ndr, int flags, const struct samr_QueryAliasInfo *r)
8387{
8388	if (flags & NDR_IN) {
8389		if (r->in.alias_handle == NULL) {
8390			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8391		}
8392		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8393		NDR_CHECK(ndr_push_samr_AliasInfoEnum(ndr, NDR_SCALARS, r->in.level));
8394	}
8395	if (flags & NDR_OUT) {
8396		if (r->out.info == NULL) {
8397			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8398		}
8399		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
8400		if (*r->out.info) {
8401			NDR_CHECK(ndr_push_set_switch_value(ndr, *r->out.info, r->in.level));
8402			NDR_CHECK(ndr_push_samr_AliasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
8403		}
8404		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8405	}
8406	return NDR_ERR_SUCCESS;
8407}
8408
8409static enum ndr_err_code ndr_pull_samr_QueryAliasInfo(struct ndr_pull *ndr, int flags, struct samr_QueryAliasInfo *r)
8410{
8411	uint32_t _ptr_info;
8412	TALLOC_CTX *_mem_save_alias_handle_0;
8413	TALLOC_CTX *_mem_save_info_0;
8414	TALLOC_CTX *_mem_save_info_1;
8415	if (flags & NDR_IN) {
8416		ZERO_STRUCT(r->out);
8417
8418		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8419			NDR_PULL_ALLOC(ndr, r->in.alias_handle);
8420		}
8421		_mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8422		NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8423		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8424		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8425		NDR_CHECK(ndr_pull_samr_AliasInfoEnum(ndr, NDR_SCALARS, &r->in.level));
8426		NDR_PULL_ALLOC(ndr, r->out.info);
8427		ZERO_STRUCTP(r->out.info);
8428	}
8429	if (flags & NDR_OUT) {
8430		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8431			NDR_PULL_ALLOC(ndr, r->out.info);
8432		}
8433		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8434		NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8435		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
8436		if (_ptr_info) {
8437			NDR_PULL_ALLOC(ndr, *r->out.info);
8438		} else {
8439			*r->out.info = NULL;
8440		}
8441		if (*r->out.info) {
8442			_mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
8443			NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
8444			NDR_CHECK(ndr_pull_set_switch_value(ndr, *r->out.info, r->in.level));
8445			NDR_CHECK(ndr_pull_samr_AliasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
8446			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
8447		}
8448		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8449		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8450	}
8451	return NDR_ERR_SUCCESS;
8452}
8453
8454_PUBLIC_ void ndr_print_samr_QueryAliasInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryAliasInfo *r)
8455{
8456	ndr_print_struct(ndr, name, "samr_QueryAliasInfo");
8457	ndr->depth++;
8458	if (flags & NDR_SET_VALUES) {
8459		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8460	}
8461	if (flags & NDR_IN) {
8462		ndr_print_struct(ndr, "in", "samr_QueryAliasInfo");
8463		ndr->depth++;
8464		ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
8465		ndr->depth++;
8466		ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
8467		ndr->depth--;
8468		ndr_print_samr_AliasInfoEnum(ndr, "level", r->in.level);
8469		ndr->depth--;
8470	}
8471	if (flags & NDR_OUT) {
8472		ndr_print_struct(ndr, "out", "samr_QueryAliasInfo");
8473		ndr->depth++;
8474		ndr_print_ptr(ndr, "info", r->out.info);
8475		ndr->depth++;
8476		ndr_print_ptr(ndr, "info", *r->out.info);
8477		ndr->depth++;
8478		if (*r->out.info) {
8479			ndr_print_set_switch_value(ndr, *r->out.info, r->in.level);
8480			ndr_print_samr_AliasInfo(ndr, "info", *r->out.info);
8481		}
8482		ndr->depth--;
8483		ndr->depth--;
8484		ndr_print_NTSTATUS(ndr, "result", r->out.result);
8485		ndr->depth--;
8486	}
8487	ndr->depth--;
8488}
8489
8490static enum ndr_err_code ndr_push_samr_SetAliasInfo(struct ndr_push *ndr, int flags, const struct samr_SetAliasInfo *r)
8491{
8492	if (flags & NDR_IN) {
8493		if (r->in.alias_handle == NULL) {
8494			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8495		}
8496		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8497		NDR_CHECK(ndr_push_samr_AliasInfoEnum(ndr, NDR_SCALARS, r->in.level));
8498		if (r->in.info == NULL) {
8499			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8500		}
8501		NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level));
8502		NDR_CHECK(ndr_push_samr_AliasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
8503	}
8504	if (flags & NDR_OUT) {
8505		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8506	}
8507	return NDR_ERR_SUCCESS;
8508}
8509
8510static enum ndr_err_code ndr_pull_samr_SetAliasInfo(struct ndr_pull *ndr, int flags, struct samr_SetAliasInfo *r)
8511{
8512	TALLOC_CTX *_mem_save_alias_handle_0;
8513	TALLOC_CTX *_mem_save_info_0;
8514	if (flags & NDR_IN) {
8515		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8516			NDR_PULL_ALLOC(ndr, r->in.alias_handle);
8517		}
8518		_mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8519		NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8520		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8521		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8522		NDR_CHECK(ndr_pull_samr_AliasInfoEnum(ndr, NDR_SCALARS, &r->in.level));
8523		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8524			NDR_PULL_ALLOC(ndr, r->in.info);
8525		}
8526		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8527		NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC);
8528		NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level));
8529		NDR_CHECK(ndr_pull_samr_AliasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
8530		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8531	}
8532	if (flags & NDR_OUT) {
8533		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8534	}
8535	return NDR_ERR_SUCCESS;
8536}
8537
8538_PUBLIC_ void ndr_print_samr_SetAliasInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetAliasInfo *r)
8539{
8540	ndr_print_struct(ndr, name, "samr_SetAliasInfo");
8541	ndr->depth++;
8542	if (flags & NDR_SET_VALUES) {
8543		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8544	}
8545	if (flags & NDR_IN) {
8546		ndr_print_struct(ndr, "in", "samr_SetAliasInfo");
8547		ndr->depth++;
8548		ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
8549		ndr->depth++;
8550		ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
8551		ndr->depth--;
8552		ndr_print_samr_AliasInfoEnum(ndr, "level", r->in.level);
8553		ndr_print_ptr(ndr, "info", r->in.info);
8554		ndr->depth++;
8555		ndr_print_set_switch_value(ndr, r->in.info, r->in.level);
8556		ndr_print_samr_AliasInfo(ndr, "info", r->in.info);
8557		ndr->depth--;
8558		ndr->depth--;
8559	}
8560	if (flags & NDR_OUT) {
8561		ndr_print_struct(ndr, "out", "samr_SetAliasInfo");
8562		ndr->depth++;
8563		ndr_print_NTSTATUS(ndr, "result", r->out.result);
8564		ndr->depth--;
8565	}
8566	ndr->depth--;
8567}
8568
8569static enum ndr_err_code ndr_push_samr_DeleteDomAlias(struct ndr_push *ndr, int flags, const struct samr_DeleteDomAlias *r)
8570{
8571	if (flags & NDR_IN) {
8572		if (r->in.alias_handle == NULL) {
8573			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8574		}
8575		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8576	}
8577	if (flags & NDR_OUT) {
8578		if (r->out.alias_handle == NULL) {
8579			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8580		}
8581		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.alias_handle));
8582		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8583	}
8584	return NDR_ERR_SUCCESS;
8585}
8586
8587static enum ndr_err_code ndr_pull_samr_DeleteDomAlias(struct ndr_pull *ndr, int flags, struct samr_DeleteDomAlias *r)
8588{
8589	TALLOC_CTX *_mem_save_alias_handle_0;
8590	if (flags & NDR_IN) {
8591		ZERO_STRUCT(r->out);
8592
8593		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8594			NDR_PULL_ALLOC(ndr, r->in.alias_handle);
8595		}
8596		_mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8597		NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8598		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8599		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8600		NDR_PULL_ALLOC(ndr, r->out.alias_handle);
8601		*r->out.alias_handle = *r->in.alias_handle;
8602	}
8603	if (flags & NDR_OUT) {
8604		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8605			NDR_PULL_ALLOC(ndr, r->out.alias_handle);
8606		}
8607		_mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8608		NDR_PULL_SET_MEM_CTX(ndr, r->out.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8609		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.alias_handle));
8610		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8611		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8612	}
8613	return NDR_ERR_SUCCESS;
8614}
8615
8616_PUBLIC_ void ndr_print_samr_DeleteDomAlias(struct ndr_print *ndr, const char *name, int flags, const struct samr_DeleteDomAlias *r)
8617{
8618	ndr_print_struct(ndr, name, "samr_DeleteDomAlias");
8619	ndr->depth++;
8620	if (flags & NDR_SET_VALUES) {
8621		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8622	}
8623	if (flags & NDR_IN) {
8624		ndr_print_struct(ndr, "in", "samr_DeleteDomAlias");
8625		ndr->depth++;
8626		ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
8627		ndr->depth++;
8628		ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
8629		ndr->depth--;
8630		ndr->depth--;
8631	}
8632	if (flags & NDR_OUT) {
8633		ndr_print_struct(ndr, "out", "samr_DeleteDomAlias");
8634		ndr->depth++;
8635		ndr_print_ptr(ndr, "alias_handle", r->out.alias_handle);
8636		ndr->depth++;
8637		ndr_print_policy_handle(ndr, "alias_handle", r->out.alias_handle);
8638		ndr->depth--;
8639		ndr_print_NTSTATUS(ndr, "result", r->out.result);
8640		ndr->depth--;
8641	}
8642	ndr->depth--;
8643}
8644
8645static enum ndr_err_code ndr_push_samr_AddAliasMember(struct ndr_push *ndr, int flags, const struct samr_AddAliasMember *r)
8646{
8647	if (flags & NDR_IN) {
8648		if (r->in.alias_handle == NULL) {
8649			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8650		}
8651		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8652		if (r->in.sid == NULL) {
8653			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8654		}
8655		NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
8656	}
8657	if (flags & NDR_OUT) {
8658		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8659	}
8660	return NDR_ERR_SUCCESS;
8661}
8662
8663static enum ndr_err_code ndr_pull_samr_AddAliasMember(struct ndr_pull *ndr, int flags, struct samr_AddAliasMember *r)
8664{
8665	TALLOC_CTX *_mem_save_alias_handle_0;
8666	TALLOC_CTX *_mem_save_sid_0;
8667	if (flags & NDR_IN) {
8668		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8669			NDR_PULL_ALLOC(ndr, r->in.alias_handle);
8670		}
8671		_mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8672		NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8673		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8674		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8675		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8676			NDR_PULL_ALLOC(ndr, r->in.sid);
8677		}
8678		_mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8679		NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
8680		NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
8681		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
8682	}
8683	if (flags & NDR_OUT) {
8684		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8685	}
8686	return NDR_ERR_SUCCESS;
8687}
8688
8689_PUBLIC_ void ndr_print_samr_AddAliasMember(struct ndr_print *ndr, const char *name, int flags, const struct samr_AddAliasMember *r)
8690{
8691	ndr_print_struct(ndr, name, "samr_AddAliasMember");
8692	ndr->depth++;
8693	if (flags & NDR_SET_VALUES) {
8694		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8695	}
8696	if (flags & NDR_IN) {
8697		ndr_print_struct(ndr, "in", "samr_AddAliasMember");
8698		ndr->depth++;
8699		ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
8700		ndr->depth++;
8701		ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
8702		ndr->depth--;
8703		ndr_print_ptr(ndr, "sid", r->in.sid);
8704		ndr->depth++;
8705		ndr_print_dom_sid2(ndr, "sid", r->in.sid);
8706		ndr->depth--;
8707		ndr->depth--;
8708	}
8709	if (flags & NDR_OUT) {
8710		ndr_print_struct(ndr, "out", "samr_AddAliasMember");
8711		ndr->depth++;
8712		ndr_print_NTSTATUS(ndr, "result", r->out.result);
8713		ndr->depth--;
8714	}
8715	ndr->depth--;
8716}
8717
8718static enum ndr_err_code ndr_push_samr_DeleteAliasMember(struct ndr_push *ndr, int flags, const struct samr_DeleteAliasMember *r)
8719{
8720	if (flags & NDR_IN) {
8721		if (r->in.alias_handle == NULL) {
8722			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8723		}
8724		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8725		if (r->in.sid == NULL) {
8726			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8727		}
8728		NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
8729	}
8730	if (flags & NDR_OUT) {
8731		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8732	}
8733	return NDR_ERR_SUCCESS;
8734}
8735
8736static enum ndr_err_code ndr_pull_samr_DeleteAliasMember(struct ndr_pull *ndr, int flags, struct samr_DeleteAliasMember *r)
8737{
8738	TALLOC_CTX *_mem_save_alias_handle_0;
8739	TALLOC_CTX *_mem_save_sid_0;
8740	if (flags & NDR_IN) {
8741		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8742			NDR_PULL_ALLOC(ndr, r->in.alias_handle);
8743		}
8744		_mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8745		NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8746		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8747		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8748		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8749			NDR_PULL_ALLOC(ndr, r->in.sid);
8750		}
8751		_mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8752		NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
8753		NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
8754		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
8755	}
8756	if (flags & NDR_OUT) {
8757		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8758	}
8759	return NDR_ERR_SUCCESS;
8760}
8761
8762_PUBLIC_ void ndr_print_samr_DeleteAliasMember(struct ndr_print *ndr, const char *name, int flags, const struct samr_DeleteAliasMember *r)
8763{
8764	ndr_print_struct(ndr, name, "samr_DeleteAliasMember");
8765	ndr->depth++;
8766	if (flags & NDR_SET_VALUES) {
8767		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8768	}
8769	if (flags & NDR_IN) {
8770		ndr_print_struct(ndr, "in", "samr_DeleteAliasMember");
8771		ndr->depth++;
8772		ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
8773		ndr->depth++;
8774		ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
8775		ndr->depth--;
8776		ndr_print_ptr(ndr, "sid", r->in.sid);
8777		ndr->depth++;
8778		ndr_print_dom_sid2(ndr, "sid", r->in.sid);
8779		ndr->depth--;
8780		ndr->depth--;
8781	}
8782	if (flags & NDR_OUT) {
8783		ndr_print_struct(ndr, "out", "samr_DeleteAliasMember");
8784		ndr->depth++;
8785		ndr_print_NTSTATUS(ndr, "result", r->out.result);
8786		ndr->depth--;
8787	}
8788	ndr->depth--;
8789}
8790
8791static enum ndr_err_code ndr_push_samr_GetMembersInAlias(struct ndr_push *ndr, int flags, const struct samr_GetMembersInAlias *r)
8792{
8793	if (flags & NDR_IN) {
8794		if (r->in.alias_handle == NULL) {
8795			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8796		}
8797		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8798	}
8799	if (flags & NDR_OUT) {
8800		if (r->out.sids == NULL) {
8801			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8802		}
8803		NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sids));
8804		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8805	}
8806	return NDR_ERR_SUCCESS;
8807}
8808
8809static enum ndr_err_code ndr_pull_samr_GetMembersInAlias(struct ndr_pull *ndr, int flags, struct samr_GetMembersInAlias *r)
8810{
8811	TALLOC_CTX *_mem_save_alias_handle_0;
8812	TALLOC_CTX *_mem_save_sids_0;
8813	if (flags & NDR_IN) {
8814		ZERO_STRUCT(r->out);
8815
8816		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8817			NDR_PULL_ALLOC(ndr, r->in.alias_handle);
8818		}
8819		_mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8820		NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8821		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8822		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8823		NDR_PULL_ALLOC(ndr, r->out.sids);
8824		ZERO_STRUCTP(r->out.sids);
8825	}
8826	if (flags & NDR_OUT) {
8827		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8828			NDR_PULL_ALLOC(ndr, r->out.sids);
8829		}
8830		_mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
8831		NDR_PULL_SET_MEM_CTX(ndr, r->out.sids, LIBNDR_FLAG_REF_ALLOC);
8832		NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sids));
8833		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, LIBNDR_FLAG_REF_ALLOC);
8834		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8835	}
8836	return NDR_ERR_SUCCESS;
8837}
8838
8839_PUBLIC_ void ndr_print_samr_GetMembersInAlias(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetMembersInAlias *r)
8840{
8841	ndr_print_struct(ndr, name, "samr_GetMembersInAlias");
8842	ndr->depth++;
8843	if (flags & NDR_SET_VALUES) {
8844		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8845	}
8846	if (flags & NDR_IN) {
8847		ndr_print_struct(ndr, "in", "samr_GetMembersInAlias");
8848		ndr->depth++;
8849		ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
8850		ndr->depth++;
8851		ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
8852		ndr->depth--;
8853		ndr->depth--;
8854	}
8855	if (flags & NDR_OUT) {
8856		ndr_print_struct(ndr, "out", "samr_GetMembersInAlias");
8857		ndr->depth++;
8858		ndr_print_ptr(ndr, "sids", r->out.sids);
8859		ndr->depth++;
8860		ndr_print_lsa_SidArray(ndr, "sids", r->out.sids);
8861		ndr->depth--;
8862		ndr_print_NTSTATUS(ndr, "result", r->out.result);
8863		ndr->depth--;
8864	}
8865	ndr->depth--;
8866}
8867
8868_PUBLIC_ enum ndr_err_code ndr_push_samr_OpenUser(struct ndr_push *ndr, int flags, const struct samr_OpenUser *r)
8869{
8870	if (flags & NDR_IN) {
8871		if (r->in.domain_handle == NULL) {
8872			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8873		}
8874		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
8875		NDR_CHECK(ndr_push_samr_UserAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
8876		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.rid));
8877	}
8878	if (flags & NDR_OUT) {
8879		if (r->out.user_handle == NULL) {
8880			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8881		}
8882		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
8883		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8884	}
8885	return NDR_ERR_SUCCESS;
8886}
8887
8888_PUBLIC_ enum ndr_err_code ndr_pull_samr_OpenUser(struct ndr_pull *ndr, int flags, struct samr_OpenUser *r)
8889{
8890	TALLOC_CTX *_mem_save_domain_handle_0;
8891	TALLOC_CTX *_mem_save_user_handle_0;
8892	if (flags & NDR_IN) {
8893		ZERO_STRUCT(r->out);
8894
8895		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8896			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
8897		}
8898		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8899		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
8900		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
8901		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
8902		NDR_CHECK(ndr_pull_samr_UserAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
8903		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rid));
8904		NDR_PULL_ALLOC(ndr, r->out.user_handle);
8905		ZERO_STRUCTP(r->out.user_handle);
8906	}
8907	if (flags & NDR_OUT) {
8908		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8909			NDR_PULL_ALLOC(ndr, r->out.user_handle);
8910		}
8911		_mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8912		NDR_PULL_SET_MEM_CTX(ndr, r->out.user_handle, LIBNDR_FLAG_REF_ALLOC);
8913		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
8914		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
8915		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8916	}
8917	return NDR_ERR_SUCCESS;
8918}
8919
8920_PUBLIC_ void ndr_print_samr_OpenUser(struct ndr_print *ndr, const char *name, int flags, const struct samr_OpenUser *r)
8921{
8922	ndr_print_struct(ndr, name, "samr_OpenUser");
8923	ndr->depth++;
8924	if (flags & NDR_SET_VALUES) {
8925		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8926	}
8927	if (flags & NDR_IN) {
8928		ndr_print_struct(ndr, "in", "samr_OpenUser");
8929		ndr->depth++;
8930		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
8931		ndr->depth++;
8932		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
8933		ndr->depth--;
8934		ndr_print_samr_UserAccessMask(ndr, "access_mask", r->in.access_mask);
8935		ndr_print_uint32(ndr, "rid", r->in.rid);
8936		ndr->depth--;
8937	}
8938	if (flags & NDR_OUT) {
8939		ndr_print_struct(ndr, "out", "samr_OpenUser");
8940		ndr->depth++;
8941		ndr_print_ptr(ndr, "user_handle", r->out.user_handle);
8942		ndr->depth++;
8943		ndr_print_policy_handle(ndr, "user_handle", r->out.user_handle);
8944		ndr->depth--;
8945		ndr_print_NTSTATUS(ndr, "result", r->out.result);
8946		ndr->depth--;
8947	}
8948	ndr->depth--;
8949}
8950
8951static enum ndr_err_code ndr_push_samr_DeleteUser(struct ndr_push *ndr, int flags, const struct samr_DeleteUser *r)
8952{
8953	if (flags & NDR_IN) {
8954		if (r->in.user_handle == NULL) {
8955			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8956		}
8957		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
8958	}
8959	if (flags & NDR_OUT) {
8960		if (r->out.user_handle == NULL) {
8961			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8962		}
8963		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
8964		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8965	}
8966	return NDR_ERR_SUCCESS;
8967}
8968
8969static enum ndr_err_code ndr_pull_samr_DeleteUser(struct ndr_pull *ndr, int flags, struct samr_DeleteUser *r)
8970{
8971	TALLOC_CTX *_mem_save_user_handle_0;
8972	if (flags & NDR_IN) {
8973		ZERO_STRUCT(r->out);
8974
8975		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8976			NDR_PULL_ALLOC(ndr, r->in.user_handle);
8977		}
8978		_mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8979		NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
8980		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
8981		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
8982		NDR_PULL_ALLOC(ndr, r->out.user_handle);
8983		*r->out.user_handle = *r->in.user_handle;
8984	}
8985	if (flags & NDR_OUT) {
8986		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8987			NDR_PULL_ALLOC(ndr, r->out.user_handle);
8988		}
8989		_mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8990		NDR_PULL_SET_MEM_CTX(ndr, r->out.user_handle, LIBNDR_FLAG_REF_ALLOC);
8991		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
8992		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
8993		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8994	}
8995	return NDR_ERR_SUCCESS;
8996}
8997
8998_PUBLIC_ void ndr_print_samr_DeleteUser(struct ndr_print *ndr, const char *name, int flags, const struct samr_DeleteUser *r)
8999{
9000	ndr_print_struct(ndr, name, "samr_DeleteUser");
9001	ndr->depth++;
9002	if (flags & NDR_SET_VALUES) {
9003		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9004	}
9005	if (flags & NDR_IN) {
9006		ndr_print_struct(ndr, "in", "samr_DeleteUser");
9007		ndr->depth++;
9008		ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
9009		ndr->depth++;
9010		ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
9011		ndr->depth--;
9012		ndr->depth--;
9013	}
9014	if (flags & NDR_OUT) {
9015		ndr_print_struct(ndr, "out", "samr_DeleteUser");
9016		ndr->depth++;
9017		ndr_print_ptr(ndr, "user_handle", r->out.user_handle);
9018		ndr->depth++;
9019		ndr_print_policy_handle(ndr, "user_handle", r->out.user_handle);
9020		ndr->depth--;
9021		ndr_print_NTSTATUS(ndr, "result", r->out.result);
9022		ndr->depth--;
9023	}
9024	ndr->depth--;
9025}
9026
9027_PUBLIC_ enum ndr_err_code ndr_push_samr_QueryUserInfo(struct ndr_push *ndr, int flags, const struct samr_QueryUserInfo *r)
9028{
9029	if (flags & NDR_IN) {
9030		if (r->in.user_handle == NULL) {
9031			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9032		}
9033		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9034		NDR_CHECK(ndr_push_samr_UserInfoLevel(ndr, NDR_SCALARS, r->in.level));
9035	}
9036	if (flags & NDR_OUT) {
9037		if (r->out.info == NULL) {
9038			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9039		}
9040		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
9041		if (*r->out.info) {
9042			NDR_CHECK(ndr_push_set_switch_value(ndr, *r->out.info, r->in.level));
9043			NDR_CHECK(ndr_push_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
9044		}
9045		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9046	}
9047	return NDR_ERR_SUCCESS;
9048}
9049
9050_PUBLIC_ enum ndr_err_code ndr_pull_samr_QueryUserInfo(struct ndr_pull *ndr, int flags, struct samr_QueryUserInfo *r)
9051{
9052	uint32_t _ptr_info;
9053	TALLOC_CTX *_mem_save_user_handle_0;
9054	TALLOC_CTX *_mem_save_info_0;
9055	TALLOC_CTX *_mem_save_info_1;
9056	if (flags & NDR_IN) {
9057		ZERO_STRUCT(r->out);
9058
9059		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9060			NDR_PULL_ALLOC(ndr, r->in.user_handle);
9061		}
9062		_mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9063		NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
9064		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9065		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
9066		NDR_CHECK(ndr_pull_samr_UserInfoLevel(ndr, NDR_SCALARS, &r->in.level));
9067		NDR_PULL_ALLOC(ndr, r->out.info);
9068		ZERO_STRUCTP(r->out.info);
9069	}
9070	if (flags & NDR_OUT) {
9071		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9072			NDR_PULL_ALLOC(ndr, r->out.info);
9073		}
9074		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9075		NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9076		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
9077		if (_ptr_info) {
9078			NDR_PULL_ALLOC(ndr, *r->out.info);
9079		} else {
9080			*r->out.info = NULL;
9081		}
9082		if (*r->out.info) {
9083			_mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
9084			NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
9085			NDR_CHECK(ndr_pull_set_switch_value(ndr, *r->out.info, r->in.level));
9086			NDR_CHECK(ndr_pull_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
9087			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
9088		}
9089		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9090		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9091	}
9092	return NDR_ERR_SUCCESS;
9093}
9094
9095_PUBLIC_ void ndr_print_samr_QueryUserInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryUserInfo *r)
9096{
9097	ndr_print_struct(ndr, name, "samr_QueryUserInfo");
9098	ndr->depth++;
9099	if (flags & NDR_SET_VALUES) {
9100		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9101	}
9102	if (flags & NDR_IN) {
9103		ndr_print_struct(ndr, "in", "samr_QueryUserInfo");
9104		ndr->depth++;
9105		ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
9106		ndr->depth++;
9107		ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
9108		ndr->depth--;
9109		ndr_print_samr_UserInfoLevel(ndr, "level", r->in.level);
9110		ndr->depth--;
9111	}
9112	if (flags & NDR_OUT) {
9113		ndr_print_struct(ndr, "out", "samr_QueryUserInfo");
9114		ndr->depth++;
9115		ndr_print_ptr(ndr, "info", r->out.info);
9116		ndr->depth++;
9117		ndr_print_ptr(ndr, "info", *r->out.info);
9118		ndr->depth++;
9119		if (*r->out.info) {
9120			ndr_print_set_switch_value(ndr, *r->out.info, r->in.level);
9121			ndr_print_samr_UserInfo(ndr, "info", *r->out.info);
9122		}
9123		ndr->depth--;
9124		ndr->depth--;
9125		ndr_print_NTSTATUS(ndr, "result", r->out.result);
9126		ndr->depth--;
9127	}
9128	ndr->depth--;
9129}
9130
9131_PUBLIC_ enum ndr_err_code ndr_push_samr_SetUserInfo(struct ndr_push *ndr, int flags, const struct samr_SetUserInfo *r)
9132{
9133	if (flags & NDR_IN) {
9134		if (r->in.user_handle == NULL) {
9135			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9136		}
9137		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9138		NDR_CHECK(ndr_push_samr_UserInfoLevel(ndr, NDR_SCALARS, r->in.level));
9139		if (r->in.info == NULL) {
9140			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9141		}
9142		NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level));
9143		NDR_CHECK(ndr_push_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
9144	}
9145	if (flags & NDR_OUT) {
9146		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9147	}
9148	return NDR_ERR_SUCCESS;
9149}
9150
9151_PUBLIC_ enum ndr_err_code ndr_pull_samr_SetUserInfo(struct ndr_pull *ndr, int flags, struct samr_SetUserInfo *r)
9152{
9153	TALLOC_CTX *_mem_save_user_handle_0;
9154	TALLOC_CTX *_mem_save_info_0;
9155	if (flags & NDR_IN) {
9156		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9157			NDR_PULL_ALLOC(ndr, r->in.user_handle);
9158		}
9159		_mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9160		NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
9161		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9162		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
9163		NDR_CHECK(ndr_pull_samr_UserInfoLevel(ndr, NDR_SCALARS, &r->in.level));
9164		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9165			NDR_PULL_ALLOC(ndr, r->in.info);
9166		}
9167		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9168		NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC);
9169		NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level));
9170		NDR_CHECK(ndr_pull_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
9171		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9172	}
9173	if (flags & NDR_OUT) {
9174		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9175	}
9176	return NDR_ERR_SUCCESS;
9177}
9178
9179_PUBLIC_ void ndr_print_samr_SetUserInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetUserInfo *r)
9180{
9181	ndr_print_struct(ndr, name, "samr_SetUserInfo");
9182	ndr->depth++;
9183	if (flags & NDR_SET_VALUES) {
9184		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9185	}
9186	if (flags & NDR_IN) {
9187		ndr_print_struct(ndr, "in", "samr_SetUserInfo");
9188		ndr->depth++;
9189		ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
9190		ndr->depth++;
9191		ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
9192		ndr->depth--;
9193		ndr_print_samr_UserInfoLevel(ndr, "level", r->in.level);
9194		ndr_print_ptr(ndr, "info", r->in.info);
9195		ndr->depth++;
9196		ndr_print_set_switch_value(ndr, r->in.info, r->in.level);
9197		ndr_print_samr_UserInfo(ndr, "info", r->in.info);
9198		ndr->depth--;
9199		ndr->depth--;
9200	}
9201	if (flags & NDR_OUT) {
9202		ndr_print_struct(ndr, "out", "samr_SetUserInfo");
9203		ndr->depth++;
9204		ndr_print_NTSTATUS(ndr, "result", r->out.result);
9205		ndr->depth--;
9206	}
9207	ndr->depth--;
9208}
9209
9210static enum ndr_err_code ndr_push_samr_ChangePasswordUser(struct ndr_push *ndr, int flags, const struct samr_ChangePasswordUser *r)
9211{
9212	if (flags & NDR_IN) {
9213		if (r->in.user_handle == NULL) {
9214			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9215		}
9216		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9217		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.lm_present));
9218		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.old_lm_crypted));
9219		if (r->in.old_lm_crypted) {
9220			NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.old_lm_crypted));
9221		}
9222		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.new_lm_crypted));
9223		if (r->in.new_lm_crypted) {
9224			NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.new_lm_crypted));
9225		}
9226		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.nt_present));
9227		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.old_nt_crypted));
9228		if (r->in.old_nt_crypted) {
9229			NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.old_nt_crypted));
9230		}
9231		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.new_nt_crypted));
9232		if (r->in.new_nt_crypted) {
9233			NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.new_nt_crypted));
9234		}
9235		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.cross1_present));
9236		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.nt_cross));
9237		if (r->in.nt_cross) {
9238			NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.nt_cross));
9239		}
9240		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.cross2_present));
9241		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.lm_cross));
9242		if (r->in.lm_cross) {
9243			NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.lm_cross));
9244		}
9245	}
9246	if (flags & NDR_OUT) {
9247		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9248	}
9249	return NDR_ERR_SUCCESS;
9250}
9251
9252static enum ndr_err_code ndr_pull_samr_ChangePasswordUser(struct ndr_pull *ndr, int flags, struct samr_ChangePasswordUser *r)
9253{
9254	uint32_t _ptr_old_lm_crypted;
9255	uint32_t _ptr_new_lm_crypted;
9256	uint32_t _ptr_old_nt_crypted;
9257	uint32_t _ptr_new_nt_crypted;
9258	uint32_t _ptr_nt_cross;
9259	uint32_t _ptr_lm_cross;
9260	TALLOC_CTX *_mem_save_user_handle_0;
9261	TALLOC_CTX *_mem_save_old_lm_crypted_0;
9262	TALLOC_CTX *_mem_save_new_lm_crypted_0;
9263	TALLOC_CTX *_mem_save_old_nt_crypted_0;
9264	TALLOC_CTX *_mem_save_new_nt_crypted_0;
9265	TALLOC_CTX *_mem_save_nt_cross_0;
9266	TALLOC_CTX *_mem_save_lm_cross_0;
9267	if (flags & NDR_IN) {
9268		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9269			NDR_PULL_ALLOC(ndr, r->in.user_handle);
9270		}
9271		_mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9272		NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
9273		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9274		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
9275		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.lm_present));
9276		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_old_lm_crypted));
9277		if (_ptr_old_lm_crypted) {
9278			NDR_PULL_ALLOC(ndr, r->in.old_lm_crypted);
9279		} else {
9280			r->in.old_lm_crypted = NULL;
9281		}
9282		if (r->in.old_lm_crypted) {
9283			_mem_save_old_lm_crypted_0 = NDR_PULL_GET_MEM_CTX(ndr);
9284			NDR_PULL_SET_MEM_CTX(ndr, r->in.old_lm_crypted, 0);
9285			NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.old_lm_crypted));
9286			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_lm_crypted_0, 0);
9287		}
9288		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_new_lm_crypted));
9289		if (_ptr_new_lm_crypted) {
9290			NDR_PULL_ALLOC(ndr, r->in.new_lm_crypted);
9291		} else {
9292			r->in.new_lm_crypted = NULL;
9293		}
9294		if (r->in.new_lm_crypted) {
9295			_mem_save_new_lm_crypted_0 = NDR_PULL_GET_MEM_CTX(ndr);
9296			NDR_PULL_SET_MEM_CTX(ndr, r->in.new_lm_crypted, 0);
9297			NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.new_lm_crypted));
9298			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_lm_crypted_0, 0);
9299		}
9300		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.nt_present));
9301		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_old_nt_crypted));
9302		if (_ptr_old_nt_crypted) {
9303			NDR_PULL_ALLOC(ndr, r->in.old_nt_crypted);
9304		} else {
9305			r->in.old_nt_crypted = NULL;
9306		}
9307		if (r->in.old_nt_crypted) {
9308			_mem_save_old_nt_crypted_0 = NDR_PULL_GET_MEM_CTX(ndr);
9309			NDR_PULL_SET_MEM_CTX(ndr, r->in.old_nt_crypted, 0);
9310			NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.old_nt_crypted));
9311			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_nt_crypted_0, 0);
9312		}
9313		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_new_nt_crypted));
9314		if (_ptr_new_nt_crypted) {
9315			NDR_PULL_ALLOC(ndr, r->in.new_nt_crypted);
9316		} else {
9317			r->in.new_nt_crypted = NULL;
9318		}
9319		if (r->in.new_nt_crypted) {
9320			_mem_save_new_nt_crypted_0 = NDR_PULL_GET_MEM_CTX(ndr);
9321			NDR_PULL_SET_MEM_CTX(ndr, r->in.new_nt_crypted, 0);
9322			NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.new_nt_crypted));
9323			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_nt_crypted_0, 0);
9324		}
9325		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.cross1_present));
9326		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nt_cross));
9327		if (_ptr_nt_cross) {
9328			NDR_PULL_ALLOC(ndr, r->in.nt_cross);
9329		} else {
9330			r->in.nt_cross = NULL;
9331		}
9332		if (r->in.nt_cross) {
9333			_mem_save_nt_cross_0 = NDR_PULL_GET_MEM_CTX(ndr);
9334			NDR_PULL_SET_MEM_CTX(ndr, r->in.nt_cross, 0);
9335			NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.nt_cross));
9336			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nt_cross_0, 0);
9337		}
9338		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.cross2_present));
9339		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lm_cross));
9340		if (_ptr_lm_cross) {
9341			NDR_PULL_ALLOC(ndr, r->in.lm_cross);
9342		} else {
9343			r->in.lm_cross = NULL;
9344		}
9345		if (r->in.lm_cross) {
9346			_mem_save_lm_cross_0 = NDR_PULL_GET_MEM_CTX(ndr);
9347			NDR_PULL_SET_MEM_CTX(ndr, r->in.lm_cross, 0);
9348			NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.lm_cross));
9349			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lm_cross_0, 0);
9350		}
9351	}
9352	if (flags & NDR_OUT) {
9353		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9354	}
9355	return NDR_ERR_SUCCESS;
9356}
9357
9358_PUBLIC_ void ndr_print_samr_ChangePasswordUser(struct ndr_print *ndr, const char *name, int flags, const struct samr_ChangePasswordUser *r)
9359{
9360	ndr_print_struct(ndr, name, "samr_ChangePasswordUser");
9361	ndr->depth++;
9362	if (flags & NDR_SET_VALUES) {
9363		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9364	}
9365	if (flags & NDR_IN) {
9366		ndr_print_struct(ndr, "in", "samr_ChangePasswordUser");
9367		ndr->depth++;
9368		ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
9369		ndr->depth++;
9370		ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
9371		ndr->depth--;
9372		ndr_print_uint8(ndr, "lm_present", r->in.lm_present);
9373		ndr_print_ptr(ndr, "old_lm_crypted", r->in.old_lm_crypted);
9374		ndr->depth++;
9375		if (r->in.old_lm_crypted) {
9376			ndr_print_samr_Password(ndr, "old_lm_crypted", r->in.old_lm_crypted);
9377		}
9378		ndr->depth--;
9379		ndr_print_ptr(ndr, "new_lm_crypted", r->in.new_lm_crypted);
9380		ndr->depth++;
9381		if (r->in.new_lm_crypted) {
9382			ndr_print_samr_Password(ndr, "new_lm_crypted", r->in.new_lm_crypted);
9383		}
9384		ndr->depth--;
9385		ndr_print_uint8(ndr, "nt_present", r->in.nt_present);
9386		ndr_print_ptr(ndr, "old_nt_crypted", r->in.old_nt_crypted);
9387		ndr->depth++;
9388		if (r->in.old_nt_crypted) {
9389			ndr_print_samr_Password(ndr, "old_nt_crypted", r->in.old_nt_crypted);
9390		}
9391		ndr->depth--;
9392		ndr_print_ptr(ndr, "new_nt_crypted", r->in.new_nt_crypted);
9393		ndr->depth++;
9394		if (r->in.new_nt_crypted) {
9395			ndr_print_samr_Password(ndr, "new_nt_crypted", r->in.new_nt_crypted);
9396		}
9397		ndr->depth--;
9398		ndr_print_uint8(ndr, "cross1_present", r->in.cross1_present);
9399		ndr_print_ptr(ndr, "nt_cross", r->in.nt_cross);
9400		ndr->depth++;
9401		if (r->in.nt_cross) {
9402			ndr_print_samr_Password(ndr, "nt_cross", r->in.nt_cross);
9403		}
9404		ndr->depth--;
9405		ndr_print_uint8(ndr, "cross2_present", r->in.cross2_present);
9406		ndr_print_ptr(ndr, "lm_cross", r->in.lm_cross);
9407		ndr->depth++;
9408		if (r->in.lm_cross) {
9409			ndr_print_samr_Password(ndr, "lm_cross", r->in.lm_cross);
9410		}
9411		ndr->depth--;
9412		ndr->depth--;
9413	}
9414	if (flags & NDR_OUT) {
9415		ndr_print_struct(ndr, "out", "samr_ChangePasswordUser");
9416		ndr->depth++;
9417		ndr_print_NTSTATUS(ndr, "result", r->out.result);
9418		ndr->depth--;
9419	}
9420	ndr->depth--;
9421}
9422
9423static enum ndr_err_code ndr_push_samr_GetGroupsForUser(struct ndr_push *ndr, int flags, const struct samr_GetGroupsForUser *r)
9424{
9425	if (flags & NDR_IN) {
9426		if (r->in.user_handle == NULL) {
9427			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9428		}
9429		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9430	}
9431	if (flags & NDR_OUT) {
9432		if (r->out.rids == NULL) {
9433			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9434		}
9435		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.rids));
9436		if (*r->out.rids) {
9437			NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.rids));
9438		}
9439		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9440	}
9441	return NDR_ERR_SUCCESS;
9442}
9443
9444static enum ndr_err_code ndr_pull_samr_GetGroupsForUser(struct ndr_pull *ndr, int flags, struct samr_GetGroupsForUser *r)
9445{
9446	uint32_t _ptr_rids;
9447	TALLOC_CTX *_mem_save_user_handle_0;
9448	TALLOC_CTX *_mem_save_rids_0;
9449	TALLOC_CTX *_mem_save_rids_1;
9450	if (flags & NDR_IN) {
9451		ZERO_STRUCT(r->out);
9452
9453		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9454			NDR_PULL_ALLOC(ndr, r->in.user_handle);
9455		}
9456		_mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9457		NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
9458		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9459		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
9460		NDR_PULL_ALLOC(ndr, r->out.rids);
9461		ZERO_STRUCTP(r->out.rids);
9462	}
9463	if (flags & NDR_OUT) {
9464		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9465			NDR_PULL_ALLOC(ndr, r->out.rids);
9466		}
9467		_mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
9468		NDR_PULL_SET_MEM_CTX(ndr, r->out.rids, LIBNDR_FLAG_REF_ALLOC);
9469		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
9470		if (_ptr_rids) {
9471			NDR_PULL_ALLOC(ndr, *r->out.rids);
9472		} else {
9473			*r->out.rids = NULL;
9474		}
9475		if (*r->out.rids) {
9476			_mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
9477			NDR_PULL_SET_MEM_CTX(ndr, *r->out.rids, 0);
9478			NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.rids));
9479			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
9480		}
9481		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, LIBNDR_FLAG_REF_ALLOC);
9482		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9483	}
9484	return NDR_ERR_SUCCESS;
9485}
9486
9487_PUBLIC_ void ndr_print_samr_GetGroupsForUser(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetGroupsForUser *r)
9488{
9489	ndr_print_struct(ndr, name, "samr_GetGroupsForUser");
9490	ndr->depth++;
9491	if (flags & NDR_SET_VALUES) {
9492		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9493	}
9494	if (flags & NDR_IN) {
9495		ndr_print_struct(ndr, "in", "samr_GetGroupsForUser");
9496		ndr->depth++;
9497		ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
9498		ndr->depth++;
9499		ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
9500		ndr->depth--;
9501		ndr->depth--;
9502	}
9503	if (flags & NDR_OUT) {
9504		ndr_print_struct(ndr, "out", "samr_GetGroupsForUser");
9505		ndr->depth++;
9506		ndr_print_ptr(ndr, "rids", r->out.rids);
9507		ndr->depth++;
9508		ndr_print_ptr(ndr, "rids", *r->out.rids);
9509		ndr->depth++;
9510		if (*r->out.rids) {
9511			ndr_print_samr_RidWithAttributeArray(ndr, "rids", *r->out.rids);
9512		}
9513		ndr->depth--;
9514		ndr->depth--;
9515		ndr_print_NTSTATUS(ndr, "result", r->out.result);
9516		ndr->depth--;
9517	}
9518	ndr->depth--;
9519}
9520
9521static enum ndr_err_code ndr_push_samr_QueryDisplayInfo(struct ndr_push *ndr, int flags, const struct samr_QueryDisplayInfo *r)
9522{
9523	if (flags & NDR_IN) {
9524		if (r->in.domain_handle == NULL) {
9525			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9526		}
9527		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9528		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
9529		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.start_idx));
9530		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_entries));
9531		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
9532	}
9533	if (flags & NDR_OUT) {
9534		if (r->out.total_size == NULL) {
9535			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9536		}
9537		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_size));
9538		if (r->out.returned_size == NULL) {
9539			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9540		}
9541		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.returned_size));
9542		if (r->out.info == NULL) {
9543			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9544		}
9545		NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
9546		NDR_CHECK(ndr_push_samr_DispInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9547		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9548	}
9549	return NDR_ERR_SUCCESS;
9550}
9551
9552static enum ndr_err_code ndr_pull_samr_QueryDisplayInfo(struct ndr_pull *ndr, int flags, struct samr_QueryDisplayInfo *r)
9553{
9554	TALLOC_CTX *_mem_save_domain_handle_0;
9555	TALLOC_CTX *_mem_save_total_size_0;
9556	TALLOC_CTX *_mem_save_returned_size_0;
9557	TALLOC_CTX *_mem_save_info_0;
9558	if (flags & NDR_IN) {
9559		ZERO_STRUCT(r->out);
9560
9561		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9562			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
9563		}
9564		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9565		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
9566		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9567		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
9568		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
9569		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.start_idx));
9570		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_entries));
9571		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
9572		NDR_PULL_ALLOC(ndr, r->out.total_size);
9573		ZERO_STRUCTP(r->out.total_size);
9574		NDR_PULL_ALLOC(ndr, r->out.returned_size);
9575		ZERO_STRUCTP(r->out.returned_size);
9576		NDR_PULL_ALLOC(ndr, r->out.info);
9577		ZERO_STRUCTP(r->out.info);
9578	}
9579	if (flags & NDR_OUT) {
9580		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9581			NDR_PULL_ALLOC(ndr, r->out.total_size);
9582		}
9583		_mem_save_total_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
9584		NDR_PULL_SET_MEM_CTX(ndr, r->out.total_size, LIBNDR_FLAG_REF_ALLOC);
9585		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_size));
9586		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_size_0, LIBNDR_FLAG_REF_ALLOC);
9587		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9588			NDR_PULL_ALLOC(ndr, r->out.returned_size);
9589		}
9590		_mem_save_returned_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
9591		NDR_PULL_SET_MEM_CTX(ndr, r->out.returned_size, LIBNDR_FLAG_REF_ALLOC);
9592		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.returned_size));
9593		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_returned_size_0, LIBNDR_FLAG_REF_ALLOC);
9594		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9595			NDR_PULL_ALLOC(ndr, r->out.info);
9596		}
9597		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9598		NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9599		NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
9600		NDR_CHECK(ndr_pull_samr_DispInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9601		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9602		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9603	}
9604	return NDR_ERR_SUCCESS;
9605}
9606
9607_PUBLIC_ void ndr_print_samr_QueryDisplayInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryDisplayInfo *r)
9608{
9609	ndr_print_struct(ndr, name, "samr_QueryDisplayInfo");
9610	ndr->depth++;
9611	if (flags & NDR_SET_VALUES) {
9612		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9613	}
9614	if (flags & NDR_IN) {
9615		ndr_print_struct(ndr, "in", "samr_QueryDisplayInfo");
9616		ndr->depth++;
9617		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
9618		ndr->depth++;
9619		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
9620		ndr->depth--;
9621		ndr_print_uint16(ndr, "level", r->in.level);
9622		ndr_print_uint32(ndr, "start_idx", r->in.start_idx);
9623		ndr_print_uint32(ndr, "max_entries", r->in.max_entries);
9624		ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
9625		ndr->depth--;
9626	}
9627	if (flags & NDR_OUT) {
9628		ndr_print_struct(ndr, "out", "samr_QueryDisplayInfo");
9629		ndr->depth++;
9630		ndr_print_ptr(ndr, "total_size", r->out.total_size);
9631		ndr->depth++;
9632		ndr_print_uint32(ndr, "total_size", *r->out.total_size);
9633		ndr->depth--;
9634		ndr_print_ptr(ndr, "returned_size", r->out.returned_size);
9635		ndr->depth++;
9636		ndr_print_uint32(ndr, "returned_size", *r->out.returned_size);
9637		ndr->depth--;
9638		ndr_print_ptr(ndr, "info", r->out.info);
9639		ndr->depth++;
9640		ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
9641		ndr_print_samr_DispInfo(ndr, "info", r->out.info);
9642		ndr->depth--;
9643		ndr_print_NTSTATUS(ndr, "result", r->out.result);
9644		ndr->depth--;
9645	}
9646	ndr->depth--;
9647}
9648
9649static enum ndr_err_code ndr_push_samr_GetDisplayEnumerationIndex(struct ndr_push *ndr, int flags, const struct samr_GetDisplayEnumerationIndex *r)
9650{
9651	if (flags & NDR_IN) {
9652		if (r->in.domain_handle == NULL) {
9653			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9654		}
9655		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9656		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
9657		if (r->in.name == NULL) {
9658			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9659		}
9660		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
9661	}
9662	if (flags & NDR_OUT) {
9663		if (r->out.idx == NULL) {
9664			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9665		}
9666		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.idx));
9667		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9668	}
9669	return NDR_ERR_SUCCESS;
9670}
9671
9672static enum ndr_err_code ndr_pull_samr_GetDisplayEnumerationIndex(struct ndr_pull *ndr, int flags, struct samr_GetDisplayEnumerationIndex *r)
9673{
9674	TALLOC_CTX *_mem_save_domain_handle_0;
9675	TALLOC_CTX *_mem_save_name_0;
9676	TALLOC_CTX *_mem_save_idx_0;
9677	if (flags & NDR_IN) {
9678		ZERO_STRUCT(r->out);
9679
9680		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9681			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
9682		}
9683		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9684		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
9685		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9686		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
9687		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
9688		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9689			NDR_PULL_ALLOC(ndr, r->in.name);
9690		}
9691		_mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9692		NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
9693		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
9694		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
9695		NDR_PULL_ALLOC(ndr, r->out.idx);
9696		ZERO_STRUCTP(r->out.idx);
9697	}
9698	if (flags & NDR_OUT) {
9699		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9700			NDR_PULL_ALLOC(ndr, r->out.idx);
9701		}
9702		_mem_save_idx_0 = NDR_PULL_GET_MEM_CTX(ndr);
9703		NDR_PULL_SET_MEM_CTX(ndr, r->out.idx, LIBNDR_FLAG_REF_ALLOC);
9704		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.idx));
9705		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_idx_0, LIBNDR_FLAG_REF_ALLOC);
9706		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9707	}
9708	return NDR_ERR_SUCCESS;
9709}
9710
9711_PUBLIC_ void ndr_print_samr_GetDisplayEnumerationIndex(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetDisplayEnumerationIndex *r)
9712{
9713	ndr_print_struct(ndr, name, "samr_GetDisplayEnumerationIndex");
9714	ndr->depth++;
9715	if (flags & NDR_SET_VALUES) {
9716		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9717	}
9718	if (flags & NDR_IN) {
9719		ndr_print_struct(ndr, "in", "samr_GetDisplayEnumerationIndex");
9720		ndr->depth++;
9721		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
9722		ndr->depth++;
9723		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
9724		ndr->depth--;
9725		ndr_print_uint16(ndr, "level", r->in.level);
9726		ndr_print_ptr(ndr, "name", r->in.name);
9727		ndr->depth++;
9728		ndr_print_lsa_String(ndr, "name", r->in.name);
9729		ndr->depth--;
9730		ndr->depth--;
9731	}
9732	if (flags & NDR_OUT) {
9733		ndr_print_struct(ndr, "out", "samr_GetDisplayEnumerationIndex");
9734		ndr->depth++;
9735		ndr_print_ptr(ndr, "idx", r->out.idx);
9736		ndr->depth++;
9737		ndr_print_uint32(ndr, "idx", *r->out.idx);
9738		ndr->depth--;
9739		ndr_print_NTSTATUS(ndr, "result", r->out.result);
9740		ndr->depth--;
9741	}
9742	ndr->depth--;
9743}
9744
9745static enum ndr_err_code ndr_push_samr_TestPrivateFunctionsDomain(struct ndr_push *ndr, int flags, const struct samr_TestPrivateFunctionsDomain *r)
9746{
9747	if (flags & NDR_IN) {
9748		if (r->in.domain_handle == NULL) {
9749			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9750		}
9751		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9752	}
9753	if (flags & NDR_OUT) {
9754		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9755	}
9756	return NDR_ERR_SUCCESS;
9757}
9758
9759static enum ndr_err_code ndr_pull_samr_TestPrivateFunctionsDomain(struct ndr_pull *ndr, int flags, struct samr_TestPrivateFunctionsDomain *r)
9760{
9761	TALLOC_CTX *_mem_save_domain_handle_0;
9762	if (flags & NDR_IN) {
9763		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9764			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
9765		}
9766		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9767		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
9768		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9769		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
9770	}
9771	if (flags & NDR_OUT) {
9772		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9773	}
9774	return NDR_ERR_SUCCESS;
9775}
9776
9777_PUBLIC_ void ndr_print_samr_TestPrivateFunctionsDomain(struct ndr_print *ndr, const char *name, int flags, const struct samr_TestPrivateFunctionsDomain *r)
9778{
9779	ndr_print_struct(ndr, name, "samr_TestPrivateFunctionsDomain");
9780	ndr->depth++;
9781	if (flags & NDR_SET_VALUES) {
9782		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9783	}
9784	if (flags & NDR_IN) {
9785		ndr_print_struct(ndr, "in", "samr_TestPrivateFunctionsDomain");
9786		ndr->depth++;
9787		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
9788		ndr->depth++;
9789		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
9790		ndr->depth--;
9791		ndr->depth--;
9792	}
9793	if (flags & NDR_OUT) {
9794		ndr_print_struct(ndr, "out", "samr_TestPrivateFunctionsDomain");
9795		ndr->depth++;
9796		ndr_print_NTSTATUS(ndr, "result", r->out.result);
9797		ndr->depth--;
9798	}
9799	ndr->depth--;
9800}
9801
9802static enum ndr_err_code ndr_push_samr_TestPrivateFunctionsUser(struct ndr_push *ndr, int flags, const struct samr_TestPrivateFunctionsUser *r)
9803{
9804	if (flags & NDR_IN) {
9805		if (r->in.user_handle == NULL) {
9806			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9807		}
9808		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9809	}
9810	if (flags & NDR_OUT) {
9811		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9812	}
9813	return NDR_ERR_SUCCESS;
9814}
9815
9816static enum ndr_err_code ndr_pull_samr_TestPrivateFunctionsUser(struct ndr_pull *ndr, int flags, struct samr_TestPrivateFunctionsUser *r)
9817{
9818	TALLOC_CTX *_mem_save_user_handle_0;
9819	if (flags & NDR_IN) {
9820		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9821			NDR_PULL_ALLOC(ndr, r->in.user_handle);
9822		}
9823		_mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9824		NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
9825		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9826		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
9827	}
9828	if (flags & NDR_OUT) {
9829		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9830	}
9831	return NDR_ERR_SUCCESS;
9832}
9833
9834_PUBLIC_ void ndr_print_samr_TestPrivateFunctionsUser(struct ndr_print *ndr, const char *name, int flags, const struct samr_TestPrivateFunctionsUser *r)
9835{
9836	ndr_print_struct(ndr, name, "samr_TestPrivateFunctionsUser");
9837	ndr->depth++;
9838	if (flags & NDR_SET_VALUES) {
9839		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9840	}
9841	if (flags & NDR_IN) {
9842		ndr_print_struct(ndr, "in", "samr_TestPrivateFunctionsUser");
9843		ndr->depth++;
9844		ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
9845		ndr->depth++;
9846		ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
9847		ndr->depth--;
9848		ndr->depth--;
9849	}
9850	if (flags & NDR_OUT) {
9851		ndr_print_struct(ndr, "out", "samr_TestPrivateFunctionsUser");
9852		ndr->depth++;
9853		ndr_print_NTSTATUS(ndr, "result", r->out.result);
9854		ndr->depth--;
9855	}
9856	ndr->depth--;
9857}
9858
9859_PUBLIC_ enum ndr_err_code ndr_push_samr_GetUserPwInfo(struct ndr_push *ndr, int flags, const struct samr_GetUserPwInfo *r)
9860{
9861	if (flags & NDR_IN) {
9862		if (r->in.user_handle == NULL) {
9863			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9864		}
9865		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9866	}
9867	if (flags & NDR_OUT) {
9868		if (r->out.info == NULL) {
9869			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9870		}
9871		NDR_CHECK(ndr_push_samr_PwInfo(ndr, NDR_SCALARS, r->out.info));
9872		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9873	}
9874	return NDR_ERR_SUCCESS;
9875}
9876
9877_PUBLIC_ enum ndr_err_code ndr_pull_samr_GetUserPwInfo(struct ndr_pull *ndr, int flags, struct samr_GetUserPwInfo *r)
9878{
9879	TALLOC_CTX *_mem_save_user_handle_0;
9880	TALLOC_CTX *_mem_save_info_0;
9881	if (flags & NDR_IN) {
9882		ZERO_STRUCT(r->out);
9883
9884		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9885			NDR_PULL_ALLOC(ndr, r->in.user_handle);
9886		}
9887		_mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9888		NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
9889		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9890		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
9891		NDR_PULL_ALLOC(ndr, r->out.info);
9892		ZERO_STRUCTP(r->out.info);
9893	}
9894	if (flags & NDR_OUT) {
9895		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9896			NDR_PULL_ALLOC(ndr, r->out.info);
9897		}
9898		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9899		NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9900		NDR_CHECK(ndr_pull_samr_PwInfo(ndr, NDR_SCALARS, r->out.info));
9901		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9902		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9903	}
9904	return NDR_ERR_SUCCESS;
9905}
9906
9907_PUBLIC_ void ndr_print_samr_GetUserPwInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetUserPwInfo *r)
9908{
9909	ndr_print_struct(ndr, name, "samr_GetUserPwInfo");
9910	ndr->depth++;
9911	if (flags & NDR_SET_VALUES) {
9912		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9913	}
9914	if (flags & NDR_IN) {
9915		ndr_print_struct(ndr, "in", "samr_GetUserPwInfo");
9916		ndr->depth++;
9917		ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
9918		ndr->depth++;
9919		ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
9920		ndr->depth--;
9921		ndr->depth--;
9922	}
9923	if (flags & NDR_OUT) {
9924		ndr_print_struct(ndr, "out", "samr_GetUserPwInfo");
9925		ndr->depth++;
9926		ndr_print_ptr(ndr, "info", r->out.info);
9927		ndr->depth++;
9928		ndr_print_samr_PwInfo(ndr, "info", r->out.info);
9929		ndr->depth--;
9930		ndr_print_NTSTATUS(ndr, "result", r->out.result);
9931		ndr->depth--;
9932	}
9933	ndr->depth--;
9934}
9935
9936static enum ndr_err_code ndr_push_samr_RemoveMemberFromForeignDomain(struct ndr_push *ndr, int flags, const struct samr_RemoveMemberFromForeignDomain *r)
9937{
9938	if (flags & NDR_IN) {
9939		if (r->in.domain_handle == NULL) {
9940			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9941		}
9942		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9943		if (r->in.sid == NULL) {
9944			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9945		}
9946		NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
9947	}
9948	if (flags & NDR_OUT) {
9949		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9950	}
9951	return NDR_ERR_SUCCESS;
9952}
9953
9954static enum ndr_err_code ndr_pull_samr_RemoveMemberFromForeignDomain(struct ndr_pull *ndr, int flags, struct samr_RemoveMemberFromForeignDomain *r)
9955{
9956	TALLOC_CTX *_mem_save_domain_handle_0;
9957	TALLOC_CTX *_mem_save_sid_0;
9958	if (flags & NDR_IN) {
9959		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9960			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
9961		}
9962		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9963		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
9964		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9965		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
9966		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9967			NDR_PULL_ALLOC(ndr, r->in.sid);
9968		}
9969		_mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9970		NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
9971		NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
9972		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
9973	}
9974	if (flags & NDR_OUT) {
9975		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9976	}
9977	return NDR_ERR_SUCCESS;
9978}
9979
9980_PUBLIC_ void ndr_print_samr_RemoveMemberFromForeignDomain(struct ndr_print *ndr, const char *name, int flags, const struct samr_RemoveMemberFromForeignDomain *r)
9981{
9982	ndr_print_struct(ndr, name, "samr_RemoveMemberFromForeignDomain");
9983	ndr->depth++;
9984	if (flags & NDR_SET_VALUES) {
9985		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9986	}
9987	if (flags & NDR_IN) {
9988		ndr_print_struct(ndr, "in", "samr_RemoveMemberFromForeignDomain");
9989		ndr->depth++;
9990		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
9991		ndr->depth++;
9992		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
9993		ndr->depth--;
9994		ndr_print_ptr(ndr, "sid", r->in.sid);
9995		ndr->depth++;
9996		ndr_print_dom_sid2(ndr, "sid", r->in.sid);
9997		ndr->depth--;
9998		ndr->depth--;
9999	}
10000	if (flags & NDR_OUT) {
10001		ndr_print_struct(ndr, "out", "samr_RemoveMemberFromForeignDomain");
10002		ndr->depth++;
10003		ndr_print_NTSTATUS(ndr, "result", r->out.result);
10004		ndr->depth--;
10005	}
10006	ndr->depth--;
10007}
10008
10009static enum ndr_err_code ndr_push_samr_QueryDomainInfo2(struct ndr_push *ndr, int flags, const struct samr_QueryDomainInfo2 *r)
10010{
10011	if (flags & NDR_IN) {
10012		if (r->in.domain_handle == NULL) {
10013			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10014		}
10015		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10016		NDR_CHECK(ndr_push_samr_DomainInfoClass(ndr, NDR_SCALARS, r->in.level));
10017	}
10018	if (flags & NDR_OUT) {
10019		if (r->out.info == NULL) {
10020			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10021		}
10022		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
10023		if (*r->out.info) {
10024			NDR_CHECK(ndr_push_set_switch_value(ndr, *r->out.info, r->in.level));
10025			NDR_CHECK(ndr_push_samr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
10026		}
10027		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10028	}
10029	return NDR_ERR_SUCCESS;
10030}
10031
10032static enum ndr_err_code ndr_pull_samr_QueryDomainInfo2(struct ndr_pull *ndr, int flags, struct samr_QueryDomainInfo2 *r)
10033{
10034	uint32_t _ptr_info;
10035	TALLOC_CTX *_mem_save_domain_handle_0;
10036	TALLOC_CTX *_mem_save_info_0;
10037	TALLOC_CTX *_mem_save_info_1;
10038	if (flags & NDR_IN) {
10039		ZERO_STRUCT(r->out);
10040
10041		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10042			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
10043		}
10044		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10045		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
10046		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10047		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
10048		NDR_CHECK(ndr_pull_samr_DomainInfoClass(ndr, NDR_SCALARS, &r->in.level));
10049		NDR_PULL_ALLOC(ndr, r->out.info);
10050		ZERO_STRUCTP(r->out.info);
10051	}
10052	if (flags & NDR_OUT) {
10053		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10054			NDR_PULL_ALLOC(ndr, r->out.info);
10055		}
10056		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10057		NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10058		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
10059		if (_ptr_info) {
10060			NDR_PULL_ALLOC(ndr, *r->out.info);
10061		} else {
10062			*r->out.info = NULL;
10063		}
10064		if (*r->out.info) {
10065			_mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
10066			NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
10067			NDR_CHECK(ndr_pull_set_switch_value(ndr, *r->out.info, r->in.level));
10068			NDR_CHECK(ndr_pull_samr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
10069			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
10070		}
10071		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10072		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10073	}
10074	return NDR_ERR_SUCCESS;
10075}
10076
10077_PUBLIC_ void ndr_print_samr_QueryDomainInfo2(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryDomainInfo2 *r)
10078{
10079	ndr_print_struct(ndr, name, "samr_QueryDomainInfo2");
10080	ndr->depth++;
10081	if (flags & NDR_SET_VALUES) {
10082		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10083	}
10084	if (flags & NDR_IN) {
10085		ndr_print_struct(ndr, "in", "samr_QueryDomainInfo2");
10086		ndr->depth++;
10087		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
10088		ndr->depth++;
10089		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
10090		ndr->depth--;
10091		ndr_print_samr_DomainInfoClass(ndr, "level", r->in.level);
10092		ndr->depth--;
10093	}
10094	if (flags & NDR_OUT) {
10095		ndr_print_struct(ndr, "out", "samr_QueryDomainInfo2");
10096		ndr->depth++;
10097		ndr_print_ptr(ndr, "info", r->out.info);
10098		ndr->depth++;
10099		ndr_print_ptr(ndr, "info", *r->out.info);
10100		ndr->depth++;
10101		if (*r->out.info) {
10102			ndr_print_set_switch_value(ndr, *r->out.info, r->in.level);
10103			ndr_print_samr_DomainInfo(ndr, "info", *r->out.info);
10104		}
10105		ndr->depth--;
10106		ndr->depth--;
10107		ndr_print_NTSTATUS(ndr, "result", r->out.result);
10108		ndr->depth--;
10109	}
10110	ndr->depth--;
10111}
10112
10113static enum ndr_err_code ndr_push_samr_QueryUserInfo2(struct ndr_push *ndr, int flags, const struct samr_QueryUserInfo2 *r)
10114{
10115	if (flags & NDR_IN) {
10116		if (r->in.user_handle == NULL) {
10117			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10118		}
10119		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
10120		NDR_CHECK(ndr_push_samr_UserInfoLevel(ndr, NDR_SCALARS, r->in.level));
10121	}
10122	if (flags & NDR_OUT) {
10123		if (r->out.info == NULL) {
10124			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10125		}
10126		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
10127		if (*r->out.info) {
10128			NDR_CHECK(ndr_push_set_switch_value(ndr, *r->out.info, r->in.level));
10129			NDR_CHECK(ndr_push_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
10130		}
10131		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10132	}
10133	return NDR_ERR_SUCCESS;
10134}
10135
10136static enum ndr_err_code ndr_pull_samr_QueryUserInfo2(struct ndr_pull *ndr, int flags, struct samr_QueryUserInfo2 *r)
10137{
10138	uint32_t _ptr_info;
10139	TALLOC_CTX *_mem_save_user_handle_0;
10140	TALLOC_CTX *_mem_save_info_0;
10141	TALLOC_CTX *_mem_save_info_1;
10142	if (flags & NDR_IN) {
10143		ZERO_STRUCT(r->out);
10144
10145		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10146			NDR_PULL_ALLOC(ndr, r->in.user_handle);
10147		}
10148		_mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10149		NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
10150		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
10151		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
10152		NDR_CHECK(ndr_pull_samr_UserInfoLevel(ndr, NDR_SCALARS, &r->in.level));
10153		NDR_PULL_ALLOC(ndr, r->out.info);
10154		ZERO_STRUCTP(r->out.info);
10155	}
10156	if (flags & NDR_OUT) {
10157		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10158			NDR_PULL_ALLOC(ndr, r->out.info);
10159		}
10160		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10161		NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10162		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
10163		if (_ptr_info) {
10164			NDR_PULL_ALLOC(ndr, *r->out.info);
10165		} else {
10166			*r->out.info = NULL;
10167		}
10168		if (*r->out.info) {
10169			_mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
10170			NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
10171			NDR_CHECK(ndr_pull_set_switch_value(ndr, *r->out.info, r->in.level));
10172			NDR_CHECK(ndr_pull_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
10173			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
10174		}
10175		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10176		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10177	}
10178	return NDR_ERR_SUCCESS;
10179}
10180
10181_PUBLIC_ void ndr_print_samr_QueryUserInfo2(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryUserInfo2 *r)
10182{
10183	ndr_print_struct(ndr, name, "samr_QueryUserInfo2");
10184	ndr->depth++;
10185	if (flags & NDR_SET_VALUES) {
10186		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10187	}
10188	if (flags & NDR_IN) {
10189		ndr_print_struct(ndr, "in", "samr_QueryUserInfo2");
10190		ndr->depth++;
10191		ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
10192		ndr->depth++;
10193		ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
10194		ndr->depth--;
10195		ndr_print_samr_UserInfoLevel(ndr, "level", r->in.level);
10196		ndr->depth--;
10197	}
10198	if (flags & NDR_OUT) {
10199		ndr_print_struct(ndr, "out", "samr_QueryUserInfo2");
10200		ndr->depth++;
10201		ndr_print_ptr(ndr, "info", r->out.info);
10202		ndr->depth++;
10203		ndr_print_ptr(ndr, "info", *r->out.info);
10204		ndr->depth++;
10205		if (*r->out.info) {
10206			ndr_print_set_switch_value(ndr, *r->out.info, r->in.level);
10207			ndr_print_samr_UserInfo(ndr, "info", *r->out.info);
10208		}
10209		ndr->depth--;
10210		ndr->depth--;
10211		ndr_print_NTSTATUS(ndr, "result", r->out.result);
10212		ndr->depth--;
10213	}
10214	ndr->depth--;
10215}
10216
10217static enum ndr_err_code ndr_push_samr_QueryDisplayInfo2(struct ndr_push *ndr, int flags, const struct samr_QueryDisplayInfo2 *r)
10218{
10219	if (flags & NDR_IN) {
10220		if (r->in.domain_handle == NULL) {
10221			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10222		}
10223		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10224		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
10225		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.start_idx));
10226		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_entries));
10227		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
10228	}
10229	if (flags & NDR_OUT) {
10230		if (r->out.total_size == NULL) {
10231			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10232		}
10233		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_size));
10234		if (r->out.returned_size == NULL) {
10235			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10236		}
10237		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.returned_size));
10238		if (r->out.info == NULL) {
10239			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10240		}
10241		NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
10242		NDR_CHECK(ndr_push_samr_DispInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10243		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10244	}
10245	return NDR_ERR_SUCCESS;
10246}
10247
10248static enum ndr_err_code ndr_pull_samr_QueryDisplayInfo2(struct ndr_pull *ndr, int flags, struct samr_QueryDisplayInfo2 *r)
10249{
10250	TALLOC_CTX *_mem_save_domain_handle_0;
10251	TALLOC_CTX *_mem_save_total_size_0;
10252	TALLOC_CTX *_mem_save_returned_size_0;
10253	TALLOC_CTX *_mem_save_info_0;
10254	if (flags & NDR_IN) {
10255		ZERO_STRUCT(r->out);
10256
10257		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10258			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
10259		}
10260		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10261		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
10262		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10263		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
10264		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
10265		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.start_idx));
10266		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_entries));
10267		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
10268		NDR_PULL_ALLOC(ndr, r->out.total_size);
10269		ZERO_STRUCTP(r->out.total_size);
10270		NDR_PULL_ALLOC(ndr, r->out.returned_size);
10271		ZERO_STRUCTP(r->out.returned_size);
10272		NDR_PULL_ALLOC(ndr, r->out.info);
10273		ZERO_STRUCTP(r->out.info);
10274	}
10275	if (flags & NDR_OUT) {
10276		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10277			NDR_PULL_ALLOC(ndr, r->out.total_size);
10278		}
10279		_mem_save_total_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
10280		NDR_PULL_SET_MEM_CTX(ndr, r->out.total_size, LIBNDR_FLAG_REF_ALLOC);
10281		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_size));
10282		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_size_0, LIBNDR_FLAG_REF_ALLOC);
10283		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10284			NDR_PULL_ALLOC(ndr, r->out.returned_size);
10285		}
10286		_mem_save_returned_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
10287		NDR_PULL_SET_MEM_CTX(ndr, r->out.returned_size, LIBNDR_FLAG_REF_ALLOC);
10288		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.returned_size));
10289		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_returned_size_0, LIBNDR_FLAG_REF_ALLOC);
10290		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10291			NDR_PULL_ALLOC(ndr, r->out.info);
10292		}
10293		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10294		NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10295		NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
10296		NDR_CHECK(ndr_pull_samr_DispInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10297		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10298		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10299	}
10300	return NDR_ERR_SUCCESS;
10301}
10302
10303_PUBLIC_ void ndr_print_samr_QueryDisplayInfo2(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryDisplayInfo2 *r)
10304{
10305	ndr_print_struct(ndr, name, "samr_QueryDisplayInfo2");
10306	ndr->depth++;
10307	if (flags & NDR_SET_VALUES) {
10308		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10309	}
10310	if (flags & NDR_IN) {
10311		ndr_print_struct(ndr, "in", "samr_QueryDisplayInfo2");
10312		ndr->depth++;
10313		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
10314		ndr->depth++;
10315		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
10316		ndr->depth--;
10317		ndr_print_uint16(ndr, "level", r->in.level);
10318		ndr_print_uint32(ndr, "start_idx", r->in.start_idx);
10319		ndr_print_uint32(ndr, "max_entries", r->in.max_entries);
10320		ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
10321		ndr->depth--;
10322	}
10323	if (flags & NDR_OUT) {
10324		ndr_print_struct(ndr, "out", "samr_QueryDisplayInfo2");
10325		ndr->depth++;
10326		ndr_print_ptr(ndr, "total_size", r->out.total_size);
10327		ndr->depth++;
10328		ndr_print_uint32(ndr, "total_size", *r->out.total_size);
10329		ndr->depth--;
10330		ndr_print_ptr(ndr, "returned_size", r->out.returned_size);
10331		ndr->depth++;
10332		ndr_print_uint32(ndr, "returned_size", *r->out.returned_size);
10333		ndr->depth--;
10334		ndr_print_ptr(ndr, "info", r->out.info);
10335		ndr->depth++;
10336		ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10337		ndr_print_samr_DispInfo(ndr, "info", r->out.info);
10338		ndr->depth--;
10339		ndr_print_NTSTATUS(ndr, "result", r->out.result);
10340		ndr->depth--;
10341	}
10342	ndr->depth--;
10343}
10344
10345static enum ndr_err_code ndr_push_samr_GetDisplayEnumerationIndex2(struct ndr_push *ndr, int flags, const struct samr_GetDisplayEnumerationIndex2 *r)
10346{
10347	if (flags & NDR_IN) {
10348		if (r->in.domain_handle == NULL) {
10349			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10350		}
10351		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10352		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
10353		if (r->in.name == NULL) {
10354			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10355		}
10356		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
10357	}
10358	if (flags & NDR_OUT) {
10359		if (r->out.idx == NULL) {
10360			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10361		}
10362		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.idx));
10363		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10364	}
10365	return NDR_ERR_SUCCESS;
10366}
10367
10368static enum ndr_err_code ndr_pull_samr_GetDisplayEnumerationIndex2(struct ndr_pull *ndr, int flags, struct samr_GetDisplayEnumerationIndex2 *r)
10369{
10370	TALLOC_CTX *_mem_save_domain_handle_0;
10371	TALLOC_CTX *_mem_save_name_0;
10372	TALLOC_CTX *_mem_save_idx_0;
10373	if (flags & NDR_IN) {
10374		ZERO_STRUCT(r->out);
10375
10376		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10377			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
10378		}
10379		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10380		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
10381		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10382		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
10383		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
10384		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10385			NDR_PULL_ALLOC(ndr, r->in.name);
10386		}
10387		_mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10388		NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
10389		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
10390		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
10391		NDR_PULL_ALLOC(ndr, r->out.idx);
10392		ZERO_STRUCTP(r->out.idx);
10393	}
10394	if (flags & NDR_OUT) {
10395		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10396			NDR_PULL_ALLOC(ndr, r->out.idx);
10397		}
10398		_mem_save_idx_0 = NDR_PULL_GET_MEM_CTX(ndr);
10399		NDR_PULL_SET_MEM_CTX(ndr, r->out.idx, LIBNDR_FLAG_REF_ALLOC);
10400		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.idx));
10401		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_idx_0, LIBNDR_FLAG_REF_ALLOC);
10402		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10403	}
10404	return NDR_ERR_SUCCESS;
10405}
10406
10407_PUBLIC_ void ndr_print_samr_GetDisplayEnumerationIndex2(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetDisplayEnumerationIndex2 *r)
10408{
10409	ndr_print_struct(ndr, name, "samr_GetDisplayEnumerationIndex2");
10410	ndr->depth++;
10411	if (flags & NDR_SET_VALUES) {
10412		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10413	}
10414	if (flags & NDR_IN) {
10415		ndr_print_struct(ndr, "in", "samr_GetDisplayEnumerationIndex2");
10416		ndr->depth++;
10417		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
10418		ndr->depth++;
10419		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
10420		ndr->depth--;
10421		ndr_print_uint16(ndr, "level", r->in.level);
10422		ndr_print_ptr(ndr, "name", r->in.name);
10423		ndr->depth++;
10424		ndr_print_lsa_String(ndr, "name", r->in.name);
10425		ndr->depth--;
10426		ndr->depth--;
10427	}
10428	if (flags & NDR_OUT) {
10429		ndr_print_struct(ndr, "out", "samr_GetDisplayEnumerationIndex2");
10430		ndr->depth++;
10431		ndr_print_ptr(ndr, "idx", r->out.idx);
10432		ndr->depth++;
10433		ndr_print_uint32(ndr, "idx", *r->out.idx);
10434		ndr->depth--;
10435		ndr_print_NTSTATUS(ndr, "result", r->out.result);
10436		ndr->depth--;
10437	}
10438	ndr->depth--;
10439}
10440
10441static enum ndr_err_code ndr_push_samr_CreateUser2(struct ndr_push *ndr, int flags, const struct samr_CreateUser2 *r)
10442{
10443	if (flags & NDR_IN) {
10444		if (r->in.domain_handle == NULL) {
10445			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10446		}
10447		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10448		if (r->in.account_name == NULL) {
10449			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10450		}
10451		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account_name));
10452		NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.acct_flags));
10453		NDR_CHECK(ndr_push_samr_UserAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
10454	}
10455	if (flags & NDR_OUT) {
10456		if (r->out.user_handle == NULL) {
10457			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10458		}
10459		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
10460		if (r->out.access_granted == NULL) {
10461			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10462		}
10463		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.access_granted));
10464		if (r->out.rid == NULL) {
10465			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10466		}
10467		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
10468		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10469	}
10470	return NDR_ERR_SUCCESS;
10471}
10472
10473static enum ndr_err_code ndr_pull_samr_CreateUser2(struct ndr_pull *ndr, int flags, struct samr_CreateUser2 *r)
10474{
10475	TALLOC_CTX *_mem_save_domain_handle_0;
10476	TALLOC_CTX *_mem_save_account_name_0;
10477	TALLOC_CTX *_mem_save_user_handle_0;
10478	TALLOC_CTX *_mem_save_access_granted_0;
10479	TALLOC_CTX *_mem_save_rid_0;
10480	if (flags & NDR_IN) {
10481		ZERO_STRUCT(r->out);
10482
10483		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10484			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
10485		}
10486		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10487		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
10488		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10489		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
10490		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10491			NDR_PULL_ALLOC(ndr, r->in.account_name);
10492		}
10493		_mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10494		NDR_PULL_SET_MEM_CTX(ndr, r->in.account_name, LIBNDR_FLAG_REF_ALLOC);
10495		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account_name));
10496		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, LIBNDR_FLAG_REF_ALLOC);
10497		NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.acct_flags));
10498		NDR_CHECK(ndr_pull_samr_UserAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
10499		NDR_PULL_ALLOC(ndr, r->out.user_handle);
10500		ZERO_STRUCTP(r->out.user_handle);
10501		NDR_PULL_ALLOC(ndr, r->out.access_granted);
10502		ZERO_STRUCTP(r->out.access_granted);
10503		NDR_PULL_ALLOC(ndr, r->out.rid);
10504		ZERO_STRUCTP(r->out.rid);
10505	}
10506	if (flags & NDR_OUT) {
10507		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10508			NDR_PULL_ALLOC(ndr, r->out.user_handle);
10509		}
10510		_mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10511		NDR_PULL_SET_MEM_CTX(ndr, r->out.user_handle, LIBNDR_FLAG_REF_ALLOC);
10512		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
10513		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
10514		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10515			NDR_PULL_ALLOC(ndr, r->out.access_granted);
10516		}
10517		_mem_save_access_granted_0 = NDR_PULL_GET_MEM_CTX(ndr);
10518		NDR_PULL_SET_MEM_CTX(ndr, r->out.access_granted, LIBNDR_FLAG_REF_ALLOC);
10519		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.access_granted));
10520		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_access_granted_0, LIBNDR_FLAG_REF_ALLOC);
10521		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10522			NDR_PULL_ALLOC(ndr, r->out.rid);
10523		}
10524		_mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10525		NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
10526		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
10527		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
10528		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10529	}
10530	return NDR_ERR_SUCCESS;
10531}
10532
10533_PUBLIC_ void ndr_print_samr_CreateUser2(struct ndr_print *ndr, const char *name, int flags, const struct samr_CreateUser2 *r)
10534{
10535	ndr_print_struct(ndr, name, "samr_CreateUser2");
10536	ndr->depth++;
10537	if (flags & NDR_SET_VALUES) {
10538		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10539	}
10540	if (flags & NDR_IN) {
10541		ndr_print_struct(ndr, "in", "samr_CreateUser2");
10542		ndr->depth++;
10543		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
10544		ndr->depth++;
10545		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
10546		ndr->depth--;
10547		ndr_print_ptr(ndr, "account_name", r->in.account_name);
10548		ndr->depth++;
10549		ndr_print_lsa_String(ndr, "account_name", r->in.account_name);
10550		ndr->depth--;
10551		ndr_print_samr_AcctFlags(ndr, "acct_flags", r->in.acct_flags);
10552		ndr_print_samr_UserAccessMask(ndr, "access_mask", r->in.access_mask);
10553		ndr->depth--;
10554	}
10555	if (flags & NDR_OUT) {
10556		ndr_print_struct(ndr, "out", "samr_CreateUser2");
10557		ndr->depth++;
10558		ndr_print_ptr(ndr, "user_handle", r->out.user_handle);
10559		ndr->depth++;
10560		ndr_print_policy_handle(ndr, "user_handle", r->out.user_handle);
10561		ndr->depth--;
10562		ndr_print_ptr(ndr, "access_granted", r->out.access_granted);
10563		ndr->depth++;
10564		ndr_print_uint32(ndr, "access_granted", *r->out.access_granted);
10565		ndr->depth--;
10566		ndr_print_ptr(ndr, "rid", r->out.rid);
10567		ndr->depth++;
10568		ndr_print_uint32(ndr, "rid", *r->out.rid);
10569		ndr->depth--;
10570		ndr_print_NTSTATUS(ndr, "result", r->out.result);
10571		ndr->depth--;
10572	}
10573	ndr->depth--;
10574}
10575
10576static enum ndr_err_code ndr_push_samr_QueryDisplayInfo3(struct ndr_push *ndr, int flags, const struct samr_QueryDisplayInfo3 *r)
10577{
10578	if (flags & NDR_IN) {
10579		if (r->in.domain_handle == NULL) {
10580			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10581		}
10582		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10583		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
10584		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.start_idx));
10585		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_entries));
10586		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
10587	}
10588	if (flags & NDR_OUT) {
10589		if (r->out.total_size == NULL) {
10590			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10591		}
10592		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_size));
10593		if (r->out.returned_size == NULL) {
10594			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10595		}
10596		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.returned_size));
10597		if (r->out.info == NULL) {
10598			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10599		}
10600		NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
10601		NDR_CHECK(ndr_push_samr_DispInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10602		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10603	}
10604	return NDR_ERR_SUCCESS;
10605}
10606
10607static enum ndr_err_code ndr_pull_samr_QueryDisplayInfo3(struct ndr_pull *ndr, int flags, struct samr_QueryDisplayInfo3 *r)
10608{
10609	TALLOC_CTX *_mem_save_domain_handle_0;
10610	TALLOC_CTX *_mem_save_total_size_0;
10611	TALLOC_CTX *_mem_save_returned_size_0;
10612	TALLOC_CTX *_mem_save_info_0;
10613	if (flags & NDR_IN) {
10614		ZERO_STRUCT(r->out);
10615
10616		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10617			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
10618		}
10619		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10620		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
10621		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10622		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
10623		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
10624		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.start_idx));
10625		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_entries));
10626		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
10627		NDR_PULL_ALLOC(ndr, r->out.total_size);
10628		ZERO_STRUCTP(r->out.total_size);
10629		NDR_PULL_ALLOC(ndr, r->out.returned_size);
10630		ZERO_STRUCTP(r->out.returned_size);
10631		NDR_PULL_ALLOC(ndr, r->out.info);
10632		ZERO_STRUCTP(r->out.info);
10633	}
10634	if (flags & NDR_OUT) {
10635		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10636			NDR_PULL_ALLOC(ndr, r->out.total_size);
10637		}
10638		_mem_save_total_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
10639		NDR_PULL_SET_MEM_CTX(ndr, r->out.total_size, LIBNDR_FLAG_REF_ALLOC);
10640		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_size));
10641		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_size_0, LIBNDR_FLAG_REF_ALLOC);
10642		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10643			NDR_PULL_ALLOC(ndr, r->out.returned_size);
10644		}
10645		_mem_save_returned_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
10646		NDR_PULL_SET_MEM_CTX(ndr, r->out.returned_size, LIBNDR_FLAG_REF_ALLOC);
10647		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.returned_size));
10648		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_returned_size_0, LIBNDR_FLAG_REF_ALLOC);
10649		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10650			NDR_PULL_ALLOC(ndr, r->out.info);
10651		}
10652		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10653		NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10654		NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
10655		NDR_CHECK(ndr_pull_samr_DispInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10656		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10657		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10658	}
10659	return NDR_ERR_SUCCESS;
10660}
10661
10662_PUBLIC_ void ndr_print_samr_QueryDisplayInfo3(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryDisplayInfo3 *r)
10663{
10664	ndr_print_struct(ndr, name, "samr_QueryDisplayInfo3");
10665	ndr->depth++;
10666	if (flags & NDR_SET_VALUES) {
10667		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10668	}
10669	if (flags & NDR_IN) {
10670		ndr_print_struct(ndr, "in", "samr_QueryDisplayInfo3");
10671		ndr->depth++;
10672		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
10673		ndr->depth++;
10674		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
10675		ndr->depth--;
10676		ndr_print_uint16(ndr, "level", r->in.level);
10677		ndr_print_uint32(ndr, "start_idx", r->in.start_idx);
10678		ndr_print_uint32(ndr, "max_entries", r->in.max_entries);
10679		ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
10680		ndr->depth--;
10681	}
10682	if (flags & NDR_OUT) {
10683		ndr_print_struct(ndr, "out", "samr_QueryDisplayInfo3");
10684		ndr->depth++;
10685		ndr_print_ptr(ndr, "total_size", r->out.total_size);
10686		ndr->depth++;
10687		ndr_print_uint32(ndr, "total_size", *r->out.total_size);
10688		ndr->depth--;
10689		ndr_print_ptr(ndr, "returned_size", r->out.returned_size);
10690		ndr->depth++;
10691		ndr_print_uint32(ndr, "returned_size", *r->out.returned_size);
10692		ndr->depth--;
10693		ndr_print_ptr(ndr, "info", r->out.info);
10694		ndr->depth++;
10695		ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10696		ndr_print_samr_DispInfo(ndr, "info", r->out.info);
10697		ndr->depth--;
10698		ndr_print_NTSTATUS(ndr, "result", r->out.result);
10699		ndr->depth--;
10700	}
10701	ndr->depth--;
10702}
10703
10704static enum ndr_err_code ndr_push_samr_AddMultipleMembersToAlias(struct ndr_push *ndr, int flags, const struct samr_AddMultipleMembersToAlias *r)
10705{
10706	if (flags & NDR_IN) {
10707		if (r->in.alias_handle == NULL) {
10708			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10709		}
10710		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
10711		if (r->in.sids == NULL) {
10712			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10713		}
10714		NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
10715	}
10716	if (flags & NDR_OUT) {
10717		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10718	}
10719	return NDR_ERR_SUCCESS;
10720}
10721
10722static enum ndr_err_code ndr_pull_samr_AddMultipleMembersToAlias(struct ndr_pull *ndr, int flags, struct samr_AddMultipleMembersToAlias *r)
10723{
10724	TALLOC_CTX *_mem_save_alias_handle_0;
10725	TALLOC_CTX *_mem_save_sids_0;
10726	if (flags & NDR_IN) {
10727		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10728			NDR_PULL_ALLOC(ndr, r->in.alias_handle);
10729		}
10730		_mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10731		NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
10732		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
10733		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
10734		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10735			NDR_PULL_ALLOC(ndr, r->in.sids);
10736		}
10737		_mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
10738		NDR_PULL_SET_MEM_CTX(ndr, r->in.sids, LIBNDR_FLAG_REF_ALLOC);
10739		NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
10740		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, LIBNDR_FLAG_REF_ALLOC);
10741	}
10742	if (flags & NDR_OUT) {
10743		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10744	}
10745	return NDR_ERR_SUCCESS;
10746}
10747
10748_PUBLIC_ void ndr_print_samr_AddMultipleMembersToAlias(struct ndr_print *ndr, const char *name, int flags, const struct samr_AddMultipleMembersToAlias *r)
10749{
10750	ndr_print_struct(ndr, name, "samr_AddMultipleMembersToAlias");
10751	ndr->depth++;
10752	if (flags & NDR_SET_VALUES) {
10753		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10754	}
10755	if (flags & NDR_IN) {
10756		ndr_print_struct(ndr, "in", "samr_AddMultipleMembersToAlias");
10757		ndr->depth++;
10758		ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
10759		ndr->depth++;
10760		ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
10761		ndr->depth--;
10762		ndr_print_ptr(ndr, "sids", r->in.sids);
10763		ndr->depth++;
10764		ndr_print_lsa_SidArray(ndr, "sids", r->in.sids);
10765		ndr->depth--;
10766		ndr->depth--;
10767	}
10768	if (flags & NDR_OUT) {
10769		ndr_print_struct(ndr, "out", "samr_AddMultipleMembersToAlias");
10770		ndr->depth++;
10771		ndr_print_NTSTATUS(ndr, "result", r->out.result);
10772		ndr->depth--;
10773	}
10774	ndr->depth--;
10775}
10776
10777static enum ndr_err_code ndr_push_samr_RemoveMultipleMembersFromAlias(struct ndr_push *ndr, int flags, const struct samr_RemoveMultipleMembersFromAlias *r)
10778{
10779	if (flags & NDR_IN) {
10780		if (r->in.alias_handle == NULL) {
10781			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10782		}
10783		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
10784		if (r->in.sids == NULL) {
10785			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10786		}
10787		NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
10788	}
10789	if (flags & NDR_OUT) {
10790		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10791	}
10792	return NDR_ERR_SUCCESS;
10793}
10794
10795static enum ndr_err_code ndr_pull_samr_RemoveMultipleMembersFromAlias(struct ndr_pull *ndr, int flags, struct samr_RemoveMultipleMembersFromAlias *r)
10796{
10797	TALLOC_CTX *_mem_save_alias_handle_0;
10798	TALLOC_CTX *_mem_save_sids_0;
10799	if (flags & NDR_IN) {
10800		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10801			NDR_PULL_ALLOC(ndr, r->in.alias_handle);
10802		}
10803		_mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10804		NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
10805		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
10806		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
10807		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10808			NDR_PULL_ALLOC(ndr, r->in.sids);
10809		}
10810		_mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
10811		NDR_PULL_SET_MEM_CTX(ndr, r->in.sids, LIBNDR_FLAG_REF_ALLOC);
10812		NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
10813		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, LIBNDR_FLAG_REF_ALLOC);
10814	}
10815	if (flags & NDR_OUT) {
10816		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10817	}
10818	return NDR_ERR_SUCCESS;
10819}
10820
10821_PUBLIC_ void ndr_print_samr_RemoveMultipleMembersFromAlias(struct ndr_print *ndr, const char *name, int flags, const struct samr_RemoveMultipleMembersFromAlias *r)
10822{
10823	ndr_print_struct(ndr, name, "samr_RemoveMultipleMembersFromAlias");
10824	ndr->depth++;
10825	if (flags & NDR_SET_VALUES) {
10826		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10827	}
10828	if (flags & NDR_IN) {
10829		ndr_print_struct(ndr, "in", "samr_RemoveMultipleMembersFromAlias");
10830		ndr->depth++;
10831		ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
10832		ndr->depth++;
10833		ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
10834		ndr->depth--;
10835		ndr_print_ptr(ndr, "sids", r->in.sids);
10836		ndr->depth++;
10837		ndr_print_lsa_SidArray(ndr, "sids", r->in.sids);
10838		ndr->depth--;
10839		ndr->depth--;
10840	}
10841	if (flags & NDR_OUT) {
10842		ndr_print_struct(ndr, "out", "samr_RemoveMultipleMembersFromAlias");
10843		ndr->depth++;
10844		ndr_print_NTSTATUS(ndr, "result", r->out.result);
10845		ndr->depth--;
10846	}
10847	ndr->depth--;
10848}
10849
10850static enum ndr_err_code ndr_push_samr_OemChangePasswordUser2(struct ndr_push *ndr, int flags, const struct samr_OemChangePasswordUser2 *r)
10851{
10852	if (flags & NDR_IN) {
10853		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
10854		if (r->in.server) {
10855			NDR_CHECK(ndr_push_lsa_AsciiString(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.server));
10856		}
10857		if (r->in.account == NULL) {
10858			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10859		}
10860		NDR_CHECK(ndr_push_lsa_AsciiString(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account));
10861		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.password));
10862		if (r->in.password) {
10863			NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, r->in.password));
10864		}
10865		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hash));
10866		if (r->in.hash) {
10867			NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.hash));
10868		}
10869	}
10870	if (flags & NDR_OUT) {
10871		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10872	}
10873	return NDR_ERR_SUCCESS;
10874}
10875
10876static enum ndr_err_code ndr_pull_samr_OemChangePasswordUser2(struct ndr_pull *ndr, int flags, struct samr_OemChangePasswordUser2 *r)
10877{
10878	uint32_t _ptr_server;
10879	uint32_t _ptr_password;
10880	uint32_t _ptr_hash;
10881	TALLOC_CTX *_mem_save_server_0;
10882	TALLOC_CTX *_mem_save_account_0;
10883	TALLOC_CTX *_mem_save_password_0;
10884	TALLOC_CTX *_mem_save_hash_0;
10885	if (flags & NDR_IN) {
10886		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
10887		if (_ptr_server) {
10888			NDR_PULL_ALLOC(ndr, r->in.server);
10889		} else {
10890			r->in.server = NULL;
10891		}
10892		if (r->in.server) {
10893			_mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10894			NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
10895			NDR_CHECK(ndr_pull_lsa_AsciiString(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.server));
10896			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
10897		}
10898		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10899			NDR_PULL_ALLOC(ndr, r->in.account);
10900		}
10901		_mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
10902		NDR_PULL_SET_MEM_CTX(ndr, r->in.account, LIBNDR_FLAG_REF_ALLOC);
10903		NDR_CHECK(ndr_pull_lsa_AsciiString(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account));
10904		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, LIBNDR_FLAG_REF_ALLOC);
10905		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
10906		if (_ptr_password) {
10907			NDR_PULL_ALLOC(ndr, r->in.password);
10908		} else {
10909			r->in.password = NULL;
10910		}
10911		if (r->in.password) {
10912			_mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
10913			NDR_PULL_SET_MEM_CTX(ndr, r->in.password, 0);
10914			NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, r->in.password));
10915			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
10916		}
10917		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hash));
10918		if (_ptr_hash) {
10919			NDR_PULL_ALLOC(ndr, r->in.hash);
10920		} else {
10921			r->in.hash = NULL;
10922		}
10923		if (r->in.hash) {
10924			_mem_save_hash_0 = NDR_PULL_GET_MEM_CTX(ndr);
10925			NDR_PULL_SET_MEM_CTX(ndr, r->in.hash, 0);
10926			NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.hash));
10927			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hash_0, 0);
10928		}
10929	}
10930	if (flags & NDR_OUT) {
10931		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10932	}
10933	return NDR_ERR_SUCCESS;
10934}
10935
10936_PUBLIC_ void ndr_print_samr_OemChangePasswordUser2(struct ndr_print *ndr, const char *name, int flags, const struct samr_OemChangePasswordUser2 *r)
10937{
10938	ndr_print_struct(ndr, name, "samr_OemChangePasswordUser2");
10939	ndr->depth++;
10940	if (flags & NDR_SET_VALUES) {
10941		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10942	}
10943	if (flags & NDR_IN) {
10944		ndr_print_struct(ndr, "in", "samr_OemChangePasswordUser2");
10945		ndr->depth++;
10946		ndr_print_ptr(ndr, "server", r->in.server);
10947		ndr->depth++;
10948		if (r->in.server) {
10949			ndr_print_lsa_AsciiString(ndr, "server", r->in.server);
10950		}
10951		ndr->depth--;
10952		ndr_print_ptr(ndr, "account", r->in.account);
10953		ndr->depth++;
10954		ndr_print_lsa_AsciiString(ndr, "account", r->in.account);
10955		ndr->depth--;
10956		ndr_print_ptr(ndr, "password", r->in.password);
10957		ndr->depth++;
10958		if (r->in.password) {
10959			ndr_print_samr_CryptPassword(ndr, "password", r->in.password);
10960		}
10961		ndr->depth--;
10962		ndr_print_ptr(ndr, "hash", r->in.hash);
10963		ndr->depth++;
10964		if (r->in.hash) {
10965			ndr_print_samr_Password(ndr, "hash", r->in.hash);
10966		}
10967		ndr->depth--;
10968		ndr->depth--;
10969	}
10970	if (flags & NDR_OUT) {
10971		ndr_print_struct(ndr, "out", "samr_OemChangePasswordUser2");
10972		ndr->depth++;
10973		ndr_print_NTSTATUS(ndr, "result", r->out.result);
10974		ndr->depth--;
10975	}
10976	ndr->depth--;
10977}
10978
10979static enum ndr_err_code ndr_push_samr_ChangePasswordUser2(struct ndr_push *ndr, int flags, const struct samr_ChangePasswordUser2 *r)
10980{
10981	if (flags & NDR_IN) {
10982		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
10983		if (r->in.server) {
10984			NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.server));
10985		}
10986		if (r->in.account == NULL) {
10987			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10988		}
10989		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account));
10990		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.nt_password));
10991		if (r->in.nt_password) {
10992			NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, r->in.nt_password));
10993		}
10994		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.nt_verifier));
10995		if (r->in.nt_verifier) {
10996			NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.nt_verifier));
10997		}
10998		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.lm_change));
10999		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.lm_password));
11000		if (r->in.lm_password) {
11001			NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, r->in.lm_password));
11002		}
11003		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.lm_verifier));
11004		if (r->in.lm_verifier) {
11005			NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.lm_verifier));
11006		}
11007	}
11008	if (flags & NDR_OUT) {
11009		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11010	}
11011	return NDR_ERR_SUCCESS;
11012}
11013
11014static enum ndr_err_code ndr_pull_samr_ChangePasswordUser2(struct ndr_pull *ndr, int flags, struct samr_ChangePasswordUser2 *r)
11015{
11016	uint32_t _ptr_server;
11017	uint32_t _ptr_nt_password;
11018	uint32_t _ptr_nt_verifier;
11019	uint32_t _ptr_lm_password;
11020	uint32_t _ptr_lm_verifier;
11021	TALLOC_CTX *_mem_save_server_0;
11022	TALLOC_CTX *_mem_save_account_0;
11023	TALLOC_CTX *_mem_save_nt_password_0;
11024	TALLOC_CTX *_mem_save_nt_verifier_0;
11025	TALLOC_CTX *_mem_save_lm_password_0;
11026	TALLOC_CTX *_mem_save_lm_verifier_0;
11027	if (flags & NDR_IN) {
11028		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
11029		if (_ptr_server) {
11030			NDR_PULL_ALLOC(ndr, r->in.server);
11031		} else {
11032			r->in.server = NULL;
11033		}
11034		if (r->in.server) {
11035			_mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11036			NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
11037			NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.server));
11038			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
11039		}
11040		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11041			NDR_PULL_ALLOC(ndr, r->in.account);
11042		}
11043		_mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
11044		NDR_PULL_SET_MEM_CTX(ndr, r->in.account, LIBNDR_FLAG_REF_ALLOC);
11045		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account));
11046		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, LIBNDR_FLAG_REF_ALLOC);
11047		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nt_password));
11048		if (_ptr_nt_password) {
11049			NDR_PULL_ALLOC(ndr, r->in.nt_password);
11050		} else {
11051			r->in.nt_password = NULL;
11052		}
11053		if (r->in.nt_password) {
11054			_mem_save_nt_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
11055			NDR_PULL_SET_MEM_CTX(ndr, r->in.nt_password, 0);
11056			NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, r->in.nt_password));
11057			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nt_password_0, 0);
11058		}
11059		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nt_verifier));
11060		if (_ptr_nt_verifier) {
11061			NDR_PULL_ALLOC(ndr, r->in.nt_verifier);
11062		} else {
11063			r->in.nt_verifier = NULL;
11064		}
11065		if (r->in.nt_verifier) {
11066			_mem_save_nt_verifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
11067			NDR_PULL_SET_MEM_CTX(ndr, r->in.nt_verifier, 0);
11068			NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.nt_verifier));
11069			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nt_verifier_0, 0);
11070		}
11071		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.lm_change));
11072		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lm_password));
11073		if (_ptr_lm_password) {
11074			NDR_PULL_ALLOC(ndr, r->in.lm_password);
11075		} else {
11076			r->in.lm_password = NULL;
11077		}
11078		if (r->in.lm_password) {
11079			_mem_save_lm_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
11080			NDR_PULL_SET_MEM_CTX(ndr, r->in.lm_password, 0);
11081			NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, r->in.lm_password));
11082			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lm_password_0, 0);
11083		}
11084		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lm_verifier));
11085		if (_ptr_lm_verifier) {
11086			NDR_PULL_ALLOC(ndr, r->in.lm_verifier);
11087		} else {
11088			r->in.lm_verifier = NULL;
11089		}
11090		if (r->in.lm_verifier) {
11091			_mem_save_lm_verifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
11092			NDR_PULL_SET_MEM_CTX(ndr, r->in.lm_verifier, 0);
11093			NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.lm_verifier));
11094			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lm_verifier_0, 0);
11095		}
11096	}
11097	if (flags & NDR_OUT) {
11098		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11099	}
11100	return NDR_ERR_SUCCESS;
11101}
11102
11103_PUBLIC_ void ndr_print_samr_ChangePasswordUser2(struct ndr_print *ndr, const char *name, int flags, const struct samr_ChangePasswordUser2 *r)
11104{
11105	ndr_print_struct(ndr, name, "samr_ChangePasswordUser2");
11106	ndr->depth++;
11107	if (flags & NDR_SET_VALUES) {
11108		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11109	}
11110	if (flags & NDR_IN) {
11111		ndr_print_struct(ndr, "in", "samr_ChangePasswordUser2");
11112		ndr->depth++;
11113		ndr_print_ptr(ndr, "server", r->in.server);
11114		ndr->depth++;
11115		if (r->in.server) {
11116			ndr_print_lsa_String(ndr, "server", r->in.server);
11117		}
11118		ndr->depth--;
11119		ndr_print_ptr(ndr, "account", r->in.account);
11120		ndr->depth++;
11121		ndr_print_lsa_String(ndr, "account", r->in.account);
11122		ndr->depth--;
11123		ndr_print_ptr(ndr, "nt_password", r->in.nt_password);
11124		ndr->depth++;
11125		if (r->in.nt_password) {
11126			ndr_print_samr_CryptPassword(ndr, "nt_password", r->in.nt_password);
11127		}
11128		ndr->depth--;
11129		ndr_print_ptr(ndr, "nt_verifier", r->in.nt_verifier);
11130		ndr->depth++;
11131		if (r->in.nt_verifier) {
11132			ndr_print_samr_Password(ndr, "nt_verifier", r->in.nt_verifier);
11133		}
11134		ndr->depth--;
11135		ndr_print_uint8(ndr, "lm_change", r->in.lm_change);
11136		ndr_print_ptr(ndr, "lm_password", r->in.lm_password);
11137		ndr->depth++;
11138		if (r->in.lm_password) {
11139			ndr_print_samr_CryptPassword(ndr, "lm_password", r->in.lm_password);
11140		}
11141		ndr->depth--;
11142		ndr_print_ptr(ndr, "lm_verifier", r->in.lm_verifier);
11143		ndr->depth++;
11144		if (r->in.lm_verifier) {
11145			ndr_print_samr_Password(ndr, "lm_verifier", r->in.lm_verifier);
11146		}
11147		ndr->depth--;
11148		ndr->depth--;
11149	}
11150	if (flags & NDR_OUT) {
11151		ndr_print_struct(ndr, "out", "samr_ChangePasswordUser2");
11152		ndr->depth++;
11153		ndr_print_NTSTATUS(ndr, "result", r->out.result);
11154		ndr->depth--;
11155	}
11156	ndr->depth--;
11157}
11158
11159static enum ndr_err_code ndr_push_samr_GetDomPwInfo(struct ndr_push *ndr, int flags, const struct samr_GetDomPwInfo *r)
11160{
11161	if (flags & NDR_IN) {
11162		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11163		if (r->in.domain_name) {
11164			NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_name));
11165		}
11166	}
11167	if (flags & NDR_OUT) {
11168		if (r->out.info == NULL) {
11169			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11170		}
11171		NDR_CHECK(ndr_push_samr_PwInfo(ndr, NDR_SCALARS, r->out.info));
11172		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11173	}
11174	return NDR_ERR_SUCCESS;
11175}
11176
11177static enum ndr_err_code ndr_pull_samr_GetDomPwInfo(struct ndr_pull *ndr, int flags, struct samr_GetDomPwInfo *r)
11178{
11179	uint32_t _ptr_domain_name;
11180	TALLOC_CTX *_mem_save_domain_name_0;
11181	TALLOC_CTX *_mem_save_info_0;
11182	if (flags & NDR_IN) {
11183		ZERO_STRUCT(r->out);
11184
11185		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11186		if (_ptr_domain_name) {
11187			NDR_PULL_ALLOC(ndr, r->in.domain_name);
11188		} else {
11189			r->in.domain_name = NULL;
11190		}
11191		if (r->in.domain_name) {
11192			_mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11193			NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11194			NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_name));
11195			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11196		}
11197		NDR_PULL_ALLOC(ndr, r->out.info);
11198		ZERO_STRUCTP(r->out.info);
11199	}
11200	if (flags & NDR_OUT) {
11201		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11202			NDR_PULL_ALLOC(ndr, r->out.info);
11203		}
11204		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11205		NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11206		NDR_CHECK(ndr_pull_samr_PwInfo(ndr, NDR_SCALARS, r->out.info));
11207		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11208		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11209	}
11210	return NDR_ERR_SUCCESS;
11211}
11212
11213_PUBLIC_ void ndr_print_samr_GetDomPwInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetDomPwInfo *r)
11214{
11215	ndr_print_struct(ndr, name, "samr_GetDomPwInfo");
11216	ndr->depth++;
11217	if (flags & NDR_SET_VALUES) {
11218		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11219	}
11220	if (flags & NDR_IN) {
11221		ndr_print_struct(ndr, "in", "samr_GetDomPwInfo");
11222		ndr->depth++;
11223		ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11224		ndr->depth++;
11225		if (r->in.domain_name) {
11226			ndr_print_lsa_String(ndr, "domain_name", r->in.domain_name);
11227		}
11228		ndr->depth--;
11229		ndr->depth--;
11230	}
11231	if (flags & NDR_OUT) {
11232		ndr_print_struct(ndr, "out", "samr_GetDomPwInfo");
11233		ndr->depth++;
11234		ndr_print_ptr(ndr, "info", r->out.info);
11235		ndr->depth++;
11236		ndr_print_samr_PwInfo(ndr, "info", r->out.info);
11237		ndr->depth--;
11238		ndr_print_NTSTATUS(ndr, "result", r->out.result);
11239		ndr->depth--;
11240	}
11241	ndr->depth--;
11242}
11243
11244static enum ndr_err_code ndr_push_samr_Connect2(struct ndr_push *ndr, int flags, const struct samr_Connect2 *r)
11245{
11246	if (flags & NDR_IN) {
11247		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
11248		if (r->in.system_name) {
11249			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
11250			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11251			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
11252			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.system_name, ndr_charset_length(r->in.system_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11253		}
11254		NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
11255	}
11256	if (flags & NDR_OUT) {
11257		if (r->out.connect_handle == NULL) {
11258			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11259		}
11260		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
11261		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11262	}
11263	return NDR_ERR_SUCCESS;
11264}
11265
11266static enum ndr_err_code ndr_pull_samr_Connect2(struct ndr_pull *ndr, int flags, struct samr_Connect2 *r)
11267{
11268	uint32_t _ptr_system_name;
11269	TALLOC_CTX *_mem_save_system_name_0;
11270	TALLOC_CTX *_mem_save_connect_handle_0;
11271	if (flags & NDR_IN) {
11272		ZERO_STRUCT(r->out);
11273
11274		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
11275		if (_ptr_system_name) {
11276			NDR_PULL_ALLOC(ndr, r->in.system_name);
11277		} else {
11278			r->in.system_name = NULL;
11279		}
11280		if (r->in.system_name) {
11281			_mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11282			NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
11283			NDR_CHECK(ndr_pull_array_size(ndr, &r->in.system_name));
11284			NDR_CHECK(ndr_pull_array_length(ndr, &r->in.system_name));
11285			if (ndr_get_array_length(ndr, &r->in.system_name) > ndr_get_array_size(ndr, &r->in.system_name)) {
11286				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.system_name), ndr_get_array_length(ndr, &r->in.system_name));
11287			}
11288			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t)));
11289			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t), CH_UTF16));
11290			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
11291		}
11292		NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
11293		NDR_PULL_ALLOC(ndr, r->out.connect_handle);
11294		ZERO_STRUCTP(r->out.connect_handle);
11295	}
11296	if (flags & NDR_OUT) {
11297		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11298			NDR_PULL_ALLOC(ndr, r->out.connect_handle);
11299		}
11300		_mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11301		NDR_PULL_SET_MEM_CTX(ndr, r->out.connect_handle, LIBNDR_FLAG_REF_ALLOC);
11302		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
11303		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
11304		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11305	}
11306	return NDR_ERR_SUCCESS;
11307}
11308
11309_PUBLIC_ void ndr_print_samr_Connect2(struct ndr_print *ndr, const char *name, int flags, const struct samr_Connect2 *r)
11310{
11311	ndr_print_struct(ndr, name, "samr_Connect2");
11312	ndr->depth++;
11313	if (flags & NDR_SET_VALUES) {
11314		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11315	}
11316	if (flags & NDR_IN) {
11317		ndr_print_struct(ndr, "in", "samr_Connect2");
11318		ndr->depth++;
11319		ndr_print_ptr(ndr, "system_name", r->in.system_name);
11320		ndr->depth++;
11321		if (r->in.system_name) {
11322			ndr_print_string(ndr, "system_name", r->in.system_name);
11323		}
11324		ndr->depth--;
11325		ndr_print_samr_ConnectAccessMask(ndr, "access_mask", r->in.access_mask);
11326		ndr->depth--;
11327	}
11328	if (flags & NDR_OUT) {
11329		ndr_print_struct(ndr, "out", "samr_Connect2");
11330		ndr->depth++;
11331		ndr_print_ptr(ndr, "connect_handle", r->out.connect_handle);
11332		ndr->depth++;
11333		ndr_print_policy_handle(ndr, "connect_handle", r->out.connect_handle);
11334		ndr->depth--;
11335		ndr_print_NTSTATUS(ndr, "result", r->out.result);
11336		ndr->depth--;
11337	}
11338	ndr->depth--;
11339}
11340
11341_PUBLIC_ enum ndr_err_code ndr_push_samr_SetUserInfo2(struct ndr_push *ndr, int flags, const struct samr_SetUserInfo2 *r)
11342{
11343	if (flags & NDR_IN) {
11344		if (r->in.user_handle == NULL) {
11345			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11346		}
11347		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
11348		NDR_CHECK(ndr_push_samr_UserInfoLevel(ndr, NDR_SCALARS, r->in.level));
11349		if (r->in.info == NULL) {
11350			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11351		}
11352		NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level));
11353		NDR_CHECK(ndr_push_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
11354	}
11355	if (flags & NDR_OUT) {
11356		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11357	}
11358	return NDR_ERR_SUCCESS;
11359}
11360
11361_PUBLIC_ enum ndr_err_code ndr_pull_samr_SetUserInfo2(struct ndr_pull *ndr, int flags, struct samr_SetUserInfo2 *r)
11362{
11363	TALLOC_CTX *_mem_save_user_handle_0;
11364	TALLOC_CTX *_mem_save_info_0;
11365	if (flags & NDR_IN) {
11366		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11367			NDR_PULL_ALLOC(ndr, r->in.user_handle);
11368		}
11369		_mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11370		NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
11371		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
11372		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
11373		NDR_CHECK(ndr_pull_samr_UserInfoLevel(ndr, NDR_SCALARS, &r->in.level));
11374		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11375			NDR_PULL_ALLOC(ndr, r->in.info);
11376		}
11377		_mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11378		NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC);
11379		NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level));
11380		NDR_CHECK(ndr_pull_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
11381		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11382	}
11383	if (flags & NDR_OUT) {
11384		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11385	}
11386	return NDR_ERR_SUCCESS;
11387}
11388
11389_PUBLIC_ void ndr_print_samr_SetUserInfo2(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetUserInfo2 *r)
11390{
11391	ndr_print_struct(ndr, name, "samr_SetUserInfo2");
11392	ndr->depth++;
11393	if (flags & NDR_SET_VALUES) {
11394		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11395	}
11396	if (flags & NDR_IN) {
11397		ndr_print_struct(ndr, "in", "samr_SetUserInfo2");
11398		ndr->depth++;
11399		ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
11400		ndr->depth++;
11401		ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
11402		ndr->depth--;
11403		ndr_print_samr_UserInfoLevel(ndr, "level", r->in.level);
11404		ndr_print_ptr(ndr, "info", r->in.info);
11405		ndr->depth++;
11406		ndr_print_set_switch_value(ndr, r->in.info, r->in.level);
11407		ndr_print_samr_UserInfo(ndr, "info", r->in.info);
11408		ndr->depth--;
11409		ndr->depth--;
11410	}
11411	if (flags & NDR_OUT) {
11412		ndr_print_struct(ndr, "out", "samr_SetUserInfo2");
11413		ndr->depth++;
11414		ndr_print_NTSTATUS(ndr, "result", r->out.result);
11415		ndr->depth--;
11416	}
11417	ndr->depth--;
11418}
11419
11420static enum ndr_err_code ndr_push_samr_SetBootKeyInformation(struct ndr_push *ndr, int flags, const struct samr_SetBootKeyInformation *r)
11421{
11422	if (flags & NDR_IN) {
11423		if (r->in.connect_handle == NULL) {
11424			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11425		}
11426		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
11427		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown1));
11428		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
11429		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown3));
11430	}
11431	if (flags & NDR_OUT) {
11432		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11433	}
11434	return NDR_ERR_SUCCESS;
11435}
11436
11437static enum ndr_err_code ndr_pull_samr_SetBootKeyInformation(struct ndr_pull *ndr, int flags, struct samr_SetBootKeyInformation *r)
11438{
11439	TALLOC_CTX *_mem_save_connect_handle_0;
11440	if (flags & NDR_IN) {
11441		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11442			NDR_PULL_ALLOC(ndr, r->in.connect_handle);
11443		}
11444		_mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11445		NDR_PULL_SET_MEM_CTX(ndr, r->in.connect_handle, LIBNDR_FLAG_REF_ALLOC);
11446		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
11447		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
11448		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown1));
11449		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
11450		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown3));
11451	}
11452	if (flags & NDR_OUT) {
11453		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11454	}
11455	return NDR_ERR_SUCCESS;
11456}
11457
11458_PUBLIC_ void ndr_print_samr_SetBootKeyInformation(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetBootKeyInformation *r)
11459{
11460	ndr_print_struct(ndr, name, "samr_SetBootKeyInformation");
11461	ndr->depth++;
11462	if (flags & NDR_SET_VALUES) {
11463		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11464	}
11465	if (flags & NDR_IN) {
11466		ndr_print_struct(ndr, "in", "samr_SetBootKeyInformation");
11467		ndr->depth++;
11468		ndr_print_ptr(ndr, "connect_handle", r->in.connect_handle);
11469		ndr->depth++;
11470		ndr_print_policy_handle(ndr, "connect_handle", r->in.connect_handle);
11471		ndr->depth--;
11472		ndr_print_uint32(ndr, "unknown1", r->in.unknown1);
11473		ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
11474		ndr_print_uint32(ndr, "unknown3", r->in.unknown3);
11475		ndr->depth--;
11476	}
11477	if (flags & NDR_OUT) {
11478		ndr_print_struct(ndr, "out", "samr_SetBootKeyInformation");
11479		ndr->depth++;
11480		ndr_print_NTSTATUS(ndr, "result", r->out.result);
11481		ndr->depth--;
11482	}
11483	ndr->depth--;
11484}
11485
11486static enum ndr_err_code ndr_push_samr_GetBootKeyInformation(struct ndr_push *ndr, int flags, const struct samr_GetBootKeyInformation *r)
11487{
11488	if (flags & NDR_IN) {
11489		if (r->in.domain_handle == NULL) {
11490			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11491		}
11492		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
11493	}
11494	if (flags & NDR_OUT) {
11495		if (r->out.unknown == NULL) {
11496			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11497		}
11498		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.unknown));
11499		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11500	}
11501	return NDR_ERR_SUCCESS;
11502}
11503
11504static enum ndr_err_code ndr_pull_samr_GetBootKeyInformation(struct ndr_pull *ndr, int flags, struct samr_GetBootKeyInformation *r)
11505{
11506	TALLOC_CTX *_mem_save_domain_handle_0;
11507	TALLOC_CTX *_mem_save_unknown_0;
11508	if (flags & NDR_IN) {
11509		ZERO_STRUCT(r->out);
11510
11511		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11512			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
11513		}
11514		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11515		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
11516		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
11517		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
11518		NDR_PULL_ALLOC(ndr, r->out.unknown);
11519		ZERO_STRUCTP(r->out.unknown);
11520	}
11521	if (flags & NDR_OUT) {
11522		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11523			NDR_PULL_ALLOC(ndr, r->out.unknown);
11524		}
11525		_mem_save_unknown_0 = NDR_PULL_GET_MEM_CTX(ndr);
11526		NDR_PULL_SET_MEM_CTX(ndr, r->out.unknown, LIBNDR_FLAG_REF_ALLOC);
11527		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.unknown));
11528		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown_0, LIBNDR_FLAG_REF_ALLOC);
11529		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11530	}
11531	return NDR_ERR_SUCCESS;
11532}
11533
11534_PUBLIC_ void ndr_print_samr_GetBootKeyInformation(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetBootKeyInformation *r)
11535{
11536	ndr_print_struct(ndr, name, "samr_GetBootKeyInformation");
11537	ndr->depth++;
11538	if (flags & NDR_SET_VALUES) {
11539		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11540	}
11541	if (flags & NDR_IN) {
11542		ndr_print_struct(ndr, "in", "samr_GetBootKeyInformation");
11543		ndr->depth++;
11544		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
11545		ndr->depth++;
11546		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
11547		ndr->depth--;
11548		ndr->depth--;
11549	}
11550	if (flags & NDR_OUT) {
11551		ndr_print_struct(ndr, "out", "samr_GetBootKeyInformation");
11552		ndr->depth++;
11553		ndr_print_ptr(ndr, "unknown", r->out.unknown);
11554		ndr->depth++;
11555		ndr_print_uint32(ndr, "unknown", *r->out.unknown);
11556		ndr->depth--;
11557		ndr_print_NTSTATUS(ndr, "result", r->out.result);
11558		ndr->depth--;
11559	}
11560	ndr->depth--;
11561}
11562
11563static enum ndr_err_code ndr_push_samr_Connect3(struct ndr_push *ndr, int flags, const struct samr_Connect3 *r)
11564{
11565	if (flags & NDR_IN) {
11566		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
11567		if (r->in.system_name) {
11568			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
11569			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11570			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
11571			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.system_name, ndr_charset_length(r->in.system_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11572		}
11573		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
11574		NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
11575	}
11576	if (flags & NDR_OUT) {
11577		if (r->out.connect_handle == NULL) {
11578			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11579		}
11580		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
11581		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11582	}
11583	return NDR_ERR_SUCCESS;
11584}
11585
11586static enum ndr_err_code ndr_pull_samr_Connect3(struct ndr_pull *ndr, int flags, struct samr_Connect3 *r)
11587{
11588	uint32_t _ptr_system_name;
11589	TALLOC_CTX *_mem_save_system_name_0;
11590	TALLOC_CTX *_mem_save_connect_handle_0;
11591	if (flags & NDR_IN) {
11592		ZERO_STRUCT(r->out);
11593
11594		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
11595		if (_ptr_system_name) {
11596			NDR_PULL_ALLOC(ndr, r->in.system_name);
11597		} else {
11598			r->in.system_name = NULL;
11599		}
11600		if (r->in.system_name) {
11601			_mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11602			NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
11603			NDR_CHECK(ndr_pull_array_size(ndr, &r->in.system_name));
11604			NDR_CHECK(ndr_pull_array_length(ndr, &r->in.system_name));
11605			if (ndr_get_array_length(ndr, &r->in.system_name) > ndr_get_array_size(ndr, &r->in.system_name)) {
11606				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.system_name), ndr_get_array_length(ndr, &r->in.system_name));
11607			}
11608			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t)));
11609			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t), CH_UTF16));
11610			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
11611		}
11612		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
11613		NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
11614		NDR_PULL_ALLOC(ndr, r->out.connect_handle);
11615		ZERO_STRUCTP(r->out.connect_handle);
11616	}
11617	if (flags & NDR_OUT) {
11618		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11619			NDR_PULL_ALLOC(ndr, r->out.connect_handle);
11620		}
11621		_mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11622		NDR_PULL_SET_MEM_CTX(ndr, r->out.connect_handle, LIBNDR_FLAG_REF_ALLOC);
11623		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
11624		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
11625		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11626	}
11627	return NDR_ERR_SUCCESS;
11628}
11629
11630_PUBLIC_ void ndr_print_samr_Connect3(struct ndr_print *ndr, const char *name, int flags, const struct samr_Connect3 *r)
11631{
11632	ndr_print_struct(ndr, name, "samr_Connect3");
11633	ndr->depth++;
11634	if (flags & NDR_SET_VALUES) {
11635		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11636	}
11637	if (flags & NDR_IN) {
11638		ndr_print_struct(ndr, "in", "samr_Connect3");
11639		ndr->depth++;
11640		ndr_print_ptr(ndr, "system_name", r->in.system_name);
11641		ndr->depth++;
11642		if (r->in.system_name) {
11643			ndr_print_string(ndr, "system_name", r->in.system_name);
11644		}
11645		ndr->depth--;
11646		ndr_print_uint32(ndr, "unknown", r->in.unknown);
11647		ndr_print_samr_ConnectAccessMask(ndr, "access_mask", r->in.access_mask);
11648		ndr->depth--;
11649	}
11650	if (flags & NDR_OUT) {
11651		ndr_print_struct(ndr, "out", "samr_Connect3");
11652		ndr->depth++;
11653		ndr_print_ptr(ndr, "connect_handle", r->out.connect_handle);
11654		ndr->depth++;
11655		ndr_print_policy_handle(ndr, "connect_handle", r->out.connect_handle);
11656		ndr->depth--;
11657		ndr_print_NTSTATUS(ndr, "result", r->out.result);
11658		ndr->depth--;
11659	}
11660	ndr->depth--;
11661}
11662
11663static enum ndr_err_code ndr_push_samr_Connect4(struct ndr_push *ndr, int flags, const struct samr_Connect4 *r)
11664{
11665	if (flags & NDR_IN) {
11666		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
11667		if (r->in.system_name) {
11668			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
11669			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11670			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
11671			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.system_name, ndr_charset_length(r->in.system_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11672		}
11673		NDR_CHECK(ndr_push_samr_ConnectVersion(ndr, NDR_SCALARS, r->in.client_version));
11674		NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
11675	}
11676	if (flags & NDR_OUT) {
11677		if (r->out.connect_handle == NULL) {
11678			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11679		}
11680		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
11681		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11682	}
11683	return NDR_ERR_SUCCESS;
11684}
11685
11686static enum ndr_err_code ndr_pull_samr_Connect4(struct ndr_pull *ndr, int flags, struct samr_Connect4 *r)
11687{
11688	uint32_t _ptr_system_name;
11689	TALLOC_CTX *_mem_save_system_name_0;
11690	TALLOC_CTX *_mem_save_connect_handle_0;
11691	if (flags & NDR_IN) {
11692		ZERO_STRUCT(r->out);
11693
11694		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
11695		if (_ptr_system_name) {
11696			NDR_PULL_ALLOC(ndr, r->in.system_name);
11697		} else {
11698			r->in.system_name = NULL;
11699		}
11700		if (r->in.system_name) {
11701			_mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11702			NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
11703			NDR_CHECK(ndr_pull_array_size(ndr, &r->in.system_name));
11704			NDR_CHECK(ndr_pull_array_length(ndr, &r->in.system_name));
11705			if (ndr_get_array_length(ndr, &r->in.system_name) > ndr_get_array_size(ndr, &r->in.system_name)) {
11706				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.system_name), ndr_get_array_length(ndr, &r->in.system_name));
11707			}
11708			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t)));
11709			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t), CH_UTF16));
11710			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
11711		}
11712		NDR_CHECK(ndr_pull_samr_ConnectVersion(ndr, NDR_SCALARS, &r->in.client_version));
11713		NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
11714		NDR_PULL_ALLOC(ndr, r->out.connect_handle);
11715		ZERO_STRUCTP(r->out.connect_handle);
11716	}
11717	if (flags & NDR_OUT) {
11718		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11719			NDR_PULL_ALLOC(ndr, r->out.connect_handle);
11720		}
11721		_mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11722		NDR_PULL_SET_MEM_CTX(ndr, r->out.connect_handle, LIBNDR_FLAG_REF_ALLOC);
11723		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
11724		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
11725		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11726	}
11727	return NDR_ERR_SUCCESS;
11728}
11729
11730_PUBLIC_ void ndr_print_samr_Connect4(struct ndr_print *ndr, const char *name, int flags, const struct samr_Connect4 *r)
11731{
11732	ndr_print_struct(ndr, name, "samr_Connect4");
11733	ndr->depth++;
11734	if (flags & NDR_SET_VALUES) {
11735		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11736	}
11737	if (flags & NDR_IN) {
11738		ndr_print_struct(ndr, "in", "samr_Connect4");
11739		ndr->depth++;
11740		ndr_print_ptr(ndr, "system_name", r->in.system_name);
11741		ndr->depth++;
11742		if (r->in.system_name) {
11743			ndr_print_string(ndr, "system_name", r->in.system_name);
11744		}
11745		ndr->depth--;
11746		ndr_print_samr_ConnectVersion(ndr, "client_version", r->in.client_version);
11747		ndr_print_samr_ConnectAccessMask(ndr, "access_mask", r->in.access_mask);
11748		ndr->depth--;
11749	}
11750	if (flags & NDR_OUT) {
11751		ndr_print_struct(ndr, "out", "samr_Connect4");
11752		ndr->depth++;
11753		ndr_print_ptr(ndr, "connect_handle", r->out.connect_handle);
11754		ndr->depth++;
11755		ndr_print_policy_handle(ndr, "connect_handle", r->out.connect_handle);
11756		ndr->depth--;
11757		ndr_print_NTSTATUS(ndr, "result", r->out.result);
11758		ndr->depth--;
11759	}
11760	ndr->depth--;
11761}
11762
11763static enum ndr_err_code ndr_push_samr_ChangePasswordUser3(struct ndr_push *ndr, int flags, const struct samr_ChangePasswordUser3 *r)
11764{
11765	if (flags & NDR_IN) {
11766		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
11767		if (r->in.server) {
11768			NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.server));
11769		}
11770		if (r->in.account == NULL) {
11771			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11772		}
11773		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account));
11774		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.nt_password));
11775		if (r->in.nt_password) {
11776			NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, r->in.nt_password));
11777		}
11778		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.nt_verifier));
11779		if (r->in.nt_verifier) {
11780			NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.nt_verifier));
11781		}
11782		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.lm_change));
11783		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.lm_password));
11784		if (r->in.lm_password) {
11785			NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, r->in.lm_password));
11786		}
11787		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.lm_verifier));
11788		if (r->in.lm_verifier) {
11789			NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.lm_verifier));
11790		}
11791		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.password3));
11792		if (r->in.password3) {
11793			NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, r->in.password3));
11794		}
11795	}
11796	if (flags & NDR_OUT) {
11797		if (r->out.dominfo == NULL) {
11798			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11799		}
11800		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dominfo));
11801		if (*r->out.dominfo) {
11802			NDR_CHECK(ndr_push_samr_DomInfo1(ndr, NDR_SCALARS, *r->out.dominfo));
11803		}
11804		if (r->out.reject == NULL) {
11805			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11806		}
11807		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.reject));
11808		if (*r->out.reject) {
11809			NDR_CHECK(ndr_push_samr_ChangeReject(ndr, NDR_SCALARS, *r->out.reject));
11810		}
11811		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11812	}
11813	return NDR_ERR_SUCCESS;
11814}
11815
11816static enum ndr_err_code ndr_pull_samr_ChangePasswordUser3(struct ndr_pull *ndr, int flags, struct samr_ChangePasswordUser3 *r)
11817{
11818	uint32_t _ptr_server;
11819	uint32_t _ptr_nt_password;
11820	uint32_t _ptr_nt_verifier;
11821	uint32_t _ptr_lm_password;
11822	uint32_t _ptr_lm_verifier;
11823	uint32_t _ptr_password3;
11824	uint32_t _ptr_dominfo;
11825	uint32_t _ptr_reject;
11826	TALLOC_CTX *_mem_save_server_0;
11827	TALLOC_CTX *_mem_save_account_0;
11828	TALLOC_CTX *_mem_save_nt_password_0;
11829	TALLOC_CTX *_mem_save_nt_verifier_0;
11830	TALLOC_CTX *_mem_save_lm_password_0;
11831	TALLOC_CTX *_mem_save_lm_verifier_0;
11832	TALLOC_CTX *_mem_save_password3_0;
11833	TALLOC_CTX *_mem_save_dominfo_0;
11834	TALLOC_CTX *_mem_save_dominfo_1;
11835	TALLOC_CTX *_mem_save_reject_0;
11836	TALLOC_CTX *_mem_save_reject_1;
11837	if (flags & NDR_IN) {
11838		ZERO_STRUCT(r->out);
11839
11840		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
11841		if (_ptr_server) {
11842			NDR_PULL_ALLOC(ndr, r->in.server);
11843		} else {
11844			r->in.server = NULL;
11845		}
11846		if (r->in.server) {
11847			_mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11848			NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
11849			NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.server));
11850			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
11851		}
11852		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11853			NDR_PULL_ALLOC(ndr, r->in.account);
11854		}
11855		_mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
11856		NDR_PULL_SET_MEM_CTX(ndr, r->in.account, LIBNDR_FLAG_REF_ALLOC);
11857		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account));
11858		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, LIBNDR_FLAG_REF_ALLOC);
11859		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nt_password));
11860		if (_ptr_nt_password) {
11861			NDR_PULL_ALLOC(ndr, r->in.nt_password);
11862		} else {
11863			r->in.nt_password = NULL;
11864		}
11865		if (r->in.nt_password) {
11866			_mem_save_nt_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
11867			NDR_PULL_SET_MEM_CTX(ndr, r->in.nt_password, 0);
11868			NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, r->in.nt_password));
11869			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nt_password_0, 0);
11870		}
11871		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nt_verifier));
11872		if (_ptr_nt_verifier) {
11873			NDR_PULL_ALLOC(ndr, r->in.nt_verifier);
11874		} else {
11875			r->in.nt_verifier = NULL;
11876		}
11877		if (r->in.nt_verifier) {
11878			_mem_save_nt_verifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
11879			NDR_PULL_SET_MEM_CTX(ndr, r->in.nt_verifier, 0);
11880			NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.nt_verifier));
11881			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nt_verifier_0, 0);
11882		}
11883		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.lm_change));
11884		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lm_password));
11885		if (_ptr_lm_password) {
11886			NDR_PULL_ALLOC(ndr, r->in.lm_password);
11887		} else {
11888			r->in.lm_password = NULL;
11889		}
11890		if (r->in.lm_password) {
11891			_mem_save_lm_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
11892			NDR_PULL_SET_MEM_CTX(ndr, r->in.lm_password, 0);
11893			NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, r->in.lm_password));
11894			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lm_password_0, 0);
11895		}
11896		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lm_verifier));
11897		if (_ptr_lm_verifier) {
11898			NDR_PULL_ALLOC(ndr, r->in.lm_verifier);
11899		} else {
11900			r->in.lm_verifier = NULL;
11901		}
11902		if (r->in.lm_verifier) {
11903			_mem_save_lm_verifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
11904			NDR_PULL_SET_MEM_CTX(ndr, r->in.lm_verifier, 0);
11905			NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.lm_verifier));
11906			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lm_verifier_0, 0);
11907		}
11908		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password3));
11909		if (_ptr_password3) {
11910			NDR_PULL_ALLOC(ndr, r->in.password3);
11911		} else {
11912			r->in.password3 = NULL;
11913		}
11914		if (r->in.password3) {
11915			_mem_save_password3_0 = NDR_PULL_GET_MEM_CTX(ndr);
11916			NDR_PULL_SET_MEM_CTX(ndr, r->in.password3, 0);
11917			NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, r->in.password3));
11918			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password3_0, 0);
11919		}
11920		NDR_PULL_ALLOC(ndr, r->out.dominfo);
11921		ZERO_STRUCTP(r->out.dominfo);
11922		NDR_PULL_ALLOC(ndr, r->out.reject);
11923		ZERO_STRUCTP(r->out.reject);
11924	}
11925	if (flags & NDR_OUT) {
11926		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11927			NDR_PULL_ALLOC(ndr, r->out.dominfo);
11928		}
11929		_mem_save_dominfo_0 = NDR_PULL_GET_MEM_CTX(ndr);
11930		NDR_PULL_SET_MEM_CTX(ndr, r->out.dominfo, LIBNDR_FLAG_REF_ALLOC);
11931		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dominfo));
11932		if (_ptr_dominfo) {
11933			NDR_PULL_ALLOC(ndr, *r->out.dominfo);
11934		} else {
11935			*r->out.dominfo = NULL;
11936		}
11937		if (*r->out.dominfo) {
11938			_mem_save_dominfo_1 = NDR_PULL_GET_MEM_CTX(ndr);
11939			NDR_PULL_SET_MEM_CTX(ndr, *r->out.dominfo, 0);
11940			NDR_CHECK(ndr_pull_samr_DomInfo1(ndr, NDR_SCALARS, *r->out.dominfo));
11941			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dominfo_1, 0);
11942		}
11943		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dominfo_0, LIBNDR_FLAG_REF_ALLOC);
11944		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11945			NDR_PULL_ALLOC(ndr, r->out.reject);
11946		}
11947		_mem_save_reject_0 = NDR_PULL_GET_MEM_CTX(ndr);
11948		NDR_PULL_SET_MEM_CTX(ndr, r->out.reject, LIBNDR_FLAG_REF_ALLOC);
11949		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_reject));
11950		if (_ptr_reject) {
11951			NDR_PULL_ALLOC(ndr, *r->out.reject);
11952		} else {
11953			*r->out.reject = NULL;
11954		}
11955		if (*r->out.reject) {
11956			_mem_save_reject_1 = NDR_PULL_GET_MEM_CTX(ndr);
11957			NDR_PULL_SET_MEM_CTX(ndr, *r->out.reject, 0);
11958			NDR_CHECK(ndr_pull_samr_ChangeReject(ndr, NDR_SCALARS, *r->out.reject));
11959			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reject_1, 0);
11960		}
11961		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reject_0, LIBNDR_FLAG_REF_ALLOC);
11962		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11963	}
11964	return NDR_ERR_SUCCESS;
11965}
11966
11967_PUBLIC_ void ndr_print_samr_ChangePasswordUser3(struct ndr_print *ndr, const char *name, int flags, const struct samr_ChangePasswordUser3 *r)
11968{
11969	ndr_print_struct(ndr, name, "samr_ChangePasswordUser3");
11970	ndr->depth++;
11971	if (flags & NDR_SET_VALUES) {
11972		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11973	}
11974	if (flags & NDR_IN) {
11975		ndr_print_struct(ndr, "in", "samr_ChangePasswordUser3");
11976		ndr->depth++;
11977		ndr_print_ptr(ndr, "server", r->in.server);
11978		ndr->depth++;
11979		if (r->in.server) {
11980			ndr_print_lsa_String(ndr, "server", r->in.server);
11981		}
11982		ndr->depth--;
11983		ndr_print_ptr(ndr, "account", r->in.account);
11984		ndr->depth++;
11985		ndr_print_lsa_String(ndr, "account", r->in.account);
11986		ndr->depth--;
11987		ndr_print_ptr(ndr, "nt_password", r->in.nt_password);
11988		ndr->depth++;
11989		if (r->in.nt_password) {
11990			ndr_print_samr_CryptPassword(ndr, "nt_password", r->in.nt_password);
11991		}
11992		ndr->depth--;
11993		ndr_print_ptr(ndr, "nt_verifier", r->in.nt_verifier);
11994		ndr->depth++;
11995		if (r->in.nt_verifier) {
11996			ndr_print_samr_Password(ndr, "nt_verifier", r->in.nt_verifier);
11997		}
11998		ndr->depth--;
11999		ndr_print_uint8(ndr, "lm_change", r->in.lm_change);
12000		ndr_print_ptr(ndr, "lm_password", r->in.lm_password);
12001		ndr->depth++;
12002		if (r->in.lm_password) {
12003			ndr_print_samr_CryptPassword(ndr, "lm_password", r->in.lm_password);
12004		}
12005		ndr->depth--;
12006		ndr_print_ptr(ndr, "lm_verifier", r->in.lm_verifier);
12007		ndr->depth++;
12008		if (r->in.lm_verifier) {
12009			ndr_print_samr_Password(ndr, "lm_verifier", r->in.lm_verifier);
12010		}
12011		ndr->depth--;
12012		ndr_print_ptr(ndr, "password3", r->in.password3);
12013		ndr->depth++;
12014		if (r->in.password3) {
12015			ndr_print_samr_CryptPassword(ndr, "password3", r->in.password3);
12016		}
12017		ndr->depth--;
12018		ndr->depth--;
12019	}
12020	if (flags & NDR_OUT) {
12021		ndr_print_struct(ndr, "out", "samr_ChangePasswordUser3");
12022		ndr->depth++;
12023		ndr_print_ptr(ndr, "dominfo", r->out.dominfo);
12024		ndr->depth++;
12025		ndr_print_ptr(ndr, "dominfo", *r->out.dominfo);
12026		ndr->depth++;
12027		if (*r->out.dominfo) {
12028			ndr_print_samr_DomInfo1(ndr, "dominfo", *r->out.dominfo);
12029		}
12030		ndr->depth--;
12031		ndr->depth--;
12032		ndr_print_ptr(ndr, "reject", r->out.reject);
12033		ndr->depth++;
12034		ndr_print_ptr(ndr, "reject", *r->out.reject);
12035		ndr->depth++;
12036		if (*r->out.reject) {
12037			ndr_print_samr_ChangeReject(ndr, "reject", *r->out.reject);
12038		}
12039		ndr->depth--;
12040		ndr->depth--;
12041		ndr_print_NTSTATUS(ndr, "result", r->out.result);
12042		ndr->depth--;
12043	}
12044	ndr->depth--;
12045}
12046
12047_PUBLIC_ enum ndr_err_code ndr_push_samr_Connect5(struct ndr_push *ndr, int flags, const struct samr_Connect5 *r)
12048{
12049	if (flags & NDR_IN) {
12050		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
12051		if (r->in.system_name) {
12052			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
12053			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12054			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
12055			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.system_name, ndr_charset_length(r->in.system_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12056		}
12057		NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
12058		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level_in));
12059		if (r->in.info_in == NULL) {
12060			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12061		}
12062		NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info_in, r->in.level_in));
12063		NDR_CHECK(ndr_push_samr_ConnectInfo(ndr, NDR_SCALARS, r->in.info_in));
12064	}
12065	if (flags & NDR_OUT) {
12066		if (r->out.level_out == NULL) {
12067			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12068		}
12069		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
12070		if (r->out.info_out == NULL) {
12071			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12072		}
12073		NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info_out, *r->out.level_out));
12074		NDR_CHECK(ndr_push_samr_ConnectInfo(ndr, NDR_SCALARS, r->out.info_out));
12075		if (r->out.connect_handle == NULL) {
12076			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12077		}
12078		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
12079		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12080	}
12081	return NDR_ERR_SUCCESS;
12082}
12083
12084_PUBLIC_ enum ndr_err_code ndr_pull_samr_Connect5(struct ndr_pull *ndr, int flags, struct samr_Connect5 *r)
12085{
12086	uint32_t _ptr_system_name;
12087	TALLOC_CTX *_mem_save_system_name_0;
12088	TALLOC_CTX *_mem_save_info_in_0;
12089	TALLOC_CTX *_mem_save_level_out_0;
12090	TALLOC_CTX *_mem_save_info_out_0;
12091	TALLOC_CTX *_mem_save_connect_handle_0;
12092	if (flags & NDR_IN) {
12093		ZERO_STRUCT(r->out);
12094
12095		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
12096		if (_ptr_system_name) {
12097			NDR_PULL_ALLOC(ndr, r->in.system_name);
12098		} else {
12099			r->in.system_name = NULL;
12100		}
12101		if (r->in.system_name) {
12102			_mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12103			NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
12104			NDR_CHECK(ndr_pull_array_size(ndr, &r->in.system_name));
12105			NDR_CHECK(ndr_pull_array_length(ndr, &r->in.system_name));
12106			if (ndr_get_array_length(ndr, &r->in.system_name) > ndr_get_array_size(ndr, &r->in.system_name)) {
12107				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.system_name), ndr_get_array_length(ndr, &r->in.system_name));
12108			}
12109			NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t)));
12110			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.system_name, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t), CH_UTF16));
12111			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
12112		}
12113		NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
12114		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level_in));
12115		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12116			NDR_PULL_ALLOC(ndr, r->in.info_in);
12117		}
12118		_mem_save_info_in_0 = NDR_PULL_GET_MEM_CTX(ndr);
12119		NDR_PULL_SET_MEM_CTX(ndr, r->in.info_in, LIBNDR_FLAG_REF_ALLOC);
12120		NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info_in, r->in.level_in));
12121		NDR_CHECK(ndr_pull_samr_ConnectInfo(ndr, NDR_SCALARS, r->in.info_in));
12122		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_in_0, LIBNDR_FLAG_REF_ALLOC);
12123		NDR_PULL_ALLOC(ndr, r->out.level_out);
12124		ZERO_STRUCTP(r->out.level_out);
12125		NDR_PULL_ALLOC(ndr, r->out.info_out);
12126		ZERO_STRUCTP(r->out.info_out);
12127		NDR_PULL_ALLOC(ndr, r->out.connect_handle);
12128		ZERO_STRUCTP(r->out.connect_handle);
12129	}
12130	if (flags & NDR_OUT) {
12131		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12132			NDR_PULL_ALLOC(ndr, r->out.level_out);
12133		}
12134		_mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
12135		NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
12136		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
12137		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
12138		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12139			NDR_PULL_ALLOC(ndr, r->out.info_out);
12140		}
12141		_mem_save_info_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
12142		NDR_PULL_SET_MEM_CTX(ndr, r->out.info_out, LIBNDR_FLAG_REF_ALLOC);
12143		NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info_out, *r->out.level_out));
12144		NDR_CHECK(ndr_pull_samr_ConnectInfo(ndr, NDR_SCALARS, r->out.info_out));
12145		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_out_0, LIBNDR_FLAG_REF_ALLOC);
12146		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12147			NDR_PULL_ALLOC(ndr, r->out.connect_handle);
12148		}
12149		_mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12150		NDR_PULL_SET_MEM_CTX(ndr, r->out.connect_handle, LIBNDR_FLAG_REF_ALLOC);
12151		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
12152		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
12153		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12154	}
12155	return NDR_ERR_SUCCESS;
12156}
12157
12158_PUBLIC_ void ndr_print_samr_Connect5(struct ndr_print *ndr, const char *name, int flags, const struct samr_Connect5 *r)
12159{
12160	ndr_print_struct(ndr, name, "samr_Connect5");
12161	ndr->depth++;
12162	if (flags & NDR_SET_VALUES) {
12163		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12164	}
12165	if (flags & NDR_IN) {
12166		ndr_print_struct(ndr, "in", "samr_Connect5");
12167		ndr->depth++;
12168		ndr_print_ptr(ndr, "system_name", r->in.system_name);
12169		ndr->depth++;
12170		if (r->in.system_name) {
12171			ndr_print_string(ndr, "system_name", r->in.system_name);
12172		}
12173		ndr->depth--;
12174		ndr_print_samr_ConnectAccessMask(ndr, "access_mask", r->in.access_mask);
12175		ndr_print_uint32(ndr, "level_in", r->in.level_in);
12176		ndr_print_ptr(ndr, "info_in", r->in.info_in);
12177		ndr->depth++;
12178		ndr_print_set_switch_value(ndr, r->in.info_in, r->in.level_in);
12179		ndr_print_samr_ConnectInfo(ndr, "info_in", r->in.info_in);
12180		ndr->depth--;
12181		ndr->depth--;
12182	}
12183	if (flags & NDR_OUT) {
12184		ndr_print_struct(ndr, "out", "samr_Connect5");
12185		ndr->depth++;
12186		ndr_print_ptr(ndr, "level_out", r->out.level_out);
12187		ndr->depth++;
12188		ndr_print_uint32(ndr, "level_out", *r->out.level_out);
12189		ndr->depth--;
12190		ndr_print_ptr(ndr, "info_out", r->out.info_out);
12191		ndr->depth++;
12192		ndr_print_set_switch_value(ndr, r->out.info_out, *r->out.level_out);
12193		ndr_print_samr_ConnectInfo(ndr, "info_out", r->out.info_out);
12194		ndr->depth--;
12195		ndr_print_ptr(ndr, "connect_handle", r->out.connect_handle);
12196		ndr->depth++;
12197		ndr_print_policy_handle(ndr, "connect_handle", r->out.connect_handle);
12198		ndr->depth--;
12199		ndr_print_NTSTATUS(ndr, "result", r->out.result);
12200		ndr->depth--;
12201	}
12202	ndr->depth--;
12203}
12204
12205static enum ndr_err_code ndr_push_samr_RidToSid(struct ndr_push *ndr, int flags, const struct samr_RidToSid *r)
12206{
12207	if (flags & NDR_IN) {
12208		if (r->in.domain_handle == NULL) {
12209			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12210		}
12211		NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
12212		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.rid));
12213	}
12214	if (flags & NDR_OUT) {
12215		if (r->out.sid == NULL) {
12216			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12217		}
12218		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.sid));
12219		if (*r->out.sid) {
12220			NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sid));
12221		}
12222		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12223	}
12224	return NDR_ERR_SUCCESS;
12225}
12226
12227static enum ndr_err_code ndr_pull_samr_RidToSid(struct ndr_pull *ndr, int flags, struct samr_RidToSid *r)
12228{
12229	uint32_t _ptr_sid;
12230	TALLOC_CTX *_mem_save_domain_handle_0;
12231	TALLOC_CTX *_mem_save_sid_0;
12232	TALLOC_CTX *_mem_save_sid_1;
12233	if (flags & NDR_IN) {
12234		ZERO_STRUCT(r->out);
12235
12236		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12237			NDR_PULL_ALLOC(ndr, r->in.domain_handle);
12238		}
12239		_mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12240		NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
12241		NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
12242		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
12243		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rid));
12244		NDR_PULL_ALLOC(ndr, r->out.sid);
12245		ZERO_STRUCTP(r->out.sid);
12246	}
12247	if (flags & NDR_OUT) {
12248		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12249			NDR_PULL_ALLOC(ndr, r->out.sid);
12250		}
12251		_mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12252		NDR_PULL_SET_MEM_CTX(ndr, r->out.sid, LIBNDR_FLAG_REF_ALLOC);
12253		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
12254		if (_ptr_sid) {
12255			NDR_PULL_ALLOC(ndr, *r->out.sid);
12256		} else {
12257			*r->out.sid = NULL;
12258		}
12259		if (*r->out.sid) {
12260			_mem_save_sid_1 = NDR_PULL_GET_MEM_CTX(ndr);
12261			NDR_PULL_SET_MEM_CTX(ndr, *r->out.sid, 0);
12262			NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sid));
12263			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_1, 0);
12264		}
12265		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
12266		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12267	}
12268	return NDR_ERR_SUCCESS;
12269}
12270
12271_PUBLIC_ void ndr_print_samr_RidToSid(struct ndr_print *ndr, const char *name, int flags, const struct samr_RidToSid *r)
12272{
12273	ndr_print_struct(ndr, name, "samr_RidToSid");
12274	ndr->depth++;
12275	if (flags & NDR_SET_VALUES) {
12276		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12277	}
12278	if (flags & NDR_IN) {
12279		ndr_print_struct(ndr, "in", "samr_RidToSid");
12280		ndr->depth++;
12281		ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
12282		ndr->depth++;
12283		ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
12284		ndr->depth--;
12285		ndr_print_uint32(ndr, "rid", r->in.rid);
12286		ndr->depth--;
12287	}
12288	if (flags & NDR_OUT) {
12289		ndr_print_struct(ndr, "out", "samr_RidToSid");
12290		ndr->depth++;
12291		ndr_print_ptr(ndr, "sid", r->out.sid);
12292		ndr->depth++;
12293		ndr_print_ptr(ndr, "sid", *r->out.sid);
12294		ndr->depth++;
12295		if (*r->out.sid) {
12296			ndr_print_dom_sid2(ndr, "sid", *r->out.sid);
12297		}
12298		ndr->depth--;
12299		ndr->depth--;
12300		ndr_print_NTSTATUS(ndr, "result", r->out.result);
12301		ndr->depth--;
12302	}
12303	ndr->depth--;
12304}
12305
12306static enum ndr_err_code ndr_push_samr_SetDsrmPassword(struct ndr_push *ndr, int flags, const struct samr_SetDsrmPassword *r)
12307{
12308	if (flags & NDR_IN) {
12309		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.name));
12310		if (r->in.name) {
12311			NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
12312		}
12313		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
12314		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hash));
12315		if (r->in.hash) {
12316			NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.hash));
12317		}
12318	}
12319	if (flags & NDR_OUT) {
12320		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12321	}
12322	return NDR_ERR_SUCCESS;
12323}
12324
12325static enum ndr_err_code ndr_pull_samr_SetDsrmPassword(struct ndr_pull *ndr, int flags, struct samr_SetDsrmPassword *r)
12326{
12327	uint32_t _ptr_name;
12328	uint32_t _ptr_hash;
12329	TALLOC_CTX *_mem_save_name_0;
12330	TALLOC_CTX *_mem_save_hash_0;
12331	if (flags & NDR_IN) {
12332		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
12333		if (_ptr_name) {
12334			NDR_PULL_ALLOC(ndr, r->in.name);
12335		} else {
12336			r->in.name = NULL;
12337		}
12338		if (r->in.name) {
12339			_mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12340			NDR_PULL_SET_MEM_CTX(ndr, r->in.name, 0);
12341			NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
12342			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
12343		}
12344		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
12345		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hash));
12346		if (_ptr_hash) {
12347			NDR_PULL_ALLOC(ndr, r->in.hash);
12348		} else {
12349			r->in.hash = NULL;
12350		}
12351		if (r->in.hash) {
12352			_mem_save_hash_0 = NDR_PULL_GET_MEM_CTX(ndr);
12353			NDR_PULL_SET_MEM_CTX(ndr, r->in.hash, 0);
12354			NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.hash));
12355			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hash_0, 0);
12356		}
12357	}
12358	if (flags & NDR_OUT) {
12359		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12360	}
12361	return NDR_ERR_SUCCESS;
12362}
12363
12364_PUBLIC_ void ndr_print_samr_SetDsrmPassword(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetDsrmPassword *r)
12365{
12366	ndr_print_struct(ndr, name, "samr_SetDsrmPassword");
12367	ndr->depth++;
12368	if (flags & NDR_SET_VALUES) {
12369		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12370	}
12371	if (flags & NDR_IN) {
12372		ndr_print_struct(ndr, "in", "samr_SetDsrmPassword");
12373		ndr->depth++;
12374		ndr_print_ptr(ndr, "name", r->in.name);
12375		ndr->depth++;
12376		if (r->in.name) {
12377			ndr_print_lsa_String(ndr, "name", r->in.name);
12378		}
12379		ndr->depth--;
12380		ndr_print_uint32(ndr, "unknown", r->in.unknown);
12381		ndr_print_ptr(ndr, "hash", r->in.hash);
12382		ndr->depth++;
12383		if (r->in.hash) {
12384			ndr_print_samr_Password(ndr, "hash", r->in.hash);
12385		}
12386		ndr->depth--;
12387		ndr->depth--;
12388	}
12389	if (flags & NDR_OUT) {
12390		ndr_print_struct(ndr, "out", "samr_SetDsrmPassword");
12391		ndr->depth++;
12392		ndr_print_NTSTATUS(ndr, "result", r->out.result);
12393		ndr->depth--;
12394	}
12395	ndr->depth--;
12396}
12397
12398static enum ndr_err_code ndr_push_samr_ValidatePassword(struct ndr_push *ndr, int flags, const struct samr_ValidatePassword *r)
12399{
12400	if (flags & NDR_IN) {
12401		NDR_CHECK(ndr_push_samr_ValidatePasswordLevel(ndr, NDR_SCALARS, r->in.level));
12402		if (r->in.req == NULL) {
12403			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12404		}
12405		NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
12406		NDR_CHECK(ndr_push_samr_ValidatePasswordReq(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
12407	}
12408	if (flags & NDR_OUT) {
12409		if (r->out.rep == NULL) {
12410			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12411		}
12412		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.rep));
12413		if (*r->out.rep) {
12414			NDR_CHECK(ndr_push_set_switch_value(ndr, *r->out.rep, r->in.level));
12415			NDR_CHECK(ndr_push_samr_ValidatePasswordRep(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.rep));
12416		}
12417		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12418	}
12419	return NDR_ERR_SUCCESS;
12420}
12421
12422static enum ndr_err_code ndr_pull_samr_ValidatePassword(struct ndr_pull *ndr, int flags, struct samr_ValidatePassword *r)
12423{
12424	uint32_t _ptr_rep;
12425	TALLOC_CTX *_mem_save_req_0;
12426	TALLOC_CTX *_mem_save_rep_0;
12427	TALLOC_CTX *_mem_save_rep_1;
12428	if (flags & NDR_IN) {
12429		ZERO_STRUCT(r->out);
12430
12431		NDR_CHECK(ndr_pull_samr_ValidatePasswordLevel(ndr, NDR_SCALARS, &r->in.level));
12432		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12433			NDR_PULL_ALLOC(ndr, r->in.req);
12434		}
12435		_mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
12436		NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
12437		NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
12438		NDR_CHECK(ndr_pull_samr_ValidatePasswordReq(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
12439		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
12440		NDR_PULL_ALLOC(ndr, r->out.rep);
12441		ZERO_STRUCTP(r->out.rep);
12442	}
12443	if (flags & NDR_OUT) {
12444		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12445			NDR_PULL_ALLOC(ndr, r->out.rep);
12446		}
12447		_mem_save_rep_0 = NDR_PULL_GET_MEM_CTX(ndr);
12448		NDR_PULL_SET_MEM_CTX(ndr, r->out.rep, LIBNDR_FLAG_REF_ALLOC);
12449		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rep));
12450		if (_ptr_rep) {
12451			NDR_PULL_ALLOC(ndr, *r->out.rep);
12452		} else {
12453			*r->out.rep = NULL;
12454		}
12455		if (*r->out.rep) {
12456			_mem_save_rep_1 = NDR_PULL_GET_MEM_CTX(ndr);
12457			NDR_PULL_SET_MEM_CTX(ndr, *r->out.rep, 0);
12458			NDR_CHECK(ndr_pull_set_switch_value(ndr, *r->out.rep, r->in.level));
12459			NDR_CHECK(ndr_pull_samr_ValidatePasswordRep(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.rep));
12460			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rep_1, 0);
12461		}
12462		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rep_0, LIBNDR_FLAG_REF_ALLOC);
12463		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12464	}
12465	return NDR_ERR_SUCCESS;
12466}
12467
12468_PUBLIC_ void ndr_print_samr_ValidatePassword(struct ndr_print *ndr, const char *name, int flags, const struct samr_ValidatePassword *r)
12469{
12470	ndr_print_struct(ndr, name, "samr_ValidatePassword");
12471	ndr->depth++;
12472	if (flags & NDR_SET_VALUES) {
12473		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12474	}
12475	if (flags & NDR_IN) {
12476		ndr_print_struct(ndr, "in", "samr_ValidatePassword");
12477		ndr->depth++;
12478		ndr_print_samr_ValidatePasswordLevel(ndr, "level", r->in.level);
12479		ndr_print_ptr(ndr, "req", r->in.req);
12480		ndr->depth++;
12481		ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
12482		ndr_print_samr_ValidatePasswordReq(ndr, "req", r->in.req);
12483		ndr->depth--;
12484		ndr->depth--;
12485	}
12486	if (flags & NDR_OUT) {
12487		ndr_print_struct(ndr, "out", "samr_ValidatePassword");
12488		ndr->depth++;
12489		ndr_print_ptr(ndr, "rep", r->out.rep);
12490		ndr->depth++;
12491		ndr_print_ptr(ndr, "rep", *r->out.rep);
12492		ndr->depth++;
12493		if (*r->out.rep) {
12494			ndr_print_set_switch_value(ndr, *r->out.rep, r->in.level);
12495			ndr_print_samr_ValidatePasswordRep(ndr, "rep", *r->out.rep);
12496		}
12497		ndr->depth--;
12498		ndr->depth--;
12499		ndr_print_NTSTATUS(ndr, "result", r->out.result);
12500		ndr->depth--;
12501	}
12502	ndr->depth--;
12503}
12504
12505static const struct ndr_interface_call samr_calls[] = {
12506	{
12507		"samr_Connect",
12508		sizeof(struct samr_Connect),
12509		(ndr_push_flags_fn_t) ndr_push_samr_Connect,
12510		(ndr_pull_flags_fn_t) ndr_pull_samr_Connect,
12511		(ndr_print_function_t) ndr_print_samr_Connect,
12512		false,
12513	},
12514	{
12515		"samr_Close",
12516		sizeof(struct samr_Close),
12517		(ndr_push_flags_fn_t) ndr_push_samr_Close,
12518		(ndr_pull_flags_fn_t) ndr_pull_samr_Close,
12519		(ndr_print_function_t) ndr_print_samr_Close,
12520		false,
12521	},
12522	{
12523		"samr_SetSecurity",
12524		sizeof(struct samr_SetSecurity),
12525		(ndr_push_flags_fn_t) ndr_push_samr_SetSecurity,
12526		(ndr_pull_flags_fn_t) ndr_pull_samr_SetSecurity,
12527		(ndr_print_function_t) ndr_print_samr_SetSecurity,
12528		false,
12529	},
12530	{
12531		"samr_QuerySecurity",
12532		sizeof(struct samr_QuerySecurity),
12533		(ndr_push_flags_fn_t) ndr_push_samr_QuerySecurity,
12534		(ndr_pull_flags_fn_t) ndr_pull_samr_QuerySecurity,
12535		(ndr_print_function_t) ndr_print_samr_QuerySecurity,
12536		false,
12537	},
12538	{
12539		"samr_Shutdown",
12540		sizeof(struct samr_Shutdown),
12541		(ndr_push_flags_fn_t) ndr_push_samr_Shutdown,
12542		(ndr_pull_flags_fn_t) ndr_pull_samr_Shutdown,
12543		(ndr_print_function_t) ndr_print_samr_Shutdown,
12544		false,
12545	},
12546	{
12547		"samr_LookupDomain",
12548		sizeof(struct samr_LookupDomain),
12549		(ndr_push_flags_fn_t) ndr_push_samr_LookupDomain,
12550		(ndr_pull_flags_fn_t) ndr_pull_samr_LookupDomain,
12551		(ndr_print_function_t) ndr_print_samr_LookupDomain,
12552		false,
12553	},
12554	{
12555		"samr_EnumDomains",
12556		sizeof(struct samr_EnumDomains),
12557		(ndr_push_flags_fn_t) ndr_push_samr_EnumDomains,
12558		(ndr_pull_flags_fn_t) ndr_pull_samr_EnumDomains,
12559		(ndr_print_function_t) ndr_print_samr_EnumDomains,
12560		false,
12561	},
12562	{
12563		"samr_OpenDomain",
12564		sizeof(struct samr_OpenDomain),
12565		(ndr_push_flags_fn_t) ndr_push_samr_OpenDomain,
12566		(ndr_pull_flags_fn_t) ndr_pull_samr_OpenDomain,
12567		(ndr_print_function_t) ndr_print_samr_OpenDomain,
12568		false,
12569	},
12570	{
12571		"samr_QueryDomainInfo",
12572		sizeof(struct samr_QueryDomainInfo),
12573		(ndr_push_flags_fn_t) ndr_push_samr_QueryDomainInfo,
12574		(ndr_pull_flags_fn_t) ndr_pull_samr_QueryDomainInfo,
12575		(ndr_print_function_t) ndr_print_samr_QueryDomainInfo,
12576		false,
12577	},
12578	{
12579		"samr_SetDomainInfo",
12580		sizeof(struct samr_SetDomainInfo),
12581		(ndr_push_flags_fn_t) ndr_push_samr_SetDomainInfo,
12582		(ndr_pull_flags_fn_t) ndr_pull_samr_SetDomainInfo,
12583		(ndr_print_function_t) ndr_print_samr_SetDomainInfo,
12584		false,
12585	},
12586	{
12587		"samr_CreateDomainGroup",
12588		sizeof(struct samr_CreateDomainGroup),
12589		(ndr_push_flags_fn_t) ndr_push_samr_CreateDomainGroup,
12590		(ndr_pull_flags_fn_t) ndr_pull_samr_CreateDomainGroup,
12591		(ndr_print_function_t) ndr_print_samr_CreateDomainGroup,
12592		false,
12593	},
12594	{
12595		"samr_EnumDomainGroups",
12596		sizeof(struct samr_EnumDomainGroups),
12597		(ndr_push_flags_fn_t) ndr_push_samr_EnumDomainGroups,
12598		(ndr_pull_flags_fn_t) ndr_pull_samr_EnumDomainGroups,
12599		(ndr_print_function_t) ndr_print_samr_EnumDomainGroups,
12600		false,
12601	},
12602	{
12603		"samr_CreateUser",
12604		sizeof(struct samr_CreateUser),
12605		(ndr_push_flags_fn_t) ndr_push_samr_CreateUser,
12606		(ndr_pull_flags_fn_t) ndr_pull_samr_CreateUser,
12607		(ndr_print_function_t) ndr_print_samr_CreateUser,
12608		false,
12609	},
12610	{
12611		"samr_EnumDomainUsers",
12612		sizeof(struct samr_EnumDomainUsers),
12613		(ndr_push_flags_fn_t) ndr_push_samr_EnumDomainUsers,
12614		(ndr_pull_flags_fn_t) ndr_pull_samr_EnumDomainUsers,
12615		(ndr_print_function_t) ndr_print_samr_EnumDomainUsers,
12616		false,
12617	},
12618	{
12619		"samr_CreateDomAlias",
12620		sizeof(struct samr_CreateDomAlias),
12621		(ndr_push_flags_fn_t) ndr_push_samr_CreateDomAlias,
12622		(ndr_pull_flags_fn_t) ndr_pull_samr_CreateDomAlias,
12623		(ndr_print_function_t) ndr_print_samr_CreateDomAlias,
12624		false,
12625	},
12626	{
12627		"samr_EnumDomainAliases",
12628		sizeof(struct samr_EnumDomainAliases),
12629		(ndr_push_flags_fn_t) ndr_push_samr_EnumDomainAliases,
12630		(ndr_pull_flags_fn_t) ndr_pull_samr_EnumDomainAliases,
12631		(ndr_print_function_t) ndr_print_samr_EnumDomainAliases,
12632		false,
12633	},
12634	{
12635		"samr_GetAliasMembership",
12636		sizeof(struct samr_GetAliasMembership),
12637		(ndr_push_flags_fn_t) ndr_push_samr_GetAliasMembership,
12638		(ndr_pull_flags_fn_t) ndr_pull_samr_GetAliasMembership,
12639		(ndr_print_function_t) ndr_print_samr_GetAliasMembership,
12640		false,
12641	},
12642	{
12643		"samr_LookupNames",
12644		sizeof(struct samr_LookupNames),
12645		(ndr_push_flags_fn_t) ndr_push_samr_LookupNames,
12646		(ndr_pull_flags_fn_t) ndr_pull_samr_LookupNames,
12647		(ndr_print_function_t) ndr_print_samr_LookupNames,
12648		false,
12649	},
12650	{
12651		"samr_LookupRids",
12652		sizeof(struct samr_LookupRids),
12653		(ndr_push_flags_fn_t) ndr_push_samr_LookupRids,
12654		(ndr_pull_flags_fn_t) ndr_pull_samr_LookupRids,
12655		(ndr_print_function_t) ndr_print_samr_LookupRids,
12656		false,
12657	},
12658	{
12659		"samr_OpenGroup",
12660		sizeof(struct samr_OpenGroup),
12661		(ndr_push_flags_fn_t) ndr_push_samr_OpenGroup,
12662		(ndr_pull_flags_fn_t) ndr_pull_samr_OpenGroup,
12663		(ndr_print_function_t) ndr_print_samr_OpenGroup,
12664		false,
12665	},
12666	{
12667		"samr_QueryGroupInfo",
12668		sizeof(struct samr_QueryGroupInfo),
12669		(ndr_push_flags_fn_t) ndr_push_samr_QueryGroupInfo,
12670		(ndr_pull_flags_fn_t) ndr_pull_samr_QueryGroupInfo,
12671		(ndr_print_function_t) ndr_print_samr_QueryGroupInfo,
12672		false,
12673	},
12674	{
12675		"samr_SetGroupInfo",
12676		sizeof(struct samr_SetGroupInfo),
12677		(ndr_push_flags_fn_t) ndr_push_samr_SetGroupInfo,
12678		(ndr_pull_flags_fn_t) ndr_pull_samr_SetGroupInfo,
12679		(ndr_print_function_t) ndr_print_samr_SetGroupInfo,
12680		false,
12681	},
12682	{
12683		"samr_AddGroupMember",
12684		sizeof(struct samr_AddGroupMember),
12685		(ndr_push_flags_fn_t) ndr_push_samr_AddGroupMember,
12686		(ndr_pull_flags_fn_t) ndr_pull_samr_AddGroupMember,
12687		(ndr_print_function_t) ndr_print_samr_AddGroupMember,
12688		false,
12689	},
12690	{
12691		"samr_DeleteDomainGroup",
12692		sizeof(struct samr_DeleteDomainGroup),
12693		(ndr_push_flags_fn_t) ndr_push_samr_DeleteDomainGroup,
12694		(ndr_pull_flags_fn_t) ndr_pull_samr_DeleteDomainGroup,
12695		(ndr_print_function_t) ndr_print_samr_DeleteDomainGroup,
12696		false,
12697	},
12698	{
12699		"samr_DeleteGroupMember",
12700		sizeof(struct samr_DeleteGroupMember),
12701		(ndr_push_flags_fn_t) ndr_push_samr_DeleteGroupMember,
12702		(ndr_pull_flags_fn_t) ndr_pull_samr_DeleteGroupMember,
12703		(ndr_print_function_t) ndr_print_samr_DeleteGroupMember,
12704		false,
12705	},
12706	{
12707		"samr_QueryGroupMember",
12708		sizeof(struct samr_QueryGroupMember),
12709		(ndr_push_flags_fn_t) ndr_push_samr_QueryGroupMember,
12710		(ndr_pull_flags_fn_t) ndr_pull_samr_QueryGroupMember,
12711		(ndr_print_function_t) ndr_print_samr_QueryGroupMember,
12712		false,
12713	},
12714	{
12715		"samr_SetMemberAttributesOfGroup",
12716		sizeof(struct samr_SetMemberAttributesOfGroup),
12717		(ndr_push_flags_fn_t) ndr_push_samr_SetMemberAttributesOfGroup,
12718		(ndr_pull_flags_fn_t) ndr_pull_samr_SetMemberAttributesOfGroup,
12719		(ndr_print_function_t) ndr_print_samr_SetMemberAttributesOfGroup,
12720		false,
12721	},
12722	{
12723		"samr_OpenAlias",
12724		sizeof(struct samr_OpenAlias),
12725		(ndr_push_flags_fn_t) ndr_push_samr_OpenAlias,
12726		(ndr_pull_flags_fn_t) ndr_pull_samr_OpenAlias,
12727		(ndr_print_function_t) ndr_print_samr_OpenAlias,
12728		false,
12729	},
12730	{
12731		"samr_QueryAliasInfo",
12732		sizeof(struct samr_QueryAliasInfo),
12733		(ndr_push_flags_fn_t) ndr_push_samr_QueryAliasInfo,
12734		(ndr_pull_flags_fn_t) ndr_pull_samr_QueryAliasInfo,
12735		(ndr_print_function_t) ndr_print_samr_QueryAliasInfo,
12736		false,
12737	},
12738	{
12739		"samr_SetAliasInfo",
12740		sizeof(struct samr_SetAliasInfo),
12741		(ndr_push_flags_fn_t) ndr_push_samr_SetAliasInfo,
12742		(ndr_pull_flags_fn_t) ndr_pull_samr_SetAliasInfo,
12743		(ndr_print_function_t) ndr_print_samr_SetAliasInfo,
12744		false,
12745	},
12746	{
12747		"samr_DeleteDomAlias",
12748		sizeof(struct samr_DeleteDomAlias),
12749		(ndr_push_flags_fn_t) ndr_push_samr_DeleteDomAlias,
12750		(ndr_pull_flags_fn_t) ndr_pull_samr_DeleteDomAlias,
12751		(ndr_print_function_t) ndr_print_samr_DeleteDomAlias,
12752		false,
12753	},
12754	{
12755		"samr_AddAliasMember",
12756		sizeof(struct samr_AddAliasMember),
12757		(ndr_push_flags_fn_t) ndr_push_samr_AddAliasMember,
12758		(ndr_pull_flags_fn_t) ndr_pull_samr_AddAliasMember,
12759		(ndr_print_function_t) ndr_print_samr_AddAliasMember,
12760		false,
12761	},
12762	{
12763		"samr_DeleteAliasMember",
12764		sizeof(struct samr_DeleteAliasMember),
12765		(ndr_push_flags_fn_t) ndr_push_samr_DeleteAliasMember,
12766		(ndr_pull_flags_fn_t) ndr_pull_samr_DeleteAliasMember,
12767		(ndr_print_function_t) ndr_print_samr_DeleteAliasMember,
12768		false,
12769	},
12770	{
12771		"samr_GetMembersInAlias",
12772		sizeof(struct samr_GetMembersInAlias),
12773		(ndr_push_flags_fn_t) ndr_push_samr_GetMembersInAlias,
12774		(ndr_pull_flags_fn_t) ndr_pull_samr_GetMembersInAlias,
12775		(ndr_print_function_t) ndr_print_samr_GetMembersInAlias,
12776		false,
12777	},
12778	{
12779		"samr_OpenUser",
12780		sizeof(struct samr_OpenUser),
12781		(ndr_push_flags_fn_t) ndr_push_samr_OpenUser,
12782		(ndr_pull_flags_fn_t) ndr_pull_samr_OpenUser,
12783		(ndr_print_function_t) ndr_print_samr_OpenUser,
12784		false,
12785	},
12786	{
12787		"samr_DeleteUser",
12788		sizeof(struct samr_DeleteUser),
12789		(ndr_push_flags_fn_t) ndr_push_samr_DeleteUser,
12790		(ndr_pull_flags_fn_t) ndr_pull_samr_DeleteUser,
12791		(ndr_print_function_t) ndr_print_samr_DeleteUser,
12792		false,
12793	},
12794	{
12795		"samr_QueryUserInfo",
12796		sizeof(struct samr_QueryUserInfo),
12797		(ndr_push_flags_fn_t) ndr_push_samr_QueryUserInfo,
12798		(ndr_pull_flags_fn_t) ndr_pull_samr_QueryUserInfo,
12799		(ndr_print_function_t) ndr_print_samr_QueryUserInfo,
12800		false,
12801	},
12802	{
12803		"samr_SetUserInfo",
12804		sizeof(struct samr_SetUserInfo),
12805		(ndr_push_flags_fn_t) ndr_push_samr_SetUserInfo,
12806		(ndr_pull_flags_fn_t) ndr_pull_samr_SetUserInfo,
12807		(ndr_print_function_t) ndr_print_samr_SetUserInfo,
12808		false,
12809	},
12810	{
12811		"samr_ChangePasswordUser",
12812		sizeof(struct samr_ChangePasswordUser),
12813		(ndr_push_flags_fn_t) ndr_push_samr_ChangePasswordUser,
12814		(ndr_pull_flags_fn_t) ndr_pull_samr_ChangePasswordUser,
12815		(ndr_print_function_t) ndr_print_samr_ChangePasswordUser,
12816		false,
12817	},
12818	{
12819		"samr_GetGroupsForUser",
12820		sizeof(struct samr_GetGroupsForUser),
12821		(ndr_push_flags_fn_t) ndr_push_samr_GetGroupsForUser,
12822		(ndr_pull_flags_fn_t) ndr_pull_samr_GetGroupsForUser,
12823		(ndr_print_function_t) ndr_print_samr_GetGroupsForUser,
12824		false,
12825	},
12826	{
12827		"samr_QueryDisplayInfo",
12828		sizeof(struct samr_QueryDisplayInfo),
12829		(ndr_push_flags_fn_t) ndr_push_samr_QueryDisplayInfo,
12830		(ndr_pull_flags_fn_t) ndr_pull_samr_QueryDisplayInfo,
12831		(ndr_print_function_t) ndr_print_samr_QueryDisplayInfo,
12832		false,
12833	},
12834	{
12835		"samr_GetDisplayEnumerationIndex",
12836		sizeof(struct samr_GetDisplayEnumerationIndex),
12837		(ndr_push_flags_fn_t) ndr_push_samr_GetDisplayEnumerationIndex,
12838		(ndr_pull_flags_fn_t) ndr_pull_samr_GetDisplayEnumerationIndex,
12839		(ndr_print_function_t) ndr_print_samr_GetDisplayEnumerationIndex,
12840		false,
12841	},
12842	{
12843		"samr_TestPrivateFunctionsDomain",
12844		sizeof(struct samr_TestPrivateFunctionsDomain),
12845		(ndr_push_flags_fn_t) ndr_push_samr_TestPrivateFunctionsDomain,
12846		(ndr_pull_flags_fn_t) ndr_pull_samr_TestPrivateFunctionsDomain,
12847		(ndr_print_function_t) ndr_print_samr_TestPrivateFunctionsDomain,
12848		false,
12849	},
12850	{
12851		"samr_TestPrivateFunctionsUser",
12852		sizeof(struct samr_TestPrivateFunctionsUser),
12853		(ndr_push_flags_fn_t) ndr_push_samr_TestPrivateFunctionsUser,
12854		(ndr_pull_flags_fn_t) ndr_pull_samr_TestPrivateFunctionsUser,
12855		(ndr_print_function_t) ndr_print_samr_TestPrivateFunctionsUser,
12856		false,
12857	},
12858	{
12859		"samr_GetUserPwInfo",
12860		sizeof(struct samr_GetUserPwInfo),
12861		(ndr_push_flags_fn_t) ndr_push_samr_GetUserPwInfo,
12862		(ndr_pull_flags_fn_t) ndr_pull_samr_GetUserPwInfo,
12863		(ndr_print_function_t) ndr_print_samr_GetUserPwInfo,
12864		false,
12865	},
12866	{
12867		"samr_RemoveMemberFromForeignDomain",
12868		sizeof(struct samr_RemoveMemberFromForeignDomain),
12869		(ndr_push_flags_fn_t) ndr_push_samr_RemoveMemberFromForeignDomain,
12870		(ndr_pull_flags_fn_t) ndr_pull_samr_RemoveMemberFromForeignDomain,
12871		(ndr_print_function_t) ndr_print_samr_RemoveMemberFromForeignDomain,
12872		false,
12873	},
12874	{
12875		"samr_QueryDomainInfo2",
12876		sizeof(struct samr_QueryDomainInfo2),
12877		(ndr_push_flags_fn_t) ndr_push_samr_QueryDomainInfo2,
12878		(ndr_pull_flags_fn_t) ndr_pull_samr_QueryDomainInfo2,
12879		(ndr_print_function_t) ndr_print_samr_QueryDomainInfo2,
12880		false,
12881	},
12882	{
12883		"samr_QueryUserInfo2",
12884		sizeof(struct samr_QueryUserInfo2),
12885		(ndr_push_flags_fn_t) ndr_push_samr_QueryUserInfo2,
12886		(ndr_pull_flags_fn_t) ndr_pull_samr_QueryUserInfo2,
12887		(ndr_print_function_t) ndr_print_samr_QueryUserInfo2,
12888		false,
12889	},
12890	{
12891		"samr_QueryDisplayInfo2",
12892		sizeof(struct samr_QueryDisplayInfo2),
12893		(ndr_push_flags_fn_t) ndr_push_samr_QueryDisplayInfo2,
12894		(ndr_pull_flags_fn_t) ndr_pull_samr_QueryDisplayInfo2,
12895		(ndr_print_function_t) ndr_print_samr_QueryDisplayInfo2,
12896		false,
12897	},
12898	{
12899		"samr_GetDisplayEnumerationIndex2",
12900		sizeof(struct samr_GetDisplayEnumerationIndex2),
12901		(ndr_push_flags_fn_t) ndr_push_samr_GetDisplayEnumerationIndex2,
12902		(ndr_pull_flags_fn_t) ndr_pull_samr_GetDisplayEnumerationIndex2,
12903		(ndr_print_function_t) ndr_print_samr_GetDisplayEnumerationIndex2,
12904		false,
12905	},
12906	{
12907		"samr_CreateUser2",
12908		sizeof(struct samr_CreateUser2),
12909		(ndr_push_flags_fn_t) ndr_push_samr_CreateUser2,
12910		(ndr_pull_flags_fn_t) ndr_pull_samr_CreateUser2,
12911		(ndr_print_function_t) ndr_print_samr_CreateUser2,
12912		false,
12913	},
12914	{
12915		"samr_QueryDisplayInfo3",
12916		sizeof(struct samr_QueryDisplayInfo3),
12917		(ndr_push_flags_fn_t) ndr_push_samr_QueryDisplayInfo3,
12918		(ndr_pull_flags_fn_t) ndr_pull_samr_QueryDisplayInfo3,
12919		(ndr_print_function_t) ndr_print_samr_QueryDisplayInfo3,
12920		false,
12921	},
12922	{
12923		"samr_AddMultipleMembersToAlias",
12924		sizeof(struct samr_AddMultipleMembersToAlias),
12925		(ndr_push_flags_fn_t) ndr_push_samr_AddMultipleMembersToAlias,
12926		(ndr_pull_flags_fn_t) ndr_pull_samr_AddMultipleMembersToAlias,
12927		(ndr_print_function_t) ndr_print_samr_AddMultipleMembersToAlias,
12928		false,
12929	},
12930	{
12931		"samr_RemoveMultipleMembersFromAlias",
12932		sizeof(struct samr_RemoveMultipleMembersFromAlias),
12933		(ndr_push_flags_fn_t) ndr_push_samr_RemoveMultipleMembersFromAlias,
12934		(ndr_pull_flags_fn_t) ndr_pull_samr_RemoveMultipleMembersFromAlias,
12935		(ndr_print_function_t) ndr_print_samr_RemoveMultipleMembersFromAlias,
12936		false,
12937	},
12938	{
12939		"samr_OemChangePasswordUser2",
12940		sizeof(struct samr_OemChangePasswordUser2),
12941		(ndr_push_flags_fn_t) ndr_push_samr_OemChangePasswordUser2,
12942		(ndr_pull_flags_fn_t) ndr_pull_samr_OemChangePasswordUser2,
12943		(ndr_print_function_t) ndr_print_samr_OemChangePasswordUser2,
12944		false,
12945	},
12946	{
12947		"samr_ChangePasswordUser2",
12948		sizeof(struct samr_ChangePasswordUser2),
12949		(ndr_push_flags_fn_t) ndr_push_samr_ChangePasswordUser2,
12950		(ndr_pull_flags_fn_t) ndr_pull_samr_ChangePasswordUser2,
12951		(ndr_print_function_t) ndr_print_samr_ChangePasswordUser2,
12952		false,
12953	},
12954	{
12955		"samr_GetDomPwInfo",
12956		sizeof(struct samr_GetDomPwInfo),
12957		(ndr_push_flags_fn_t) ndr_push_samr_GetDomPwInfo,
12958		(ndr_pull_flags_fn_t) ndr_pull_samr_GetDomPwInfo,
12959		(ndr_print_function_t) ndr_print_samr_GetDomPwInfo,
12960		false,
12961	},
12962	{
12963		"samr_Connect2",
12964		sizeof(struct samr_Connect2),
12965		(ndr_push_flags_fn_t) ndr_push_samr_Connect2,
12966		(ndr_pull_flags_fn_t) ndr_pull_samr_Connect2,
12967		(ndr_print_function_t) ndr_print_samr_Connect2,
12968		false,
12969	},
12970	{
12971		"samr_SetUserInfo2",
12972		sizeof(struct samr_SetUserInfo2),
12973		(ndr_push_flags_fn_t) ndr_push_samr_SetUserInfo2,
12974		(ndr_pull_flags_fn_t) ndr_pull_samr_SetUserInfo2,
12975		(ndr_print_function_t) ndr_print_samr_SetUserInfo2,
12976		false,
12977	},
12978	{
12979		"samr_SetBootKeyInformation",
12980		sizeof(struct samr_SetBootKeyInformation),
12981		(ndr_push_flags_fn_t) ndr_push_samr_SetBootKeyInformation,
12982		(ndr_pull_flags_fn_t) ndr_pull_samr_SetBootKeyInformation,
12983		(ndr_print_function_t) ndr_print_samr_SetBootKeyInformation,
12984		false,
12985	},
12986	{
12987		"samr_GetBootKeyInformation",
12988		sizeof(struct samr_GetBootKeyInformation),
12989		(ndr_push_flags_fn_t) ndr_push_samr_GetBootKeyInformation,
12990		(ndr_pull_flags_fn_t) ndr_pull_samr_GetBootKeyInformation,
12991		(ndr_print_function_t) ndr_print_samr_GetBootKeyInformation,
12992		false,
12993	},
12994	{
12995		"samr_Connect3",
12996		sizeof(struct samr_Connect3),
12997		(ndr_push_flags_fn_t) ndr_push_samr_Connect3,
12998		(ndr_pull_flags_fn_t) ndr_pull_samr_Connect3,
12999		(ndr_print_function_t) ndr_print_samr_Connect3,
13000		false,
13001	},
13002	{
13003		"samr_Connect4",
13004		sizeof(struct samr_Connect4),
13005		(ndr_push_flags_fn_t) ndr_push_samr_Connect4,
13006		(ndr_pull_flags_fn_t) ndr_pull_samr_Connect4,
13007		(ndr_print_function_t) ndr_print_samr_Connect4,
13008		false,
13009	},
13010	{
13011		"samr_ChangePasswordUser3",
13012		sizeof(struct samr_ChangePasswordUser3),
13013		(ndr_push_flags_fn_t) ndr_push_samr_ChangePasswordUser3,
13014		(ndr_pull_flags_fn_t) ndr_pull_samr_ChangePasswordUser3,
13015		(ndr_print_function_t) ndr_print_samr_ChangePasswordUser3,
13016		false,
13017	},
13018	{
13019		"samr_Connect5",
13020		sizeof(struct samr_Connect5),
13021		(ndr_push_flags_fn_t) ndr_push_samr_Connect5,
13022		(ndr_pull_flags_fn_t) ndr_pull_samr_Connect5,
13023		(ndr_print_function_t) ndr_print_samr_Connect5,
13024		false,
13025	},
13026	{
13027		"samr_RidToSid",
13028		sizeof(struct samr_RidToSid),
13029		(ndr_push_flags_fn_t) ndr_push_samr_RidToSid,
13030		(ndr_pull_flags_fn_t) ndr_pull_samr_RidToSid,
13031		(ndr_print_function_t) ndr_print_samr_RidToSid,
13032		false,
13033	},
13034	{
13035		"samr_SetDsrmPassword",
13036		sizeof(struct samr_SetDsrmPassword),
13037		(ndr_push_flags_fn_t) ndr_push_samr_SetDsrmPassword,
13038		(ndr_pull_flags_fn_t) ndr_pull_samr_SetDsrmPassword,
13039		(ndr_print_function_t) ndr_print_samr_SetDsrmPassword,
13040		false,
13041	},
13042	{
13043		"samr_ValidatePassword",
13044		sizeof(struct samr_ValidatePassword),
13045		(ndr_push_flags_fn_t) ndr_push_samr_ValidatePassword,
13046		(ndr_pull_flags_fn_t) ndr_pull_samr_ValidatePassword,
13047		(ndr_print_function_t) ndr_print_samr_ValidatePassword,
13048		false,
13049	},
13050	{ NULL, 0, NULL, NULL, NULL, false }
13051};
13052
13053static const char * const samr_endpoint_strings[] = {
13054	"ncacn_np:[\\pipe\\samr]",
13055	"ncacn_ip_tcp:",
13056	"ncalrpc:",
13057};
13058
13059static const struct ndr_interface_string_array samr_endpoints = {
13060	.count	= 3,
13061	.names	= samr_endpoint_strings
13062};
13063
13064static const char * const samr_authservice_strings[] = {
13065	"host",
13066};
13067
13068static const struct ndr_interface_string_array samr_authservices = {
13069	.count	= 1,
13070	.names	= samr_authservice_strings
13071};
13072
13073
13074const struct ndr_interface_table ndr_table_samr = {
13075	.name		= "samr",
13076	.syntax_id	= {
13077		{0x12345778,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xac}},
13078		NDR_SAMR_VERSION
13079	},
13080	.helpstring	= NDR_SAMR_HELPSTRING,
13081	.num_calls	= 68,
13082	.calls		= samr_calls,
13083	.endpoints	= &samr_endpoints,
13084	.authservices	= &samr_authservices
13085};
13086
13087