re-run "make idl" after adding idl for idl for Primary:Kerberos-Newer-Keys
[kai/samba-autobuild/.git] / source / librpc / gen_ndr / ndr_samr.c
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_samr_AcctFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
10 {
11         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12         return NDR_ERR_SUCCESS;
13 }
14
15 _PUBLIC_ enum ndr_err_code ndr_pull_samr_AcctFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16 {
17         uint32_t v;
18         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19         *r = v;
20         return NDR_ERR_SUCCESS;
21 }
22
23 _PUBLIC_ void ndr_print_samr_AcctFlags(struct ndr_print *ndr, const char *name, uint32_t r)
24 {
25         ndr_print_uint32(ndr, name, r);
26         ndr->depth++;
27         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_DISABLED", ACB_DISABLED, r);
28         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_HOMDIRREQ", ACB_HOMDIRREQ, r);
29         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_PWNOTREQ", ACB_PWNOTREQ, r);
30         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_TEMPDUP", ACB_TEMPDUP, r);
31         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_NORMAL", ACB_NORMAL, r);
32         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_MNS", ACB_MNS, r);
33         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_DOMTRUST", ACB_DOMTRUST, r);
34         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_WSTRUST", ACB_WSTRUST, r);
35         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_SVRTRUST", ACB_SVRTRUST, r);
36         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_PWNOEXP", ACB_PWNOEXP, r);
37         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_AUTOLOCK", ACB_AUTOLOCK, r);
38         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_ENC_TXT_PWD_ALLOWED", ACB_ENC_TXT_PWD_ALLOWED, r);
39         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_SMARTCARD_REQUIRED", ACB_SMARTCARD_REQUIRED, r);
40         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_TRUSTED_FOR_DELEGATION", ACB_TRUSTED_FOR_DELEGATION, r);
41         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_NOT_DELEGATED", ACB_NOT_DELEGATED, r);
42         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_USE_DES_KEY_ONLY", ACB_USE_DES_KEY_ONLY, r);
43         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_DONT_REQUIRE_PREAUTH", ACB_DONT_REQUIRE_PREAUTH, r);
44         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_PW_EXPIRED", ACB_PW_EXPIRED, r);
45         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ACB_NO_AUTH_DATA_REQD", ACB_NO_AUTH_DATA_REQD, r);
46         ndr->depth--;
47 }
48
49 static enum ndr_err_code ndr_push_samr_ConnectAccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
50 {
51         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
52         return NDR_ERR_SUCCESS;
53 }
54
55 static enum ndr_err_code ndr_pull_samr_ConnectAccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
56 {
57         uint32_t v;
58         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
59         *r = v;
60         return NDR_ERR_SUCCESS;
61 }
62
63 _PUBLIC_ void ndr_print_samr_ConnectAccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
64 {
65         ndr_print_uint32(ndr, name, r);
66         ndr->depth++;
67         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ACCESS_CONNECT_TO_SERVER", SAMR_ACCESS_CONNECT_TO_SERVER, r);
68         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ACCESS_SHUTDOWN_SERVER", SAMR_ACCESS_SHUTDOWN_SERVER, r);
69         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ACCESS_INITIALIZE_SERVER", SAMR_ACCESS_INITIALIZE_SERVER, r);
70         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ACCESS_CREATE_DOMAIN", SAMR_ACCESS_CREATE_DOMAIN, r);
71         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ACCESS_ENUM_DOMAINS", SAMR_ACCESS_ENUM_DOMAINS, r);
72         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ACCESS_OPEN_DOMAIN", SAMR_ACCESS_OPEN_DOMAIN, r);
73         ndr->depth--;
74 }
75
76 static enum ndr_err_code ndr_push_samr_UserAccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
77 {
78         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
79         return NDR_ERR_SUCCESS;
80 }
81
82 static enum ndr_err_code ndr_pull_samr_UserAccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
83 {
84         uint32_t v;
85         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
86         *r = v;
87         return NDR_ERR_SUCCESS;
88 }
89
90 _PUBLIC_ void ndr_print_samr_UserAccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
91 {
92         ndr_print_uint32(ndr, name, r);
93         ndr->depth++;
94         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_NAME_ETC", SAMR_USER_ACCESS_GET_NAME_ETC, r);
95         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_LOCALE", SAMR_USER_ACCESS_GET_LOCALE, r);
96         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_SET_LOC_COM", SAMR_USER_ACCESS_SET_LOC_COM, r);
97         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_LOGONINFO", SAMR_USER_ACCESS_GET_LOGONINFO, r);
98         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_ATTRIBUTES", SAMR_USER_ACCESS_GET_ATTRIBUTES, r);
99         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_SET_ATTRIBUTES", SAMR_USER_ACCESS_SET_ATTRIBUTES, r);
100         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_CHANGE_PASSWORD", SAMR_USER_ACCESS_CHANGE_PASSWORD, r);
101         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_SET_PASSWORD", SAMR_USER_ACCESS_SET_PASSWORD, r);
102         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_GROUPS", SAMR_USER_ACCESS_GET_GROUPS, r);
103         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP", SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP, r);
104         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP", SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP, r);
105         ndr->depth--;
106 }
107
108 static enum ndr_err_code ndr_push_samr_DomainAccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
109 {
110         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
111         return NDR_ERR_SUCCESS;
112 }
113
114 static enum ndr_err_code ndr_pull_samr_DomainAccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
115 {
116         uint32_t v;
117         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
118         *r = v;
119         return NDR_ERR_SUCCESS;
120 }
121
122 _PUBLIC_ void ndr_print_samr_DomainAccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
123 {
124         ndr_print_uint32(ndr, name, r);
125         ndr->depth++;
126         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1", SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1, r);
127         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_SET_INFO_1", SAMR_DOMAIN_ACCESS_SET_INFO_1, r);
128         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2", SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2, r);
129         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_SET_INFO_2", SAMR_DOMAIN_ACCESS_SET_INFO_2, r);
130         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_CREATE_USER", SAMR_DOMAIN_ACCESS_CREATE_USER, r);
131         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_CREATE_GROUP", SAMR_DOMAIN_ACCESS_CREATE_GROUP, r);
132         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_CREATE_ALIAS", SAMR_DOMAIN_ACCESS_CREATE_ALIAS, r);
133         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS", SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS, r);
134         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS", SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS, r);
135         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT", SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT, r);
136         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_DOMAIN_ACCESS_SET_INFO_3", SAMR_DOMAIN_ACCESS_SET_INFO_3, r);
137         ndr->depth--;
138 }
139
140 static enum ndr_err_code ndr_push_samr_GroupAccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
141 {
142         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
143         return NDR_ERR_SUCCESS;
144 }
145
146 static enum ndr_err_code ndr_pull_samr_GroupAccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
147 {
148         uint32_t v;
149         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
150         *r = v;
151         return NDR_ERR_SUCCESS;
152 }
153
154 _PUBLIC_ void ndr_print_samr_GroupAccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
155 {
156         ndr_print_uint32(ndr, name, r);
157         ndr->depth++;
158         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_GROUP_ACCESS_LOOKUP_INFO", SAMR_GROUP_ACCESS_LOOKUP_INFO, r);
159         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_GROUP_ACCESS_SET_INFO", SAMR_GROUP_ACCESS_SET_INFO, r);
160         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_GROUP_ACCESS_ADD_MEMBER", SAMR_GROUP_ACCESS_ADD_MEMBER, r);
161         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_GROUP_ACCESS_REMOVE_MEMBER", SAMR_GROUP_ACCESS_REMOVE_MEMBER, r);
162         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_GROUP_ACCESS_GET_MEMBERS", SAMR_GROUP_ACCESS_GET_MEMBERS, r);
163         ndr->depth--;
164 }
165
166 static enum ndr_err_code ndr_push_samr_AliasAccessMask(struct ndr_push *ndr, int ndr_flags, uint32_t r)
167 {
168         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
169         return NDR_ERR_SUCCESS;
170 }
171
172 static enum ndr_err_code ndr_pull_samr_AliasAccessMask(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
173 {
174         uint32_t v;
175         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
176         *r = v;
177         return NDR_ERR_SUCCESS;
178 }
179
180 _PUBLIC_ void ndr_print_samr_AliasAccessMask(struct ndr_print *ndr, const char *name, uint32_t r)
181 {
182         ndr_print_uint32(ndr, name, r);
183         ndr->depth++;
184         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_ADD_MEMBER", SAMR_ALIAS_ACCESS_ADD_MEMBER, r);
185         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_REMOVE_MEMBER", SAMR_ALIAS_ACCESS_REMOVE_MEMBER, r);
186         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_GET_MEMBERS", SAMR_ALIAS_ACCESS_GET_MEMBERS, r);
187         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_LOOKUP_INFO", SAMR_ALIAS_ACCESS_LOOKUP_INFO, r);
188         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_ALIAS_ACCESS_SET_INFO", SAMR_ALIAS_ACCESS_SET_INFO, r);
189         ndr->depth--;
190 }
191
192 static enum ndr_err_code ndr_push_samr_SamEntry(struct ndr_push *ndr, int ndr_flags, const struct samr_SamEntry *r)
193 {
194         if (ndr_flags & NDR_SCALARS) {
195                 NDR_CHECK(ndr_push_align(ndr, 4));
196                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->idx));
197                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->name));
198         }
199         if (ndr_flags & NDR_BUFFERS) {
200                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->name));
201         }
202         return NDR_ERR_SUCCESS;
203 }
204
205 static enum ndr_err_code ndr_pull_samr_SamEntry(struct ndr_pull *ndr, int ndr_flags, struct samr_SamEntry *r)
206 {
207         if (ndr_flags & NDR_SCALARS) {
208                 NDR_CHECK(ndr_pull_align(ndr, 4));
209                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->idx));
210                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->name));
211         }
212         if (ndr_flags & NDR_BUFFERS) {
213                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->name));
214         }
215         return NDR_ERR_SUCCESS;
216 }
217
218 _PUBLIC_ void ndr_print_samr_SamEntry(struct ndr_print *ndr, const char *name, const struct samr_SamEntry *r)
219 {
220         ndr_print_struct(ndr, name, "samr_SamEntry");
221         ndr->depth++;
222         ndr_print_uint32(ndr, "idx", r->idx);
223         ndr_print_lsa_String(ndr, "name", &r->name);
224         ndr->depth--;
225 }
226
227 static enum ndr_err_code ndr_push_samr_SamArray(struct ndr_push *ndr, int ndr_flags, const struct samr_SamArray *r)
228 {
229         uint32_t cntr_entries_1;
230         if (ndr_flags & NDR_SCALARS) {
231                 NDR_CHECK(ndr_push_align(ndr, 4));
232                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
233                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
234         }
235         if (ndr_flags & NDR_BUFFERS) {
236                 if (r->entries) {
237                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
238                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
239                                 NDR_CHECK(ndr_push_samr_SamEntry(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
240                         }
241                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
242                                 NDR_CHECK(ndr_push_samr_SamEntry(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
243                         }
244                 }
245         }
246         return NDR_ERR_SUCCESS;
247 }
248
249 static enum ndr_err_code ndr_pull_samr_SamArray(struct ndr_pull *ndr, int ndr_flags, struct samr_SamArray *r)
250 {
251         uint32_t _ptr_entries;
252         uint32_t cntr_entries_1;
253         TALLOC_CTX *_mem_save_entries_0;
254         TALLOC_CTX *_mem_save_entries_1;
255         if (ndr_flags & NDR_SCALARS) {
256                 NDR_CHECK(ndr_pull_align(ndr, 4));
257                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
258                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
259                 if (_ptr_entries) {
260                         NDR_PULL_ALLOC(ndr, r->entries);
261                 } else {
262                         r->entries = NULL;
263                 }
264         }
265         if (ndr_flags & NDR_BUFFERS) {
266                 if (r->entries) {
267                         _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
268                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
269                         NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
270                         NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
271                         _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
272                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
273                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
274                                 NDR_CHECK(ndr_pull_samr_SamEntry(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
275                         }
276                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
277                                 NDR_CHECK(ndr_pull_samr_SamEntry(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
278                         }
279                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
280                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
281                 }
282                 if (r->entries) {
283                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
284                 }
285         }
286         return NDR_ERR_SUCCESS;
287 }
288
289 _PUBLIC_ void ndr_print_samr_SamArray(struct ndr_print *ndr, const char *name, const struct samr_SamArray *r)
290 {
291         uint32_t cntr_entries_1;
292         ndr_print_struct(ndr, name, "samr_SamArray");
293         ndr->depth++;
294         ndr_print_uint32(ndr, "count", r->count);
295         ndr_print_ptr(ndr, "entries", r->entries);
296         ndr->depth++;
297         if (r->entries) {
298                 ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
299                 ndr->depth++;
300                 for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
301                         char *idx_1=NULL;
302                         if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
303                                 ndr_print_samr_SamEntry(ndr, "entries", &r->entries[cntr_entries_1]);
304                                 free(idx_1);
305                         }
306                 }
307                 ndr->depth--;
308         }
309         ndr->depth--;
310         ndr->depth--;
311 }
312
313 static enum ndr_err_code ndr_push_samr_Role(struct ndr_push *ndr, int ndr_flags, enum samr_Role r)
314 {
315         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
316         return NDR_ERR_SUCCESS;
317 }
318
319 static enum ndr_err_code ndr_pull_samr_Role(struct ndr_pull *ndr, int ndr_flags, enum samr_Role *r)
320 {
321         uint32_t v;
322         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
323         *r = v;
324         return NDR_ERR_SUCCESS;
325 }
326
327 _PUBLIC_ void ndr_print_samr_Role(struct ndr_print *ndr, const char *name, enum samr_Role r)
328 {
329         const char *val = NULL;
330
331         switch (r) {
332                 case SAMR_ROLE_STANDALONE: val = "SAMR_ROLE_STANDALONE"; break;
333                 case SAMR_ROLE_DOMAIN_MEMBER: val = "SAMR_ROLE_DOMAIN_MEMBER"; break;
334                 case SAMR_ROLE_DOMAIN_BDC: val = "SAMR_ROLE_DOMAIN_BDC"; break;
335                 case SAMR_ROLE_DOMAIN_PDC: val = "SAMR_ROLE_DOMAIN_PDC"; break;
336         }
337         ndr_print_enum(ndr, name, "ENUM", val, r);
338 }
339
340 _PUBLIC_ enum ndr_err_code ndr_push_samr_PasswordProperties(struct ndr_push *ndr, int ndr_flags, uint32_t r)
341 {
342         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
343         return NDR_ERR_SUCCESS;
344 }
345
346 _PUBLIC_ enum ndr_err_code ndr_pull_samr_PasswordProperties(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
347 {
348         uint32_t v;
349         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
350         *r = v;
351         return NDR_ERR_SUCCESS;
352 }
353
354 _PUBLIC_ void ndr_print_samr_PasswordProperties(struct ndr_print *ndr, const char *name, uint32_t r)
355 {
356         ndr_print_uint32(ndr, name, r);
357         ndr->depth++;
358         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DOMAIN_PASSWORD_COMPLEX", DOMAIN_PASSWORD_COMPLEX, r);
359         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DOMAIN_PASSWORD_NO_ANON_CHANGE", DOMAIN_PASSWORD_NO_ANON_CHANGE, r);
360         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DOMAIN_PASSWORD_NO_CLEAR_CHANGE", DOMAIN_PASSWORD_NO_CLEAR_CHANGE, r);
361         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DOMAIN_PASSWORD_LOCKOUT_ADMINS", DOMAIN_PASSWORD_LOCKOUT_ADMINS, r);
362         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DOMAIN_PASSWORD_STORE_CLEARTEXT", DOMAIN_PASSWORD_STORE_CLEARTEXT, r);
363         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DOMAIN_REFUSE_PASSWORD_CHANGE", DOMAIN_REFUSE_PASSWORD_CHANGE, r);
364         ndr->depth--;
365 }
366
367 static enum ndr_err_code ndr_push_samr_DomInfo1(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo1 *r)
368 {
369         if (ndr_flags & NDR_SCALARS) {
370                 NDR_CHECK(ndr_push_align(ndr, 4));
371                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
372                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
373                 NDR_CHECK(ndr_push_samr_PasswordProperties(ndr, NDR_SCALARS, r->password_properties));
374                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
375                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
376         }
377         if (ndr_flags & NDR_BUFFERS) {
378         }
379         return NDR_ERR_SUCCESS;
380 }
381
382 static enum ndr_err_code ndr_pull_samr_DomInfo1(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo1 *r)
383 {
384         if (ndr_flags & NDR_SCALARS) {
385                 NDR_CHECK(ndr_pull_align(ndr, 4));
386                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
387                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
388                 NDR_CHECK(ndr_pull_samr_PasswordProperties(ndr, NDR_SCALARS, &r->password_properties));
389                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
390                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
391         }
392         if (ndr_flags & NDR_BUFFERS) {
393         }
394         return NDR_ERR_SUCCESS;
395 }
396
397 _PUBLIC_ void ndr_print_samr_DomInfo1(struct ndr_print *ndr, const char *name, const struct samr_DomInfo1 *r)
398 {
399         ndr_print_struct(ndr, name, "samr_DomInfo1");
400         ndr->depth++;
401         ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
402         ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
403         ndr_print_samr_PasswordProperties(ndr, "password_properties", r->password_properties);
404         ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
405         ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
406         ndr->depth--;
407 }
408
409 static enum ndr_err_code ndr_push_samr_DomInfo2(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo2 *r)
410 {
411         if (ndr_flags & NDR_SCALARS) {
412                 NDR_CHECK(ndr_push_align(ndr, 4));
413                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_logoff_time));
414                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
415                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
416                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary));
417                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
418                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
419                 NDR_CHECK(ndr_push_samr_Role(ndr, NDR_SCALARS, r->role));
420                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
421                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_users));
422                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_groups));
423                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_aliases));
424         }
425         if (ndr_flags & NDR_BUFFERS) {
426                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
427                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
428                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary));
429         }
430         return NDR_ERR_SUCCESS;
431 }
432
433 static enum ndr_err_code ndr_pull_samr_DomInfo2(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo2 *r)
434 {
435         if (ndr_flags & NDR_SCALARS) {
436                 NDR_CHECK(ndr_pull_align(ndr, 4));
437                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_logoff_time));
438                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
439                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
440                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary));
441                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
442                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
443                 NDR_CHECK(ndr_pull_samr_Role(ndr, NDR_SCALARS, &r->role));
444                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
445                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_users));
446                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_groups));
447                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_aliases));
448         }
449         if (ndr_flags & NDR_BUFFERS) {
450                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
451                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
452                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary));
453         }
454         return NDR_ERR_SUCCESS;
455 }
456
457 _PUBLIC_ void ndr_print_samr_DomInfo2(struct ndr_print *ndr, const char *name, const struct samr_DomInfo2 *r)
458 {
459         ndr_print_struct(ndr, name, "samr_DomInfo2");
460         ndr->depth++;
461         ndr_print_NTTIME(ndr, "force_logoff_time", r->force_logoff_time);
462         ndr_print_lsa_String(ndr, "comment", &r->comment);
463         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
464         ndr_print_lsa_String(ndr, "primary", &r->primary);
465         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
466         ndr_print_uint32(ndr, "unknown2", r->unknown2);
467         ndr_print_samr_Role(ndr, "role", r->role);
468         ndr_print_uint32(ndr, "unknown3", r->unknown3);
469         ndr_print_uint32(ndr, "num_users", r->num_users);
470         ndr_print_uint32(ndr, "num_groups", r->num_groups);
471         ndr_print_uint32(ndr, "num_aliases", r->num_aliases);
472         ndr->depth--;
473 }
474
475 static enum ndr_err_code ndr_push_samr_DomInfo3(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo3 *r)
476 {
477         if (ndr_flags & NDR_SCALARS) {
478                 NDR_CHECK(ndr_push_align(ndr, 4));
479                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_logoff_time));
480         }
481         if (ndr_flags & NDR_BUFFERS) {
482         }
483         return NDR_ERR_SUCCESS;
484 }
485
486 static enum ndr_err_code ndr_pull_samr_DomInfo3(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo3 *r)
487 {
488         if (ndr_flags & NDR_SCALARS) {
489                 NDR_CHECK(ndr_pull_align(ndr, 4));
490                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_logoff_time));
491         }
492         if (ndr_flags & NDR_BUFFERS) {
493         }
494         return NDR_ERR_SUCCESS;
495 }
496
497 _PUBLIC_ void ndr_print_samr_DomInfo3(struct ndr_print *ndr, const char *name, const struct samr_DomInfo3 *r)
498 {
499         ndr_print_struct(ndr, name, "samr_DomInfo3");
500         ndr->depth++;
501         ndr_print_NTTIME(ndr, "force_logoff_time", r->force_logoff_time);
502         ndr->depth--;
503 }
504
505 static enum ndr_err_code ndr_push_samr_DomInfo4(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo4 *r)
506 {
507         if (ndr_flags & NDR_SCALARS) {
508                 NDR_CHECK(ndr_push_align(ndr, 4));
509                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
510         }
511         if (ndr_flags & NDR_BUFFERS) {
512                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
513         }
514         return NDR_ERR_SUCCESS;
515 }
516
517 static enum ndr_err_code ndr_pull_samr_DomInfo4(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo4 *r)
518 {
519         if (ndr_flags & NDR_SCALARS) {
520                 NDR_CHECK(ndr_pull_align(ndr, 4));
521                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
522         }
523         if (ndr_flags & NDR_BUFFERS) {
524                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
525         }
526         return NDR_ERR_SUCCESS;
527 }
528
529 _PUBLIC_ void ndr_print_samr_DomInfo4(struct ndr_print *ndr, const char *name, const struct samr_DomInfo4 *r)
530 {
531         ndr_print_struct(ndr, name, "samr_DomInfo4");
532         ndr->depth++;
533         ndr_print_lsa_String(ndr, "comment", &r->comment);
534         ndr->depth--;
535 }
536
537 static enum ndr_err_code ndr_push_samr_DomInfo5(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo5 *r)
538 {
539         if (ndr_flags & NDR_SCALARS) {
540                 NDR_CHECK(ndr_push_align(ndr, 4));
541                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
542         }
543         if (ndr_flags & NDR_BUFFERS) {
544                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
545         }
546         return NDR_ERR_SUCCESS;
547 }
548
549 static enum ndr_err_code ndr_pull_samr_DomInfo5(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo5 *r)
550 {
551         if (ndr_flags & NDR_SCALARS) {
552                 NDR_CHECK(ndr_pull_align(ndr, 4));
553                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
554         }
555         if (ndr_flags & NDR_BUFFERS) {
556                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
557         }
558         return NDR_ERR_SUCCESS;
559 }
560
561 _PUBLIC_ void ndr_print_samr_DomInfo5(struct ndr_print *ndr, const char *name, const struct samr_DomInfo5 *r)
562 {
563         ndr_print_struct(ndr, name, "samr_DomInfo5");
564         ndr->depth++;
565         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
566         ndr->depth--;
567 }
568
569 static enum ndr_err_code ndr_push_samr_DomInfo6(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo6 *r)
570 {
571         if (ndr_flags & NDR_SCALARS) {
572                 NDR_CHECK(ndr_push_align(ndr, 4));
573                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary));
574         }
575         if (ndr_flags & NDR_BUFFERS) {
576                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary));
577         }
578         return NDR_ERR_SUCCESS;
579 }
580
581 static enum ndr_err_code ndr_pull_samr_DomInfo6(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo6 *r)
582 {
583         if (ndr_flags & NDR_SCALARS) {
584                 NDR_CHECK(ndr_pull_align(ndr, 4));
585                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary));
586         }
587         if (ndr_flags & NDR_BUFFERS) {
588                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary));
589         }
590         return NDR_ERR_SUCCESS;
591 }
592
593 _PUBLIC_ void ndr_print_samr_DomInfo6(struct ndr_print *ndr, const char *name, const struct samr_DomInfo6 *r)
594 {
595         ndr_print_struct(ndr, name, "samr_DomInfo6");
596         ndr->depth++;
597         ndr_print_lsa_String(ndr, "primary", &r->primary);
598         ndr->depth--;
599 }
600
601 static enum ndr_err_code ndr_push_samr_DomInfo7(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo7 *r)
602 {
603         if (ndr_flags & NDR_SCALARS) {
604                 NDR_CHECK(ndr_push_align(ndr, 4));
605                 NDR_CHECK(ndr_push_samr_Role(ndr, NDR_SCALARS, r->role));
606         }
607         if (ndr_flags & NDR_BUFFERS) {
608         }
609         return NDR_ERR_SUCCESS;
610 }
611
612 static enum ndr_err_code ndr_pull_samr_DomInfo7(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo7 *r)
613 {
614         if (ndr_flags & NDR_SCALARS) {
615                 NDR_CHECK(ndr_pull_align(ndr, 4));
616                 NDR_CHECK(ndr_pull_samr_Role(ndr, NDR_SCALARS, &r->role));
617         }
618         if (ndr_flags & NDR_BUFFERS) {
619         }
620         return NDR_ERR_SUCCESS;
621 }
622
623 _PUBLIC_ void ndr_print_samr_DomInfo7(struct ndr_print *ndr, const char *name, const struct samr_DomInfo7 *r)
624 {
625         ndr_print_struct(ndr, name, "samr_DomInfo7");
626         ndr->depth++;
627         ndr_print_samr_Role(ndr, "role", r->role);
628         ndr->depth--;
629 }
630
631 static enum ndr_err_code ndr_push_samr_DomInfo8(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo8 *r)
632 {
633         if (ndr_flags & NDR_SCALARS) {
634                 NDR_CHECK(ndr_push_align(ndr, 8));
635                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->sequence_num));
636                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
637         }
638         if (ndr_flags & NDR_BUFFERS) {
639         }
640         return NDR_ERR_SUCCESS;
641 }
642
643 static enum ndr_err_code ndr_pull_samr_DomInfo8(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo8 *r)
644 {
645         if (ndr_flags & NDR_SCALARS) {
646                 NDR_CHECK(ndr_pull_align(ndr, 8));
647                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->sequence_num));
648                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
649         }
650         if (ndr_flags & NDR_BUFFERS) {
651         }
652         return NDR_ERR_SUCCESS;
653 }
654
655 _PUBLIC_ void ndr_print_samr_DomInfo8(struct ndr_print *ndr, const char *name, const struct samr_DomInfo8 *r)
656 {
657         ndr_print_struct(ndr, name, "samr_DomInfo8");
658         ndr->depth++;
659         ndr_print_hyper(ndr, "sequence_num", r->sequence_num);
660         ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
661         ndr->depth--;
662 }
663
664 static enum ndr_err_code ndr_push_samr_DomInfo9(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo9 *r)
665 {
666         if (ndr_flags & NDR_SCALARS) {
667                 NDR_CHECK(ndr_push_align(ndr, 4));
668                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
669         }
670         if (ndr_flags & NDR_BUFFERS) {
671         }
672         return NDR_ERR_SUCCESS;
673 }
674
675 static enum ndr_err_code ndr_pull_samr_DomInfo9(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo9 *r)
676 {
677         if (ndr_flags & NDR_SCALARS) {
678                 NDR_CHECK(ndr_pull_align(ndr, 4));
679                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
680         }
681         if (ndr_flags & NDR_BUFFERS) {
682         }
683         return NDR_ERR_SUCCESS;
684 }
685
686 _PUBLIC_ void ndr_print_samr_DomInfo9(struct ndr_print *ndr, const char *name, const struct samr_DomInfo9 *r)
687 {
688         ndr_print_struct(ndr, name, "samr_DomInfo9");
689         ndr->depth++;
690         ndr_print_uint32(ndr, "unknown", r->unknown);
691         ndr->depth--;
692 }
693
694 static enum ndr_err_code ndr_push_samr_DomInfo11(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo11 *r)
695 {
696         if (ndr_flags & NDR_SCALARS) {
697                 NDR_CHECK(ndr_push_align(ndr, 8));
698                 NDR_CHECK(ndr_push_samr_DomInfo2(ndr, NDR_SCALARS, &r->info2));
699                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->lockout_duration));
700                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->lockout_window));
701                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lockout_threshold));
702         }
703         if (ndr_flags & NDR_BUFFERS) {
704                 NDR_CHECK(ndr_push_samr_DomInfo2(ndr, NDR_BUFFERS, &r->info2));
705         }
706         return NDR_ERR_SUCCESS;
707 }
708
709 static enum ndr_err_code ndr_pull_samr_DomInfo11(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo11 *r)
710 {
711         if (ndr_flags & NDR_SCALARS) {
712                 NDR_CHECK(ndr_pull_align(ndr, 8));
713                 NDR_CHECK(ndr_pull_samr_DomInfo2(ndr, NDR_SCALARS, &r->info2));
714                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->lockout_duration));
715                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->lockout_window));
716                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lockout_threshold));
717         }
718         if (ndr_flags & NDR_BUFFERS) {
719                 NDR_CHECK(ndr_pull_samr_DomInfo2(ndr, NDR_BUFFERS, &r->info2));
720         }
721         return NDR_ERR_SUCCESS;
722 }
723
724 _PUBLIC_ void ndr_print_samr_DomInfo11(struct ndr_print *ndr, const char *name, const struct samr_DomInfo11 *r)
725 {
726         ndr_print_struct(ndr, name, "samr_DomInfo11");
727         ndr->depth++;
728         ndr_print_samr_DomInfo2(ndr, "info2", &r->info2);
729         ndr_print_hyper(ndr, "lockout_duration", r->lockout_duration);
730         ndr_print_hyper(ndr, "lockout_window", r->lockout_window);
731         ndr_print_uint16(ndr, "lockout_threshold", r->lockout_threshold);
732         ndr->depth--;
733 }
734
735 static enum ndr_err_code ndr_push_samr_DomInfo12(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo12 *r)
736 {
737         if (ndr_flags & NDR_SCALARS) {
738                 NDR_CHECK(ndr_push_align(ndr, 8));
739                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->lockout_duration));
740                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->lockout_window));
741                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lockout_threshold));
742         }
743         if (ndr_flags & NDR_BUFFERS) {
744         }
745         return NDR_ERR_SUCCESS;
746 }
747
748 static enum ndr_err_code ndr_pull_samr_DomInfo12(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo12 *r)
749 {
750         if (ndr_flags & NDR_SCALARS) {
751                 NDR_CHECK(ndr_pull_align(ndr, 8));
752                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->lockout_duration));
753                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->lockout_window));
754                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lockout_threshold));
755         }
756         if (ndr_flags & NDR_BUFFERS) {
757         }
758         return NDR_ERR_SUCCESS;
759 }
760
761 _PUBLIC_ void ndr_print_samr_DomInfo12(struct ndr_print *ndr, const char *name, const struct samr_DomInfo12 *r)
762 {
763         ndr_print_struct(ndr, name, "samr_DomInfo12");
764         ndr->depth++;
765         ndr_print_hyper(ndr, "lockout_duration", r->lockout_duration);
766         ndr_print_hyper(ndr, "lockout_window", r->lockout_window);
767         ndr_print_uint16(ndr, "lockout_threshold", r->lockout_threshold);
768         ndr->depth--;
769 }
770
771 static enum ndr_err_code ndr_push_samr_DomInfo13(struct ndr_push *ndr, int ndr_flags, const struct samr_DomInfo13 *r)
772 {
773         if (ndr_flags & NDR_SCALARS) {
774                 NDR_CHECK(ndr_push_align(ndr, 8));
775                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->sequence_num));
776                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
777                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
778                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
779         }
780         if (ndr_flags & NDR_BUFFERS) {
781         }
782         return NDR_ERR_SUCCESS;
783 }
784
785 static enum ndr_err_code ndr_pull_samr_DomInfo13(struct ndr_pull *ndr, int ndr_flags, struct samr_DomInfo13 *r)
786 {
787         if (ndr_flags & NDR_SCALARS) {
788                 NDR_CHECK(ndr_pull_align(ndr, 8));
789                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->sequence_num));
790                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
791                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
792                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
793         }
794         if (ndr_flags & NDR_BUFFERS) {
795         }
796         return NDR_ERR_SUCCESS;
797 }
798
799 _PUBLIC_ void ndr_print_samr_DomInfo13(struct ndr_print *ndr, const char *name, const struct samr_DomInfo13 *r)
800 {
801         ndr_print_struct(ndr, name, "samr_DomInfo13");
802         ndr->depth++;
803         ndr_print_hyper(ndr, "sequence_num", r->sequence_num);
804         ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
805         ndr_print_uint32(ndr, "unknown1", r->unknown1);
806         ndr_print_uint32(ndr, "unknown2", r->unknown2);
807         ndr->depth--;
808 }
809
810 static enum ndr_err_code ndr_push_samr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union samr_DomainInfo *r)
811 {
812         if (ndr_flags & NDR_SCALARS) {
813                 int level = ndr_push_get_switch_value(ndr, r);
814                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
815                 switch (level) {
816                         case 1: {
817                                 NDR_CHECK(ndr_push_samr_DomInfo1(ndr, NDR_SCALARS, &r->info1));
818                         break; }
819
820                         case 2: {
821                                 NDR_CHECK(ndr_push_samr_DomInfo2(ndr, NDR_SCALARS, &r->info2));
822                         break; }
823
824                         case 3: {
825                                 NDR_CHECK(ndr_push_samr_DomInfo3(ndr, NDR_SCALARS, &r->info3));
826                         break; }
827
828                         case 4: {
829                                 NDR_CHECK(ndr_push_samr_DomInfo4(ndr, NDR_SCALARS, &r->info4));
830                         break; }
831
832                         case 5: {
833                                 NDR_CHECK(ndr_push_samr_DomInfo5(ndr, NDR_SCALARS, &r->info5));
834                         break; }
835
836                         case 6: {
837                                 NDR_CHECK(ndr_push_samr_DomInfo6(ndr, NDR_SCALARS, &r->info6));
838                         break; }
839
840                         case 7: {
841                                 NDR_CHECK(ndr_push_samr_DomInfo7(ndr, NDR_SCALARS, &r->info7));
842                         break; }
843
844                         case 8: {
845                                 NDR_CHECK(ndr_push_samr_DomInfo8(ndr, NDR_SCALARS, &r->info8));
846                         break; }
847
848                         case 9: {
849                                 NDR_CHECK(ndr_push_samr_DomInfo9(ndr, NDR_SCALARS, &r->info9));
850                         break; }
851
852                         case 11: {
853                                 NDR_CHECK(ndr_push_samr_DomInfo11(ndr, NDR_SCALARS, &r->info11));
854                         break; }
855
856                         case 12: {
857                                 NDR_CHECK(ndr_push_samr_DomInfo12(ndr, NDR_SCALARS, &r->info12));
858                         break; }
859
860                         case 13: {
861                                 NDR_CHECK(ndr_push_samr_DomInfo13(ndr, NDR_SCALARS, &r->info13));
862                         break; }
863
864                         default:
865                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
866                 }
867         }
868         if (ndr_flags & NDR_BUFFERS) {
869                 int level = ndr_push_get_switch_value(ndr, r);
870                 switch (level) {
871                         case 1:
872                         break;
873
874                         case 2:
875                                 NDR_CHECK(ndr_push_samr_DomInfo2(ndr, NDR_BUFFERS, &r->info2));
876                         break;
877
878                         case 3:
879                         break;
880
881                         case 4:
882                                 NDR_CHECK(ndr_push_samr_DomInfo4(ndr, NDR_BUFFERS, &r->info4));
883                         break;
884
885                         case 5:
886                                 NDR_CHECK(ndr_push_samr_DomInfo5(ndr, NDR_BUFFERS, &r->info5));
887                         break;
888
889                         case 6:
890                                 NDR_CHECK(ndr_push_samr_DomInfo6(ndr, NDR_BUFFERS, &r->info6));
891                         break;
892
893                         case 7:
894                         break;
895
896                         case 8:
897                         break;
898
899                         case 9:
900                         break;
901
902                         case 11:
903                                 NDR_CHECK(ndr_push_samr_DomInfo11(ndr, NDR_BUFFERS, &r->info11));
904                         break;
905
906                         case 12:
907                         break;
908
909                         case 13:
910                         break;
911
912                         default:
913                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
914                 }
915         }
916         return NDR_ERR_SUCCESS;
917 }
918
919 static enum ndr_err_code ndr_pull_samr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union samr_DomainInfo *r)
920 {
921         int level;
922         uint16_t _level;
923         level = ndr_pull_get_switch_value(ndr, r);
924         if (ndr_flags & NDR_SCALARS) {
925                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
926                 if (_level != level) {
927                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
928                 }
929                 switch (level) {
930                         case 1: {
931                                 NDR_CHECK(ndr_pull_samr_DomInfo1(ndr, NDR_SCALARS, &r->info1));
932                         break; }
933
934                         case 2: {
935                                 NDR_CHECK(ndr_pull_samr_DomInfo2(ndr, NDR_SCALARS, &r->info2));
936                         break; }
937
938                         case 3: {
939                                 NDR_CHECK(ndr_pull_samr_DomInfo3(ndr, NDR_SCALARS, &r->info3));
940                         break; }
941
942                         case 4: {
943                                 NDR_CHECK(ndr_pull_samr_DomInfo4(ndr, NDR_SCALARS, &r->info4));
944                         break; }
945
946                         case 5: {
947                                 NDR_CHECK(ndr_pull_samr_DomInfo5(ndr, NDR_SCALARS, &r->info5));
948                         break; }
949
950                         case 6: {
951                                 NDR_CHECK(ndr_pull_samr_DomInfo6(ndr, NDR_SCALARS, &r->info6));
952                         break; }
953
954                         case 7: {
955                                 NDR_CHECK(ndr_pull_samr_DomInfo7(ndr, NDR_SCALARS, &r->info7));
956                         break; }
957
958                         case 8: {
959                                 NDR_CHECK(ndr_pull_samr_DomInfo8(ndr, NDR_SCALARS, &r->info8));
960                         break; }
961
962                         case 9: {
963                                 NDR_CHECK(ndr_pull_samr_DomInfo9(ndr, NDR_SCALARS, &r->info9));
964                         break; }
965
966                         case 11: {
967                                 NDR_CHECK(ndr_pull_samr_DomInfo11(ndr, NDR_SCALARS, &r->info11));
968                         break; }
969
970                         case 12: {
971                                 NDR_CHECK(ndr_pull_samr_DomInfo12(ndr, NDR_SCALARS, &r->info12));
972                         break; }
973
974                         case 13: {
975                                 NDR_CHECK(ndr_pull_samr_DomInfo13(ndr, NDR_SCALARS, &r->info13));
976                         break; }
977
978                         default:
979                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
980                 }
981         }
982         if (ndr_flags & NDR_BUFFERS) {
983                 switch (level) {
984                         case 1:
985                         break;
986
987                         case 2:
988                                 NDR_CHECK(ndr_pull_samr_DomInfo2(ndr, NDR_BUFFERS, &r->info2));
989                         break;
990
991                         case 3:
992                         break;
993
994                         case 4:
995                                 NDR_CHECK(ndr_pull_samr_DomInfo4(ndr, NDR_BUFFERS, &r->info4));
996                         break;
997
998                         case 5:
999                                 NDR_CHECK(ndr_pull_samr_DomInfo5(ndr, NDR_BUFFERS, &r->info5));
1000                         break;
1001
1002                         case 6:
1003                                 NDR_CHECK(ndr_pull_samr_DomInfo6(ndr, NDR_BUFFERS, &r->info6));
1004                         break;
1005
1006                         case 7:
1007                         break;
1008
1009                         case 8:
1010                         break;
1011
1012                         case 9:
1013                         break;
1014
1015                         case 11:
1016                                 NDR_CHECK(ndr_pull_samr_DomInfo11(ndr, NDR_BUFFERS, &r->info11));
1017                         break;
1018
1019                         case 12:
1020                         break;
1021
1022                         case 13:
1023                         break;
1024
1025                         default:
1026                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1027                 }
1028         }
1029         return NDR_ERR_SUCCESS;
1030 }
1031
1032 _PUBLIC_ void ndr_print_samr_DomainInfo(struct ndr_print *ndr, const char *name, const union samr_DomainInfo *r)
1033 {
1034         int level;
1035         level = ndr_print_get_switch_value(ndr, r);
1036         ndr_print_union(ndr, name, level, "samr_DomainInfo");
1037         switch (level) {
1038                 case 1:
1039                         ndr_print_samr_DomInfo1(ndr, "info1", &r->info1);
1040                 break;
1041
1042                 case 2:
1043                         ndr_print_samr_DomInfo2(ndr, "info2", &r->info2);
1044                 break;
1045
1046                 case 3:
1047                         ndr_print_samr_DomInfo3(ndr, "info3", &r->info3);
1048                 break;
1049
1050                 case 4:
1051                         ndr_print_samr_DomInfo4(ndr, "info4", &r->info4);
1052                 break;
1053
1054                 case 5:
1055                         ndr_print_samr_DomInfo5(ndr, "info5", &r->info5);
1056                 break;
1057
1058                 case 6:
1059                         ndr_print_samr_DomInfo6(ndr, "info6", &r->info6);
1060                 break;
1061
1062                 case 7:
1063                         ndr_print_samr_DomInfo7(ndr, "info7", &r->info7);
1064                 break;
1065
1066                 case 8:
1067                         ndr_print_samr_DomInfo8(ndr, "info8", &r->info8);
1068                 break;
1069
1070                 case 9:
1071                         ndr_print_samr_DomInfo9(ndr, "info9", &r->info9);
1072                 break;
1073
1074                 case 11:
1075                         ndr_print_samr_DomInfo11(ndr, "info11", &r->info11);
1076                 break;
1077
1078                 case 12:
1079                         ndr_print_samr_DomInfo12(ndr, "info12", &r->info12);
1080                 break;
1081
1082                 case 13:
1083                         ndr_print_samr_DomInfo13(ndr, "info13", &r->info13);
1084                 break;
1085
1086                 default:
1087                         ndr_print_bad_level(ndr, name, level);
1088         }
1089 }
1090
1091 static enum ndr_err_code ndr_push_samr_Ids(struct ndr_push *ndr, int ndr_flags, const struct samr_Ids *r)
1092 {
1093         uint32_t cntr_ids_1;
1094         if (ndr_flags & NDR_SCALARS) {
1095                 NDR_CHECK(ndr_push_align(ndr, 4));
1096                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
1097                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ids));
1098         }
1099         if (ndr_flags & NDR_BUFFERS) {
1100                 if (r->ids) {
1101                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
1102                         for (cntr_ids_1 = 0; cntr_ids_1 < r->count; cntr_ids_1++) {
1103                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ids[cntr_ids_1]));
1104                         }
1105                 }
1106         }
1107         return NDR_ERR_SUCCESS;
1108 }
1109
1110 static enum ndr_err_code ndr_pull_samr_Ids(struct ndr_pull *ndr, int ndr_flags, struct samr_Ids *r)
1111 {
1112         uint32_t _ptr_ids;
1113         uint32_t cntr_ids_1;
1114         TALLOC_CTX *_mem_save_ids_0;
1115         TALLOC_CTX *_mem_save_ids_1;
1116         if (ndr_flags & NDR_SCALARS) {
1117                 NDR_CHECK(ndr_pull_align(ndr, 4));
1118                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
1119                 if (r->count < 0 || r->count > 1024) {
1120                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1121                 }
1122                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ids));
1123                 if (_ptr_ids) {
1124                         NDR_PULL_ALLOC(ndr, r->ids);
1125                 } else {
1126                         r->ids = NULL;
1127                 }
1128         }
1129         if (ndr_flags & NDR_BUFFERS) {
1130                 if (r->ids) {
1131                         _mem_save_ids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1132                         NDR_PULL_SET_MEM_CTX(ndr, r->ids, 0);
1133                         NDR_CHECK(ndr_pull_array_size(ndr, &r->ids));
1134                         NDR_PULL_ALLOC_N(ndr, r->ids, ndr_get_array_size(ndr, &r->ids));
1135                         _mem_save_ids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1136                         NDR_PULL_SET_MEM_CTX(ndr, r->ids, 0);
1137                         for (cntr_ids_1 = 0; cntr_ids_1 < r->count; cntr_ids_1++) {
1138                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ids[cntr_ids_1]));
1139                         }
1140                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ids_1, 0);
1141                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ids_0, 0);
1142                 }
1143                 if (r->ids) {
1144                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->ids, r->count));
1145                 }
1146         }
1147         return NDR_ERR_SUCCESS;
1148 }
1149
1150 _PUBLIC_ void ndr_print_samr_Ids(struct ndr_print *ndr, const char *name, const struct samr_Ids *r)
1151 {
1152         uint32_t cntr_ids_1;
1153         ndr_print_struct(ndr, name, "samr_Ids");
1154         ndr->depth++;
1155         ndr_print_uint32(ndr, "count", r->count);
1156         ndr_print_ptr(ndr, "ids", r->ids);
1157         ndr->depth++;
1158         if (r->ids) {
1159                 ndr->print(ndr, "%s: ARRAY(%d)", "ids", (int)r->count);
1160                 ndr->depth++;
1161                 for (cntr_ids_1=0;cntr_ids_1<r->count;cntr_ids_1++) {
1162                         char *idx_1=NULL;
1163                         if (asprintf(&idx_1, "[%d]", cntr_ids_1) != -1) {
1164                                 ndr_print_uint32(ndr, "ids", r->ids[cntr_ids_1]);
1165                                 free(idx_1);
1166                         }
1167                 }
1168                 ndr->depth--;
1169         }
1170         ndr->depth--;
1171         ndr->depth--;
1172 }
1173
1174 _PUBLIC_ enum ndr_err_code ndr_push_samr_GroupAttrs(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1175 {
1176         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1177         return NDR_ERR_SUCCESS;
1178 }
1179
1180 _PUBLIC_ enum ndr_err_code ndr_pull_samr_GroupAttrs(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1181 {
1182         uint32_t v;
1183         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1184         *r = v;
1185         return NDR_ERR_SUCCESS;
1186 }
1187
1188 _PUBLIC_ void ndr_print_samr_GroupAttrs(struct ndr_print *ndr, const char *name, uint32_t r)
1189 {
1190         ndr_print_uint32(ndr, name, r);
1191         ndr->depth++;
1192         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SE_GROUP_MANDATORY", SE_GROUP_MANDATORY, r);
1193         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SE_GROUP_ENABLED_BY_DEFAULT", SE_GROUP_ENABLED_BY_DEFAULT, r);
1194         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SE_GROUP_ENABLED", SE_GROUP_ENABLED, r);
1195         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SE_GROUP_OWNER", SE_GROUP_OWNER, r);
1196         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SE_GROUP_USE_FOR_DENY_ONLY", SE_GROUP_USE_FOR_DENY_ONLY, r);
1197         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SE_GROUP_RESOURCE", SE_GROUP_RESOURCE, r);
1198         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SE_GROUP_LOGON_ID", SE_GROUP_LOGON_ID, r);
1199         ndr->depth--;
1200 }
1201
1202 static enum ndr_err_code ndr_push_samr_GroupInfoAll(struct ndr_push *ndr, int ndr_flags, const struct samr_GroupInfoAll *r)
1203 {
1204         if (ndr_flags & NDR_SCALARS) {
1205                 NDR_CHECK(ndr_push_align(ndr, 4));
1206                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->name));
1207                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1208                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_members));
1209                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
1210         }
1211         if (ndr_flags & NDR_BUFFERS) {
1212                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->name));
1213                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
1214         }
1215         return NDR_ERR_SUCCESS;
1216 }
1217
1218 static enum ndr_err_code ndr_pull_samr_GroupInfoAll(struct ndr_pull *ndr, int ndr_flags, struct samr_GroupInfoAll *r)
1219 {
1220         if (ndr_flags & NDR_SCALARS) {
1221                 NDR_CHECK(ndr_pull_align(ndr, 4));
1222                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->name));
1223                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1224                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_members));
1225                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
1226         }
1227         if (ndr_flags & NDR_BUFFERS) {
1228                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->name));
1229                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
1230         }
1231         return NDR_ERR_SUCCESS;
1232 }
1233
1234 _PUBLIC_ void ndr_print_samr_GroupInfoAll(struct ndr_print *ndr, const char *name, const struct samr_GroupInfoAll *r)
1235 {
1236         ndr_print_struct(ndr, name, "samr_GroupInfoAll");
1237         ndr->depth++;
1238         ndr_print_lsa_String(ndr, "name", &r->name);
1239         ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1240         ndr_print_uint32(ndr, "num_members", r->num_members);
1241         ndr_print_lsa_String(ndr, "description", &r->description);
1242         ndr->depth--;
1243 }
1244
1245 static enum ndr_err_code ndr_push_samr_GroupInfoAttributes(struct ndr_push *ndr, int ndr_flags, const struct samr_GroupInfoAttributes *r)
1246 {
1247         if (ndr_flags & NDR_SCALARS) {
1248                 NDR_CHECK(ndr_push_align(ndr, 4));
1249                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1250         }
1251         if (ndr_flags & NDR_BUFFERS) {
1252         }
1253         return NDR_ERR_SUCCESS;
1254 }
1255
1256 static enum ndr_err_code ndr_pull_samr_GroupInfoAttributes(struct ndr_pull *ndr, int ndr_flags, struct samr_GroupInfoAttributes *r)
1257 {
1258         if (ndr_flags & NDR_SCALARS) {
1259                 NDR_CHECK(ndr_pull_align(ndr, 4));
1260                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1261         }
1262         if (ndr_flags & NDR_BUFFERS) {
1263         }
1264         return NDR_ERR_SUCCESS;
1265 }
1266
1267 _PUBLIC_ void ndr_print_samr_GroupInfoAttributes(struct ndr_print *ndr, const char *name, const struct samr_GroupInfoAttributes *r)
1268 {
1269         ndr_print_struct(ndr, name, "samr_GroupInfoAttributes");
1270         ndr->depth++;
1271         ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1272         ndr->depth--;
1273 }
1274
1275 static enum ndr_err_code ndr_push_samr_GroupInfoEnum(struct ndr_push *ndr, int ndr_flags, enum samr_GroupInfoEnum r)
1276 {
1277         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
1278         return NDR_ERR_SUCCESS;
1279 }
1280
1281 static enum ndr_err_code ndr_pull_samr_GroupInfoEnum(struct ndr_pull *ndr, int ndr_flags, enum samr_GroupInfoEnum *r)
1282 {
1283         uint16_t v;
1284         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
1285         *r = v;
1286         return NDR_ERR_SUCCESS;
1287 }
1288
1289 _PUBLIC_ void ndr_print_samr_GroupInfoEnum(struct ndr_print *ndr, const char *name, enum samr_GroupInfoEnum r)
1290 {
1291         const char *val = NULL;
1292
1293         switch (r) {
1294                 case GROUPINFOALL: val = "GROUPINFOALL"; break;
1295                 case GROUPINFONAME: val = "GROUPINFONAME"; break;
1296                 case GROUPINFOATTRIBUTES: val = "GROUPINFOATTRIBUTES"; break;
1297                 case GROUPINFODESCRIPTION: val = "GROUPINFODESCRIPTION"; break;
1298                 case GROUPINFOALL2: val = "GROUPINFOALL2"; break;
1299         }
1300         ndr_print_enum(ndr, name, "ENUM", val, r);
1301 }
1302
1303 static enum ndr_err_code ndr_push_samr_GroupInfo(struct ndr_push *ndr, int ndr_flags, const union samr_GroupInfo *r)
1304 {
1305         if (ndr_flags & NDR_SCALARS) {
1306                 int level = ndr_push_get_switch_value(ndr, r);
1307                 NDR_CHECK(ndr_push_samr_GroupInfoEnum(ndr, NDR_SCALARS, level));
1308                 switch (level) {
1309                         case GROUPINFOALL: {
1310                                 NDR_CHECK(ndr_push_samr_GroupInfoAll(ndr, NDR_SCALARS, &r->all));
1311                         break; }
1312
1313                         case GROUPINFONAME: {
1314                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->name));
1315                         break; }
1316
1317                         case GROUPINFOATTRIBUTES: {
1318                                 NDR_CHECK(ndr_push_samr_GroupInfoAttributes(ndr, NDR_SCALARS, &r->attributes));
1319                         break; }
1320
1321                         case GROUPINFODESCRIPTION: {
1322                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
1323                         break; }
1324
1325                         case GROUPINFOALL2: {
1326                                 NDR_CHECK(ndr_push_samr_GroupInfoAll(ndr, NDR_SCALARS, &r->all2));
1327                         break; }
1328
1329                         default:
1330                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1331                 }
1332         }
1333         if (ndr_flags & NDR_BUFFERS) {
1334                 int level = ndr_push_get_switch_value(ndr, r);
1335                 switch (level) {
1336                         case GROUPINFOALL:
1337                                 NDR_CHECK(ndr_push_samr_GroupInfoAll(ndr, NDR_BUFFERS, &r->all));
1338                         break;
1339
1340                         case GROUPINFONAME:
1341                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->name));
1342                         break;
1343
1344                         case GROUPINFOATTRIBUTES:
1345                         break;
1346
1347                         case GROUPINFODESCRIPTION:
1348                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
1349                         break;
1350
1351                         case GROUPINFOALL2:
1352                                 NDR_CHECK(ndr_push_samr_GroupInfoAll(ndr, NDR_BUFFERS, &r->all2));
1353                         break;
1354
1355                         default:
1356                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1357                 }
1358         }
1359         return NDR_ERR_SUCCESS;
1360 }
1361
1362 static enum ndr_err_code ndr_pull_samr_GroupInfo(struct ndr_pull *ndr, int ndr_flags, union samr_GroupInfo *r)
1363 {
1364         int level;
1365         uint16_t _level;
1366         level = ndr_pull_get_switch_value(ndr, r);
1367         if (ndr_flags & NDR_SCALARS) {
1368                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1369                 if (_level != level) {
1370                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1371                 }
1372                 switch (level) {
1373                         case GROUPINFOALL: {
1374                                 NDR_CHECK(ndr_pull_samr_GroupInfoAll(ndr, NDR_SCALARS, &r->all));
1375                         break; }
1376
1377                         case GROUPINFONAME: {
1378                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->name));
1379                         break; }
1380
1381                         case GROUPINFOATTRIBUTES: {
1382                                 NDR_CHECK(ndr_pull_samr_GroupInfoAttributes(ndr, NDR_SCALARS, &r->attributes));
1383                         break; }
1384
1385                         case GROUPINFODESCRIPTION: {
1386                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
1387                         break; }
1388
1389                         case GROUPINFOALL2: {
1390                                 NDR_CHECK(ndr_pull_samr_GroupInfoAll(ndr, NDR_SCALARS, &r->all2));
1391                         break; }
1392
1393                         default:
1394                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1395                 }
1396         }
1397         if (ndr_flags & NDR_BUFFERS) {
1398                 switch (level) {
1399                         case GROUPINFOALL:
1400                                 NDR_CHECK(ndr_pull_samr_GroupInfoAll(ndr, NDR_BUFFERS, &r->all));
1401                         break;
1402
1403                         case GROUPINFONAME:
1404                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->name));
1405                         break;
1406
1407                         case GROUPINFOATTRIBUTES:
1408                         break;
1409
1410                         case GROUPINFODESCRIPTION:
1411                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
1412                         break;
1413
1414                         case GROUPINFOALL2:
1415                                 NDR_CHECK(ndr_pull_samr_GroupInfoAll(ndr, NDR_BUFFERS, &r->all2));
1416                         break;
1417
1418                         default:
1419                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1420                 }
1421         }
1422         return NDR_ERR_SUCCESS;
1423 }
1424
1425 _PUBLIC_ void ndr_print_samr_GroupInfo(struct ndr_print *ndr, const char *name, const union samr_GroupInfo *r)
1426 {
1427         int level;
1428         level = ndr_print_get_switch_value(ndr, r);
1429         ndr_print_union(ndr, name, level, "samr_GroupInfo");
1430         switch (level) {
1431                 case GROUPINFOALL:
1432                         ndr_print_samr_GroupInfoAll(ndr, "all", &r->all);
1433                 break;
1434
1435                 case GROUPINFONAME:
1436                         ndr_print_lsa_String(ndr, "name", &r->name);
1437                 break;
1438
1439                 case GROUPINFOATTRIBUTES:
1440                         ndr_print_samr_GroupInfoAttributes(ndr, "attributes", &r->attributes);
1441                 break;
1442
1443                 case GROUPINFODESCRIPTION:
1444                         ndr_print_lsa_String(ndr, "description", &r->description);
1445                 break;
1446
1447                 case GROUPINFOALL2:
1448                         ndr_print_samr_GroupInfoAll(ndr, "all2", &r->all2);
1449                 break;
1450
1451                 default:
1452                         ndr_print_bad_level(ndr, name, level);
1453         }
1454 }
1455
1456 static enum ndr_err_code ndr_push_samr_RidTypeArray(struct ndr_push *ndr, int ndr_flags, const struct samr_RidTypeArray *r)
1457 {
1458         uint32_t cntr_rids_1;
1459         uint32_t cntr_types_1;
1460         if (ndr_flags & NDR_SCALARS) {
1461                 NDR_CHECK(ndr_push_align(ndr, 4));
1462                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
1463                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
1464                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
1465         }
1466         if (ndr_flags & NDR_BUFFERS) {
1467                 if (r->rids) {
1468                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
1469                         for (cntr_rids_1 = 0; cntr_rids_1 < r->count; cntr_rids_1++) {
1470                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
1471                         }
1472                 }
1473                 if (r->types) {
1474                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
1475                         for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
1476                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->types[cntr_types_1]));
1477                         }
1478                 }
1479         }
1480         return NDR_ERR_SUCCESS;
1481 }
1482
1483 static enum ndr_err_code ndr_pull_samr_RidTypeArray(struct ndr_pull *ndr, int ndr_flags, struct samr_RidTypeArray *r)
1484 {
1485         uint32_t _ptr_rids;
1486         uint32_t cntr_rids_1;
1487         TALLOC_CTX *_mem_save_rids_0;
1488         TALLOC_CTX *_mem_save_rids_1;
1489         uint32_t _ptr_types;
1490         uint32_t cntr_types_1;
1491         TALLOC_CTX *_mem_save_types_0;
1492         TALLOC_CTX *_mem_save_types_1;
1493         if (ndr_flags & NDR_SCALARS) {
1494                 NDR_CHECK(ndr_pull_align(ndr, 4));
1495                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
1496                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
1497                 if (_ptr_rids) {
1498                         NDR_PULL_ALLOC(ndr, r->rids);
1499                 } else {
1500                         r->rids = NULL;
1501                 }
1502                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
1503                 if (_ptr_types) {
1504                         NDR_PULL_ALLOC(ndr, r->types);
1505                 } else {
1506                         r->types = NULL;
1507                 }
1508         }
1509         if (ndr_flags & NDR_BUFFERS) {
1510                 if (r->rids) {
1511                         _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1512                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
1513                         NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
1514                         NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
1515                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1516                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
1517                         for (cntr_rids_1 = 0; cntr_rids_1 < r->count; cntr_rids_1++) {
1518                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
1519                         }
1520                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
1521                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
1522                 }
1523                 if (r->types) {
1524                         _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
1525                         NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
1526                         NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
1527                         NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
1528                         _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
1529                         NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
1530                         for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
1531                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
1532                         }
1533                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
1534                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
1535                 }
1536                 if (r->rids) {
1537                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->count));
1538                 }
1539                 if (r->types) {
1540                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
1541                 }
1542         }
1543         return NDR_ERR_SUCCESS;
1544 }
1545
1546 _PUBLIC_ void ndr_print_samr_RidTypeArray(struct ndr_print *ndr, const char *name, const struct samr_RidTypeArray *r)
1547 {
1548         uint32_t cntr_rids_1;
1549         uint32_t cntr_types_1;
1550         ndr_print_struct(ndr, name, "samr_RidTypeArray");
1551         ndr->depth++;
1552         ndr_print_uint32(ndr, "count", r->count);
1553         ndr_print_ptr(ndr, "rids", r->rids);
1554         ndr->depth++;
1555         if (r->rids) {
1556                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->count);
1557                 ndr->depth++;
1558                 for (cntr_rids_1=0;cntr_rids_1<r->count;cntr_rids_1++) {
1559                         char *idx_1=NULL;
1560                         if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
1561                                 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
1562                                 free(idx_1);
1563                         }
1564                 }
1565                 ndr->depth--;
1566         }
1567         ndr->depth--;
1568         ndr_print_ptr(ndr, "types", r->types);
1569         ndr->depth++;
1570         if (r->types) {
1571                 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
1572                 ndr->depth++;
1573                 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
1574                         char *idx_1=NULL;
1575                         if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
1576                                 ndr_print_uint32(ndr, "types", r->types[cntr_types_1]);
1577                                 free(idx_1);
1578                         }
1579                 }
1580                 ndr->depth--;
1581         }
1582         ndr->depth--;
1583         ndr->depth--;
1584 }
1585
1586 static enum ndr_err_code ndr_push_samr_AliasInfoAll(struct ndr_push *ndr, int ndr_flags, const struct samr_AliasInfoAll *r)
1587 {
1588         if (ndr_flags & NDR_SCALARS) {
1589                 NDR_CHECK(ndr_push_align(ndr, 4));
1590                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->name));
1591                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_members));
1592                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
1593         }
1594         if (ndr_flags & NDR_BUFFERS) {
1595                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->name));
1596                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
1597         }
1598         return NDR_ERR_SUCCESS;
1599 }
1600
1601 static enum ndr_err_code ndr_pull_samr_AliasInfoAll(struct ndr_pull *ndr, int ndr_flags, struct samr_AliasInfoAll *r)
1602 {
1603         if (ndr_flags & NDR_SCALARS) {
1604                 NDR_CHECK(ndr_pull_align(ndr, 4));
1605                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->name));
1606                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_members));
1607                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
1608         }
1609         if (ndr_flags & NDR_BUFFERS) {
1610                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->name));
1611                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
1612         }
1613         return NDR_ERR_SUCCESS;
1614 }
1615
1616 _PUBLIC_ void ndr_print_samr_AliasInfoAll(struct ndr_print *ndr, const char *name, const struct samr_AliasInfoAll *r)
1617 {
1618         ndr_print_struct(ndr, name, "samr_AliasInfoAll");
1619         ndr->depth++;
1620         ndr_print_lsa_String(ndr, "name", &r->name);
1621         ndr_print_uint32(ndr, "num_members", r->num_members);
1622         ndr_print_lsa_String(ndr, "description", &r->description);
1623         ndr->depth--;
1624 }
1625
1626 static enum ndr_err_code ndr_push_samr_AliasInfoEnum(struct ndr_push *ndr, int ndr_flags, enum samr_AliasInfoEnum r)
1627 {
1628         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
1629         return NDR_ERR_SUCCESS;
1630 }
1631
1632 static enum ndr_err_code ndr_pull_samr_AliasInfoEnum(struct ndr_pull *ndr, int ndr_flags, enum samr_AliasInfoEnum *r)
1633 {
1634         uint16_t v;
1635         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
1636         *r = v;
1637         return NDR_ERR_SUCCESS;
1638 }
1639
1640 _PUBLIC_ void ndr_print_samr_AliasInfoEnum(struct ndr_print *ndr, const char *name, enum samr_AliasInfoEnum r)
1641 {
1642         const char *val = NULL;
1643
1644         switch (r) {
1645                 case ALIASINFOALL: val = "ALIASINFOALL"; break;
1646                 case ALIASINFONAME: val = "ALIASINFONAME"; break;
1647                 case ALIASINFODESCRIPTION: val = "ALIASINFODESCRIPTION"; break;
1648         }
1649         ndr_print_enum(ndr, name, "ENUM", val, r);
1650 }
1651
1652 static enum ndr_err_code ndr_push_samr_AliasInfo(struct ndr_push *ndr, int ndr_flags, const union samr_AliasInfo *r)
1653 {
1654         if (ndr_flags & NDR_SCALARS) {
1655                 int level = ndr_push_get_switch_value(ndr, r);
1656                 NDR_CHECK(ndr_push_samr_AliasInfoEnum(ndr, NDR_SCALARS, level));
1657                 switch (level) {
1658                         case ALIASINFOALL: {
1659                                 NDR_CHECK(ndr_push_samr_AliasInfoAll(ndr, NDR_SCALARS, &r->all));
1660                         break; }
1661
1662                         case ALIASINFONAME: {
1663                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->name));
1664                         break; }
1665
1666                         case ALIASINFODESCRIPTION: {
1667                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
1668                         break; }
1669
1670                         default:
1671                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1672                 }
1673         }
1674         if (ndr_flags & NDR_BUFFERS) {
1675                 int level = ndr_push_get_switch_value(ndr, r);
1676                 switch (level) {
1677                         case ALIASINFOALL:
1678                                 NDR_CHECK(ndr_push_samr_AliasInfoAll(ndr, NDR_BUFFERS, &r->all));
1679                         break;
1680
1681                         case ALIASINFONAME:
1682                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->name));
1683                         break;
1684
1685                         case ALIASINFODESCRIPTION:
1686                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
1687                         break;
1688
1689                         default:
1690                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1691                 }
1692         }
1693         return NDR_ERR_SUCCESS;
1694 }
1695
1696 static enum ndr_err_code ndr_pull_samr_AliasInfo(struct ndr_pull *ndr, int ndr_flags, union samr_AliasInfo *r)
1697 {
1698         int level;
1699         uint16_t _level;
1700         level = ndr_pull_get_switch_value(ndr, r);
1701         if (ndr_flags & NDR_SCALARS) {
1702                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1703                 if (_level != level) {
1704                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1705                 }
1706                 switch (level) {
1707                         case ALIASINFOALL: {
1708                                 NDR_CHECK(ndr_pull_samr_AliasInfoAll(ndr, NDR_SCALARS, &r->all));
1709                         break; }
1710
1711                         case ALIASINFONAME: {
1712                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->name));
1713                         break; }
1714
1715                         case ALIASINFODESCRIPTION: {
1716                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
1717                         break; }
1718
1719                         default:
1720                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1721                 }
1722         }
1723         if (ndr_flags & NDR_BUFFERS) {
1724                 switch (level) {
1725                         case ALIASINFOALL:
1726                                 NDR_CHECK(ndr_pull_samr_AliasInfoAll(ndr, NDR_BUFFERS, &r->all));
1727                         break;
1728
1729                         case ALIASINFONAME:
1730                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->name));
1731                         break;
1732
1733                         case ALIASINFODESCRIPTION:
1734                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
1735                         break;
1736
1737                         default:
1738                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1739                 }
1740         }
1741         return NDR_ERR_SUCCESS;
1742 }
1743
1744 _PUBLIC_ void ndr_print_samr_AliasInfo(struct ndr_print *ndr, const char *name, const union samr_AliasInfo *r)
1745 {
1746         int level;
1747         level = ndr_print_get_switch_value(ndr, r);
1748         ndr_print_union(ndr, name, level, "samr_AliasInfo");
1749         switch (level) {
1750                 case ALIASINFOALL:
1751                         ndr_print_samr_AliasInfoAll(ndr, "all", &r->all);
1752                 break;
1753
1754                 case ALIASINFONAME:
1755                         ndr_print_lsa_String(ndr, "name", &r->name);
1756                 break;
1757
1758                 case ALIASINFODESCRIPTION:
1759                         ndr_print_lsa_String(ndr, "description", &r->description);
1760                 break;
1761
1762                 default:
1763                         ndr_print_bad_level(ndr, name, level);
1764         }
1765 }
1766
1767 static enum ndr_err_code ndr_push_samr_UserInfo1(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo1 *r)
1768 {
1769         if (ndr_flags & NDR_SCALARS) {
1770                 NDR_CHECK(ndr_push_align(ndr, 4));
1771                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1772                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1773                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
1774                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
1775                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
1776         }
1777         if (ndr_flags & NDR_BUFFERS) {
1778                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1779                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1780                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
1781                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
1782         }
1783         return NDR_ERR_SUCCESS;
1784 }
1785
1786 static enum ndr_err_code ndr_pull_samr_UserInfo1(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo1 *r)
1787 {
1788         if (ndr_flags & NDR_SCALARS) {
1789                 NDR_CHECK(ndr_pull_align(ndr, 4));
1790                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1791                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1792                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1793                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
1794                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
1795         }
1796         if (ndr_flags & NDR_BUFFERS) {
1797                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1798                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1799                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
1800                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
1801         }
1802         return NDR_ERR_SUCCESS;
1803 }
1804
1805 _PUBLIC_ void ndr_print_samr_UserInfo1(struct ndr_print *ndr, const char *name, const struct samr_UserInfo1 *r)
1806 {
1807         ndr_print_struct(ndr, name, "samr_UserInfo1");
1808         ndr->depth++;
1809         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1810         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1811         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1812         ndr_print_lsa_String(ndr, "description", &r->description);
1813         ndr_print_lsa_String(ndr, "comment", &r->comment);
1814         ndr->depth--;
1815 }
1816
1817 static enum ndr_err_code ndr_push_samr_UserInfo2(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo2 *r)
1818 {
1819         if (ndr_flags & NDR_SCALARS) {
1820                 NDR_CHECK(ndr_push_align(ndr, 4));
1821                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
1822                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown));
1823                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
1824                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
1825         }
1826         if (ndr_flags & NDR_BUFFERS) {
1827                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
1828                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown));
1829         }
1830         return NDR_ERR_SUCCESS;
1831 }
1832
1833 static enum ndr_err_code ndr_pull_samr_UserInfo2(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo2 *r)
1834 {
1835         if (ndr_flags & NDR_SCALARS) {
1836                 NDR_CHECK(ndr_pull_align(ndr, 4));
1837                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
1838                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown));
1839                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
1840                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
1841         }
1842         if (ndr_flags & NDR_BUFFERS) {
1843                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
1844                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown));
1845         }
1846         return NDR_ERR_SUCCESS;
1847 }
1848
1849 _PUBLIC_ void ndr_print_samr_UserInfo2(struct ndr_print *ndr, const char *name, const struct samr_UserInfo2 *r)
1850 {
1851         ndr_print_struct(ndr, name, "samr_UserInfo2");
1852         ndr->depth++;
1853         ndr_print_lsa_String(ndr, "comment", &r->comment);
1854         ndr_print_lsa_String(ndr, "unknown", &r->unknown);
1855         ndr_print_uint16(ndr, "country_code", r->country_code);
1856         ndr_print_uint16(ndr, "code_page", r->code_page);
1857         ndr->depth--;
1858 }
1859
1860 _PUBLIC_ enum ndr_err_code ndr_push_samr_LogonHours(struct ndr_push *ndr, int ndr_flags, const struct samr_LogonHours *r)
1861 {
1862         {
1863                 uint32_t _flags_save_STRUCT = ndr->flags;
1864                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1865                 if (ndr_flags & NDR_SCALARS) {
1866                         NDR_CHECK(ndr_push_align(ndr, 4));
1867                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->units_per_week));
1868                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->bits));
1869                 }
1870                 if (ndr_flags & NDR_BUFFERS) {
1871                         if (r->bits) {
1872                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1260));
1873                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1874                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->units_per_week / 8));
1875                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->bits, r->units_per_week / 8));
1876                         }
1877                 }
1878                 ndr->flags = _flags_save_STRUCT;
1879         }
1880         return NDR_ERR_SUCCESS;
1881 }
1882
1883 _PUBLIC_ enum ndr_err_code ndr_pull_samr_LogonHours(struct ndr_pull *ndr, int ndr_flags, struct samr_LogonHours *r)
1884 {
1885         uint32_t _ptr_bits;
1886         TALLOC_CTX *_mem_save_bits_0;
1887         {
1888                 uint32_t _flags_save_STRUCT = ndr->flags;
1889                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1890                 if (ndr_flags & NDR_SCALARS) {
1891                         NDR_CHECK(ndr_pull_align(ndr, 4));
1892                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->units_per_week));
1893                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bits));
1894                         if (_ptr_bits) {
1895                                 NDR_PULL_ALLOC(ndr, r->bits);
1896                         } else {
1897                                 r->bits = NULL;
1898                         }
1899                 }
1900                 if (ndr_flags & NDR_BUFFERS) {
1901                         if (r->bits) {
1902                                 _mem_save_bits_0 = NDR_PULL_GET_MEM_CTX(ndr);
1903                                 NDR_PULL_SET_MEM_CTX(ndr, r->bits, 0);
1904                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->bits));
1905                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->bits));
1906                                 if (ndr_get_array_length(ndr, &r->bits) > ndr_get_array_size(ndr, &r->bits)) {
1907                                         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));
1908                                 }
1909                                 NDR_PULL_ALLOC_N(ndr, r->bits, ndr_get_array_size(ndr, &r->bits));
1910                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->bits, ndr_get_array_length(ndr, &r->bits)));
1911                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bits_0, 0);
1912                         }
1913                         if (r->bits) {
1914                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->bits, 1260));
1915                         }
1916                         if (r->bits) {
1917                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->bits, r->units_per_week / 8));
1918                         }
1919                 }
1920                 ndr->flags = _flags_save_STRUCT;
1921         }
1922         return NDR_ERR_SUCCESS;
1923 }
1924
1925 _PUBLIC_ void ndr_print_samr_LogonHours(struct ndr_print *ndr, const char *name, const struct samr_LogonHours *r)
1926 {
1927         ndr_print_struct(ndr, name, "samr_LogonHours");
1928         {
1929                 uint32_t _flags_save_STRUCT = ndr->flags;
1930                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1931                 ndr->depth++;
1932                 ndr_print_uint16(ndr, "units_per_week", r->units_per_week);
1933                 ndr_print_ptr(ndr, "bits", r->bits);
1934                 ndr->depth++;
1935                 if (r->bits) {
1936                         ndr_print_array_uint8(ndr, "bits", r->bits, r->units_per_week / 8);
1937                 }
1938                 ndr->depth--;
1939                 ndr->depth--;
1940                 ndr->flags = _flags_save_STRUCT;
1941         }
1942 }
1943
1944 static enum ndr_err_code ndr_push_samr_UserInfo3(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo3 *r)
1945 {
1946         if (ndr_flags & NDR_SCALARS) {
1947                 NDR_CHECK(ndr_push_align(ndr, 4));
1948                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1949                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1950                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
1951                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
1952                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1953                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1954                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1955                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1956                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
1957                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
1958                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
1959                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
1960                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
1961                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
1962                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
1963                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
1964                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
1965                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
1966         }
1967         if (ndr_flags & NDR_BUFFERS) {
1968                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1969                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1970                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1971                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1972                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1973                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1974                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
1975                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
1976         }
1977         return NDR_ERR_SUCCESS;
1978 }
1979
1980 static enum ndr_err_code ndr_pull_samr_UserInfo3(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo3 *r)
1981 {
1982         if (ndr_flags & NDR_SCALARS) {
1983                 NDR_CHECK(ndr_pull_align(ndr, 4));
1984                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1985                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1986                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
1987                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1988                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1989                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1990                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1991                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1992                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
1993                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
1994                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
1995                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
1996                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
1997                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
1998                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
1999                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2000                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2001                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2002         }
2003         if (ndr_flags & NDR_BUFFERS) {
2004                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2005                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2006                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2007                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2008                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2009                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2010                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2011                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2012         }
2013         return NDR_ERR_SUCCESS;
2014 }
2015
2016 _PUBLIC_ void ndr_print_samr_UserInfo3(struct ndr_print *ndr, const char *name, const struct samr_UserInfo3 *r)
2017 {
2018         ndr_print_struct(ndr, name, "samr_UserInfo3");
2019         ndr->depth++;
2020         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2021         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2022         ndr_print_uint32(ndr, "rid", r->rid);
2023         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2024         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2025         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2026         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2027         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2028         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2029         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2030         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2031         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2032         ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
2033         ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
2034         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2035         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2036         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2037         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2038         ndr->depth--;
2039 }
2040
2041 static enum ndr_err_code ndr_push_samr_UserInfo4(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo4 *r)
2042 {
2043         if (ndr_flags & NDR_SCALARS) {
2044                 NDR_CHECK(ndr_push_align(ndr, 4));
2045                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2046         }
2047         if (ndr_flags & NDR_BUFFERS) {
2048                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2049         }
2050         return NDR_ERR_SUCCESS;
2051 }
2052
2053 static enum ndr_err_code ndr_pull_samr_UserInfo4(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo4 *r)
2054 {
2055         if (ndr_flags & NDR_SCALARS) {
2056                 NDR_CHECK(ndr_pull_align(ndr, 4));
2057                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2058         }
2059         if (ndr_flags & NDR_BUFFERS) {
2060                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2061         }
2062         return NDR_ERR_SUCCESS;
2063 }
2064
2065 _PUBLIC_ void ndr_print_samr_UserInfo4(struct ndr_print *ndr, const char *name, const struct samr_UserInfo4 *r)
2066 {
2067         ndr_print_struct(ndr, name, "samr_UserInfo4");
2068         ndr->depth++;
2069         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2070         ndr->depth--;
2071 }
2072
2073 static enum ndr_err_code ndr_push_samr_UserInfo5(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo5 *r)
2074 {
2075         if (ndr_flags & NDR_SCALARS) {
2076                 NDR_CHECK(ndr_push_align(ndr, 4));
2077                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2078                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2079                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2080                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2081                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2082                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2083                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2084                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2085                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2086                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2087                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2088                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2089                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2090                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2091                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2092                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2093                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2094                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2095         }
2096         if (ndr_flags & NDR_BUFFERS) {
2097                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2098                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2099                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2100                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2101                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2102                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2103                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2104                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2105                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2106         }
2107         return NDR_ERR_SUCCESS;
2108 }
2109
2110 static enum ndr_err_code ndr_pull_samr_UserInfo5(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo5 *r)
2111 {
2112         if (ndr_flags & NDR_SCALARS) {
2113                 NDR_CHECK(ndr_pull_align(ndr, 4));
2114                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2115                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2116                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2117                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2118                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2119                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2120                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2121                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2122                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2123                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2124                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2125                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2126                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2127                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2128                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2129                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2130                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2131                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2132         }
2133         if (ndr_flags & NDR_BUFFERS) {
2134                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2135                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2136                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2137                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2138                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2139                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2140                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2141                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2142                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2143         }
2144         return NDR_ERR_SUCCESS;
2145 }
2146
2147 _PUBLIC_ void ndr_print_samr_UserInfo5(struct ndr_print *ndr, const char *name, const struct samr_UserInfo5 *r)
2148 {
2149         ndr_print_struct(ndr, name, "samr_UserInfo5");
2150         ndr->depth++;
2151         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2152         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2153         ndr_print_uint32(ndr, "rid", r->rid);
2154         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2155         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2156         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2157         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2158         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2159         ndr_print_lsa_String(ndr, "description", &r->description);
2160         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2161         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2162         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2163         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2164         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2165         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2166         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2167         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2168         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2169         ndr->depth--;
2170 }
2171
2172 static enum ndr_err_code ndr_push_samr_UserInfo6(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo6 *r)
2173 {
2174         if (ndr_flags & NDR_SCALARS) {
2175                 NDR_CHECK(ndr_push_align(ndr, 4));
2176                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2177                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2178         }
2179         if (ndr_flags & NDR_BUFFERS) {
2180                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2181                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2182         }
2183         return NDR_ERR_SUCCESS;
2184 }
2185
2186 static enum ndr_err_code ndr_pull_samr_UserInfo6(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo6 *r)
2187 {
2188         if (ndr_flags & NDR_SCALARS) {
2189                 NDR_CHECK(ndr_pull_align(ndr, 4));
2190                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2191                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2192         }
2193         if (ndr_flags & NDR_BUFFERS) {
2194                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2195                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2196         }
2197         return NDR_ERR_SUCCESS;
2198 }
2199
2200 _PUBLIC_ void ndr_print_samr_UserInfo6(struct ndr_print *ndr, const char *name, const struct samr_UserInfo6 *r)
2201 {
2202         ndr_print_struct(ndr, name, "samr_UserInfo6");
2203         ndr->depth++;
2204         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2205         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2206         ndr->depth--;
2207 }
2208
2209 static enum ndr_err_code ndr_push_samr_UserInfo7(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo7 *r)
2210 {
2211         if (ndr_flags & NDR_SCALARS) {
2212                 NDR_CHECK(ndr_push_align(ndr, 4));
2213                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2214         }
2215         if (ndr_flags & NDR_BUFFERS) {
2216                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2217         }
2218         return NDR_ERR_SUCCESS;
2219 }
2220
2221 static enum ndr_err_code ndr_pull_samr_UserInfo7(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo7 *r)
2222 {
2223         if (ndr_flags & NDR_SCALARS) {
2224                 NDR_CHECK(ndr_pull_align(ndr, 4));
2225                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2226         }
2227         if (ndr_flags & NDR_BUFFERS) {
2228                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2229         }
2230         return NDR_ERR_SUCCESS;
2231 }
2232
2233 _PUBLIC_ void ndr_print_samr_UserInfo7(struct ndr_print *ndr, const char *name, const struct samr_UserInfo7 *r)
2234 {
2235         ndr_print_struct(ndr, name, "samr_UserInfo7");
2236         ndr->depth++;
2237         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2238         ndr->depth--;
2239 }
2240
2241 static enum ndr_err_code ndr_push_samr_UserInfo8(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo8 *r)
2242 {
2243         if (ndr_flags & NDR_SCALARS) {
2244                 NDR_CHECK(ndr_push_align(ndr, 4));
2245                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2246         }
2247         if (ndr_flags & NDR_BUFFERS) {
2248                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2249         }
2250         return NDR_ERR_SUCCESS;
2251 }
2252
2253 static enum ndr_err_code ndr_pull_samr_UserInfo8(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo8 *r)
2254 {
2255         if (ndr_flags & NDR_SCALARS) {
2256                 NDR_CHECK(ndr_pull_align(ndr, 4));
2257                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2258         }
2259         if (ndr_flags & NDR_BUFFERS) {
2260                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2261         }
2262         return NDR_ERR_SUCCESS;
2263 }
2264
2265 _PUBLIC_ void ndr_print_samr_UserInfo8(struct ndr_print *ndr, const char *name, const struct samr_UserInfo8 *r)
2266 {
2267         ndr_print_struct(ndr, name, "samr_UserInfo8");
2268         ndr->depth++;
2269         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2270         ndr->depth--;
2271 }
2272
2273 static enum ndr_err_code ndr_push_samr_UserInfo9(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo9 *r)
2274 {
2275         if (ndr_flags & NDR_SCALARS) {
2276                 NDR_CHECK(ndr_push_align(ndr, 4));
2277                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2278         }
2279         if (ndr_flags & NDR_BUFFERS) {
2280         }
2281         return NDR_ERR_SUCCESS;
2282 }
2283
2284 static enum ndr_err_code ndr_pull_samr_UserInfo9(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo9 *r)
2285 {
2286         if (ndr_flags & NDR_SCALARS) {
2287                 NDR_CHECK(ndr_pull_align(ndr, 4));
2288                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2289         }
2290         if (ndr_flags & NDR_BUFFERS) {
2291         }
2292         return NDR_ERR_SUCCESS;
2293 }
2294
2295 _PUBLIC_ void ndr_print_samr_UserInfo9(struct ndr_print *ndr, const char *name, const struct samr_UserInfo9 *r)
2296 {
2297         ndr_print_struct(ndr, name, "samr_UserInfo9");
2298         ndr->depth++;
2299         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2300         ndr->depth--;
2301 }
2302
2303 static enum ndr_err_code ndr_push_samr_UserInfo10(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo10 *r)
2304 {
2305         if (ndr_flags & NDR_SCALARS) {
2306                 NDR_CHECK(ndr_push_align(ndr, 4));
2307                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2308                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2309         }
2310         if (ndr_flags & NDR_BUFFERS) {
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         }
2314         return NDR_ERR_SUCCESS;
2315 }
2316
2317 static enum ndr_err_code ndr_pull_samr_UserInfo10(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo10 *r)
2318 {
2319         if (ndr_flags & NDR_SCALARS) {
2320                 NDR_CHECK(ndr_pull_align(ndr, 4));
2321                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2322                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2323         }
2324         if (ndr_flags & NDR_BUFFERS) {
2325                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2326                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2327         }
2328         return NDR_ERR_SUCCESS;
2329 }
2330
2331 _PUBLIC_ void ndr_print_samr_UserInfo10(struct ndr_print *ndr, const char *name, const struct samr_UserInfo10 *r)
2332 {
2333         ndr_print_struct(ndr, name, "samr_UserInfo10");
2334         ndr->depth++;
2335         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2336         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2337         ndr->depth--;
2338 }
2339
2340 static enum ndr_err_code ndr_push_samr_UserInfo11(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo11 *r)
2341 {
2342         if (ndr_flags & NDR_SCALARS) {
2343                 NDR_CHECK(ndr_push_align(ndr, 4));
2344                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2345         }
2346         if (ndr_flags & NDR_BUFFERS) {
2347                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2348         }
2349         return NDR_ERR_SUCCESS;
2350 }
2351
2352 static enum ndr_err_code ndr_pull_samr_UserInfo11(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo11 *r)
2353 {
2354         if (ndr_flags & NDR_SCALARS) {
2355                 NDR_CHECK(ndr_pull_align(ndr, 4));
2356                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2357         }
2358         if (ndr_flags & NDR_BUFFERS) {
2359                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2360         }
2361         return NDR_ERR_SUCCESS;
2362 }
2363
2364 _PUBLIC_ void ndr_print_samr_UserInfo11(struct ndr_print *ndr, const char *name, const struct samr_UserInfo11 *r)
2365 {
2366         ndr_print_struct(ndr, name, "samr_UserInfo11");
2367         ndr->depth++;
2368         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2369         ndr->depth--;
2370 }
2371
2372 static enum ndr_err_code ndr_push_samr_UserInfo12(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo12 *r)
2373 {
2374         if (ndr_flags & NDR_SCALARS) {
2375                 NDR_CHECK(ndr_push_align(ndr, 4));
2376                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2377         }
2378         if (ndr_flags & NDR_BUFFERS) {
2379                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2380         }
2381         return NDR_ERR_SUCCESS;
2382 }
2383
2384 static enum ndr_err_code ndr_pull_samr_UserInfo12(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo12 *r)
2385 {
2386         if (ndr_flags & NDR_SCALARS) {
2387                 NDR_CHECK(ndr_pull_align(ndr, 4));
2388                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2389         }
2390         if (ndr_flags & NDR_BUFFERS) {
2391                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2392         }
2393         return NDR_ERR_SUCCESS;
2394 }
2395
2396 _PUBLIC_ void ndr_print_samr_UserInfo12(struct ndr_print *ndr, const char *name, const struct samr_UserInfo12 *r)
2397 {
2398         ndr_print_struct(ndr, name, "samr_UserInfo12");
2399         ndr->depth++;
2400         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2401         ndr->depth--;
2402 }
2403
2404 static enum ndr_err_code ndr_push_samr_UserInfo13(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo13 *r)
2405 {
2406         if (ndr_flags & NDR_SCALARS) {
2407                 NDR_CHECK(ndr_push_align(ndr, 4));
2408                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2409         }
2410         if (ndr_flags & NDR_BUFFERS) {
2411                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2412         }
2413         return NDR_ERR_SUCCESS;
2414 }
2415
2416 static enum ndr_err_code ndr_pull_samr_UserInfo13(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo13 *r)
2417 {
2418         if (ndr_flags & NDR_SCALARS) {
2419                 NDR_CHECK(ndr_pull_align(ndr, 4));
2420                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2421         }
2422         if (ndr_flags & NDR_BUFFERS) {
2423                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2424         }
2425         return NDR_ERR_SUCCESS;
2426 }
2427
2428 _PUBLIC_ void ndr_print_samr_UserInfo13(struct ndr_print *ndr, const char *name, const struct samr_UserInfo13 *r)
2429 {
2430         ndr_print_struct(ndr, name, "samr_UserInfo13");
2431         ndr->depth++;
2432         ndr_print_lsa_String(ndr, "description", &r->description);
2433         ndr->depth--;
2434 }
2435
2436 static enum ndr_err_code ndr_push_samr_UserInfo14(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo14 *r)
2437 {
2438         if (ndr_flags & NDR_SCALARS) {
2439                 NDR_CHECK(ndr_push_align(ndr, 4));
2440                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2441         }
2442         if (ndr_flags & NDR_BUFFERS) {
2443                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2444         }
2445         return NDR_ERR_SUCCESS;
2446 }
2447
2448 static enum ndr_err_code ndr_pull_samr_UserInfo14(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo14 *r)
2449 {
2450         if (ndr_flags & NDR_SCALARS) {
2451                 NDR_CHECK(ndr_pull_align(ndr, 4));
2452                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2453         }
2454         if (ndr_flags & NDR_BUFFERS) {
2455                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2456         }
2457         return NDR_ERR_SUCCESS;
2458 }
2459
2460 _PUBLIC_ void ndr_print_samr_UserInfo14(struct ndr_print *ndr, const char *name, const struct samr_UserInfo14 *r)
2461 {
2462         ndr_print_struct(ndr, name, "samr_UserInfo14");
2463         ndr->depth++;
2464         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2465         ndr->depth--;
2466 }
2467
2468 static enum ndr_err_code ndr_push_samr_UserInfo16(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo16 *r)
2469 {
2470         if (ndr_flags & NDR_SCALARS) {
2471                 NDR_CHECK(ndr_push_align(ndr, 4));
2472                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2473         }
2474         if (ndr_flags & NDR_BUFFERS) {
2475         }
2476         return NDR_ERR_SUCCESS;
2477 }
2478
2479 static enum ndr_err_code ndr_pull_samr_UserInfo16(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo16 *r)
2480 {
2481         if (ndr_flags & NDR_SCALARS) {
2482                 NDR_CHECK(ndr_pull_align(ndr, 4));
2483                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2484         }
2485         if (ndr_flags & NDR_BUFFERS) {
2486         }
2487         return NDR_ERR_SUCCESS;
2488 }
2489
2490 _PUBLIC_ void ndr_print_samr_UserInfo16(struct ndr_print *ndr, const char *name, const struct samr_UserInfo16 *r)
2491 {
2492         ndr_print_struct(ndr, name, "samr_UserInfo16");
2493         ndr->depth++;
2494         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2495         ndr->depth--;
2496 }
2497
2498 static enum ndr_err_code ndr_push_samr_UserInfo17(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo17 *r)
2499 {
2500         if (ndr_flags & NDR_SCALARS) {
2501                 NDR_CHECK(ndr_push_align(ndr, 4));
2502                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2503         }
2504         if (ndr_flags & NDR_BUFFERS) {
2505         }
2506         return NDR_ERR_SUCCESS;
2507 }
2508
2509 static enum ndr_err_code ndr_pull_samr_UserInfo17(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo17 *r)
2510 {
2511         if (ndr_flags & NDR_SCALARS) {
2512                 NDR_CHECK(ndr_pull_align(ndr, 4));
2513                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2514         }
2515         if (ndr_flags & NDR_BUFFERS) {
2516         }
2517         return NDR_ERR_SUCCESS;
2518 }
2519
2520 _PUBLIC_ void ndr_print_samr_UserInfo17(struct ndr_print *ndr, const char *name, const struct samr_UserInfo17 *r)
2521 {
2522         ndr_print_struct(ndr, name, "samr_UserInfo17");
2523         ndr->depth++;
2524         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2525         ndr->depth--;
2526 }
2527
2528 _PUBLIC_ enum ndr_err_code ndr_push_samr_Password(struct ndr_push *ndr, int ndr_flags, const struct samr_Password *r)
2529 {
2530         {
2531                 uint32_t _flags_save_STRUCT = ndr->flags;
2532                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2533                 if (ndr_flags & NDR_SCALARS) {
2534                         NDR_CHECK(ndr_push_align(ndr, 1));
2535                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->hash, 16));
2536                 }
2537                 if (ndr_flags & NDR_BUFFERS) {
2538                 }
2539                 ndr->flags = _flags_save_STRUCT;
2540         }
2541         return NDR_ERR_SUCCESS;
2542 }
2543
2544 _PUBLIC_ enum ndr_err_code ndr_pull_samr_Password(struct ndr_pull *ndr, int ndr_flags, struct samr_Password *r)
2545 {
2546         {
2547                 uint32_t _flags_save_STRUCT = ndr->flags;
2548                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2549                 if (ndr_flags & NDR_SCALARS) {
2550                         NDR_CHECK(ndr_pull_align(ndr, 1));
2551                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->hash, 16));
2552                 }
2553                 if (ndr_flags & NDR_BUFFERS) {
2554                 }
2555                 ndr->flags = _flags_save_STRUCT;
2556         }
2557         return NDR_ERR_SUCCESS;
2558 }
2559
2560 _PUBLIC_ void ndr_print_samr_Password(struct ndr_print *ndr, const char *name, const struct samr_Password *r)
2561 {
2562         ndr_print_struct(ndr, name, "samr_Password");
2563         {
2564                 uint32_t _flags_save_STRUCT = ndr->flags;
2565                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2566                 ndr->depth++;
2567                 ndr_print_array_uint8(ndr, "hash", r->hash, 16);
2568                 ndr->depth--;
2569                 ndr->flags = _flags_save_STRUCT;
2570         }
2571 }
2572
2573 static enum ndr_err_code ndr_push_samr_UserInfo18(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo18 *r)
2574 {
2575         if (ndr_flags & NDR_SCALARS) {
2576                 NDR_CHECK(ndr_push_align(ndr, 1));
2577                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lm_pwd));
2578                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->nt_pwd));
2579                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_pwd_active));
2580                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_pwd_active));
2581         }
2582         if (ndr_flags & NDR_BUFFERS) {
2583         }
2584         return NDR_ERR_SUCCESS;
2585 }
2586
2587 static enum ndr_err_code ndr_pull_samr_UserInfo18(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo18 *r)
2588 {
2589         if (ndr_flags & NDR_SCALARS) {
2590                 NDR_CHECK(ndr_pull_align(ndr, 1));
2591                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lm_pwd));
2592                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->nt_pwd));
2593                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_pwd_active));
2594                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_pwd_active));
2595         }
2596         if (ndr_flags & NDR_BUFFERS) {
2597         }
2598         return NDR_ERR_SUCCESS;
2599 }
2600
2601 _PUBLIC_ void ndr_print_samr_UserInfo18(struct ndr_print *ndr, const char *name, const struct samr_UserInfo18 *r)
2602 {
2603         ndr_print_struct(ndr, name, "samr_UserInfo18");
2604         ndr->depth++;
2605         ndr_print_samr_Password(ndr, "lm_pwd", &r->lm_pwd);
2606         ndr_print_samr_Password(ndr, "nt_pwd", &r->nt_pwd);
2607         ndr_print_uint8(ndr, "lm_pwd_active", r->lm_pwd_active);
2608         ndr_print_uint8(ndr, "nt_pwd_active", r->nt_pwd_active);
2609         ndr->depth--;
2610 }
2611
2612 static enum ndr_err_code ndr_push_samr_UserInfo20(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo20 *r)
2613 {
2614         if (ndr_flags & NDR_SCALARS) {
2615                 NDR_CHECK(ndr_push_align(ndr, 4));
2616                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2617         }
2618         if (ndr_flags & NDR_BUFFERS) {
2619                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2620         }
2621         return NDR_ERR_SUCCESS;
2622 }
2623
2624 static enum ndr_err_code ndr_pull_samr_UserInfo20(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo20 *r)
2625 {
2626         if (ndr_flags & NDR_SCALARS) {
2627                 NDR_CHECK(ndr_pull_align(ndr, 4));
2628                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2629         }
2630         if (ndr_flags & NDR_BUFFERS) {
2631                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2632         }
2633         return NDR_ERR_SUCCESS;
2634 }
2635
2636 _PUBLIC_ void ndr_print_samr_UserInfo20(struct ndr_print *ndr, const char *name, const struct samr_UserInfo20 *r)
2637 {
2638         ndr_print_struct(ndr, name, "samr_UserInfo20");
2639         ndr->depth++;
2640         ndr_print_lsa_BinaryString(ndr, "parameters", &r->parameters);
2641         ndr->depth--;
2642 }
2643
2644 static enum ndr_err_code ndr_push_samr_FieldsPresent(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2645 {
2646         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2647         return NDR_ERR_SUCCESS;
2648 }
2649
2650 static enum ndr_err_code ndr_pull_samr_FieldsPresent(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2651 {
2652         uint32_t v;
2653         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2654         *r = v;
2655         return NDR_ERR_SUCCESS;
2656 }
2657
2658 _PUBLIC_ void ndr_print_samr_FieldsPresent(struct ndr_print *ndr, const char *name, uint32_t r)
2659 {
2660         ndr_print_uint32(ndr, name, r);
2661         ndr->depth++;
2662         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_ACCOUNT_NAME", SAMR_FIELD_ACCOUNT_NAME, r);
2663         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_FULL_NAME", SAMR_FIELD_FULL_NAME, r);
2664         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_RID", SAMR_FIELD_RID, r);
2665         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_PRIMARY_GID", SAMR_FIELD_PRIMARY_GID, r);
2666         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_DESCRIPTION", SAMR_FIELD_DESCRIPTION, r);
2667         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_COMMENT", SAMR_FIELD_COMMENT, r);
2668         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_HOME_DIRECTORY", SAMR_FIELD_HOME_DIRECTORY, r);
2669         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_HOME_DRIVE", SAMR_FIELD_HOME_DRIVE, r);
2670         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_LOGON_SCRIPT", SAMR_FIELD_LOGON_SCRIPT, r);
2671         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_PROFILE_PATH", SAMR_FIELD_PROFILE_PATH, r);
2672         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_WORKSTATIONS", SAMR_FIELD_WORKSTATIONS, r);
2673         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_LAST_LOGON", SAMR_FIELD_LAST_LOGON, r);
2674         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_LAST_LOGOFF", SAMR_FIELD_LAST_LOGOFF, r);
2675         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_LOGON_HOURS", SAMR_FIELD_LOGON_HOURS, r);
2676         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_BAD_PWD_COUNT", SAMR_FIELD_BAD_PWD_COUNT, r);
2677         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_NUM_LOGONS", SAMR_FIELD_NUM_LOGONS, r);
2678         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_ALLOW_PWD_CHANGE", SAMR_FIELD_ALLOW_PWD_CHANGE, r);
2679         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_FORCE_PWD_CHANGE", SAMR_FIELD_FORCE_PWD_CHANGE, r);
2680         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_LAST_PWD_CHANGE", SAMR_FIELD_LAST_PWD_CHANGE, r);
2681         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_ACCT_EXPIRY", SAMR_FIELD_ACCT_EXPIRY, r);
2682         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_ACCT_FLAGS", SAMR_FIELD_ACCT_FLAGS, r);
2683         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_PARAMETERS", SAMR_FIELD_PARAMETERS, r);
2684         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_COUNTRY_CODE", SAMR_FIELD_COUNTRY_CODE, r);
2685         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_CODE_PAGE", SAMR_FIELD_CODE_PAGE, r);
2686         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_PASSWORD", SAMR_FIELD_PASSWORD, r);
2687         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_PASSWORD2", SAMR_FIELD_PASSWORD2, r);
2688         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_PRIVATE_DATA", SAMR_FIELD_PRIVATE_DATA, r);
2689         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_EXPIRED_FLAG", SAMR_FIELD_EXPIRED_FLAG, r);
2690         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_SEC_DESC", SAMR_FIELD_SEC_DESC, r);
2691         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_OWF_PWD", SAMR_FIELD_OWF_PWD, r);
2692         ndr->depth--;
2693 }
2694
2695 static enum ndr_err_code ndr_push_samr_UserInfo21(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo21 *r)
2696 {
2697         if (ndr_flags & NDR_SCALARS) {
2698                 NDR_CHECK(ndr_push_align(ndr, 4));
2699                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2700                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2701                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2702                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2703                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
2704                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
2705                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2706                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2707                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2708                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2709                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2710                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2711                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2712                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2713                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2714                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2715                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2716                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2717                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2718                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->buf_count));
2719                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
2720                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2721                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2722                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2723                 NDR_CHECK(ndr_push_samr_FieldsPresent(ndr, NDR_SCALARS, r->fields_present));
2724                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2725                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2726                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2727                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2728                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2729                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_set));
2730                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_set));
2731                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2732                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->unknown4));
2733         }
2734         if (ndr_flags & NDR_BUFFERS) {
2735                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2736                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2737                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2738                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2739                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2740                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2741                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2742                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2743                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2744                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2745                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2746                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2747                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2748                 if (r->buffer) {
2749                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->buf_count));
2750                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->buf_count));
2751                 }
2752                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2753         }
2754         return NDR_ERR_SUCCESS;
2755 }
2756
2757 static enum ndr_err_code ndr_pull_samr_UserInfo21(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo21 *r)
2758 {
2759         uint32_t _ptr_buffer;
2760         TALLOC_CTX *_mem_save_buffer_0;
2761         if (ndr_flags & NDR_SCALARS) {
2762                 NDR_CHECK(ndr_pull_align(ndr, 4));
2763                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2764                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2765                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2766                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2767                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
2768                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
2769                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2770                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2771                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2772                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2773                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2774                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2775                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2776                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2777                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2778                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2779                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2780                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2781                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2782                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->buf_count));
2783                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
2784                 if (_ptr_buffer) {
2785                         NDR_PULL_ALLOC(ndr, r->buffer);
2786                 } else {
2787                         r->buffer = NULL;
2788                 }
2789                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2790                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2791                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2792                 NDR_CHECK(ndr_pull_samr_FieldsPresent(ndr, NDR_SCALARS, &r->fields_present));
2793                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2794                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2795                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2796                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2797                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2798                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_set));
2799                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_set));
2800                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2801                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->unknown4));
2802         }
2803         if (ndr_flags & NDR_BUFFERS) {
2804                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2805                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2806                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2807                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2808                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2809                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2810                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2811                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2812                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2813                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2814                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2815                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2816                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2817                 if (r->buffer) {
2818                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
2819                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
2820                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
2821                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
2822                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
2823                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
2824                 }
2825                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2826                 if (r->buffer) {
2827                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->buf_count));
2828                 }
2829         }
2830         return NDR_ERR_SUCCESS;
2831 }
2832
2833 _PUBLIC_ void ndr_print_samr_UserInfo21(struct ndr_print *ndr, const char *name, const struct samr_UserInfo21 *r)
2834 {
2835         ndr_print_struct(ndr, name, "samr_UserInfo21");
2836         ndr->depth++;
2837         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2838         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2839         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2840         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2841         ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
2842         ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
2843         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2844         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2845         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2846         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2847         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2848         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2849         ndr_print_lsa_String(ndr, "description", &r->description);
2850         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2851         ndr_print_lsa_String(ndr, "comment", &r->comment);
2852         ndr_print_lsa_BinaryString(ndr, "parameters", &r->parameters);
2853         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2854         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2855         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2856         ndr_print_uint32(ndr, "buf_count", r->buf_count);
2857         ndr_print_ptr(ndr, "buffer", r->buffer);
2858         ndr->depth++;
2859         if (r->buffer) {
2860                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->buf_count);
2861         }
2862         ndr->depth--;
2863         ndr_print_uint32(ndr, "rid", r->rid);
2864         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2865         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2866         ndr_print_samr_FieldsPresent(ndr, "fields_present", r->fields_present);
2867         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2868         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2869         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2870         ndr_print_uint16(ndr, "country_code", r->country_code);
2871         ndr_print_uint16(ndr, "code_page", r->code_page);
2872         ndr_print_uint8(ndr, "nt_password_set", r->nt_password_set);
2873         ndr_print_uint8(ndr, "lm_password_set", r->lm_password_set);
2874         ndr_print_uint8(ndr, "password_expired", r->password_expired);
2875         ndr_print_uint8(ndr, "unknown4", r->unknown4);
2876         ndr->depth--;
2877 }
2878
2879 _PUBLIC_ enum ndr_err_code ndr_push_samr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct samr_CryptPassword *r)
2880 {
2881         {
2882                 uint32_t _flags_save_STRUCT = ndr->flags;
2883                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2884                 if (ndr_flags & NDR_SCALARS) {
2885                         NDR_CHECK(ndr_push_align(ndr, 1));
2886                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 516));
2887                 }
2888                 if (ndr_flags & NDR_BUFFERS) {
2889                 }
2890                 ndr->flags = _flags_save_STRUCT;
2891         }
2892         return NDR_ERR_SUCCESS;
2893 }
2894
2895 _PUBLIC_ enum ndr_err_code ndr_pull_samr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct samr_CryptPassword *r)
2896 {
2897         {
2898                 uint32_t _flags_save_STRUCT = ndr->flags;
2899                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2900                 if (ndr_flags & NDR_SCALARS) {
2901                         NDR_CHECK(ndr_pull_align(ndr, 1));
2902                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 516));
2903                 }
2904                 if (ndr_flags & NDR_BUFFERS) {
2905                 }
2906                 ndr->flags = _flags_save_STRUCT;
2907         }
2908         return NDR_ERR_SUCCESS;
2909 }
2910
2911 _PUBLIC_ void ndr_print_samr_CryptPassword(struct ndr_print *ndr, const char *name, const struct samr_CryptPassword *r)
2912 {
2913         ndr_print_struct(ndr, name, "samr_CryptPassword");
2914         {
2915                 uint32_t _flags_save_STRUCT = ndr->flags;
2916                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2917                 ndr->depth++;
2918                 ndr_print_array_uint8(ndr, "data", r->data, 516);
2919                 ndr->depth--;
2920                 ndr->flags = _flags_save_STRUCT;
2921         }
2922 }
2923
2924 static enum ndr_err_code ndr_push_samr_UserInfo23(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo23 *r)
2925 {
2926         if (ndr_flags & NDR_SCALARS) {
2927                 NDR_CHECK(ndr_push_align(ndr, 4));
2928                 NDR_CHECK(ndr_push_samr_UserInfo21(ndr, NDR_SCALARS, &r->info));
2929                 NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, &r->password));
2930         }
2931         if (ndr_flags & NDR_BUFFERS) {
2932                 NDR_CHECK(ndr_push_samr_UserInfo21(ndr, NDR_BUFFERS, &r->info));
2933         }
2934         return NDR_ERR_SUCCESS;
2935 }
2936
2937 static enum ndr_err_code ndr_pull_samr_UserInfo23(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo23 *r)
2938 {
2939         if (ndr_flags & NDR_SCALARS) {
2940                 NDR_CHECK(ndr_pull_align(ndr, 4));
2941                 NDR_CHECK(ndr_pull_samr_UserInfo21(ndr, NDR_SCALARS, &r->info));
2942                 NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, &r->password));
2943         }
2944         if (ndr_flags & NDR_BUFFERS) {
2945                 NDR_CHECK(ndr_pull_samr_UserInfo21(ndr, NDR_BUFFERS, &r->info));
2946         }
2947         return NDR_ERR_SUCCESS;
2948 }
2949
2950 _PUBLIC_ void ndr_print_samr_UserInfo23(struct ndr_print *ndr, const char *name, const struct samr_UserInfo23 *r)
2951 {
2952         ndr_print_struct(ndr, name, "samr_UserInfo23");
2953         ndr->depth++;
2954         ndr_print_samr_UserInfo21(ndr, "info", &r->info);
2955         ndr_print_samr_CryptPassword(ndr, "password", &r->password);
2956         ndr->depth--;
2957 }
2958
2959 static enum ndr_err_code ndr_push_samr_UserInfo24(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo24 *r)
2960 {
2961         if (ndr_flags & NDR_SCALARS) {
2962                 NDR_CHECK(ndr_push_align(ndr, 1));
2963                 NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, &r->password));
2964                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pw_len));
2965         }
2966         if (ndr_flags & NDR_BUFFERS) {
2967         }
2968         return NDR_ERR_SUCCESS;
2969 }
2970
2971 static enum ndr_err_code ndr_pull_samr_UserInfo24(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo24 *r)
2972 {
2973         if (ndr_flags & NDR_SCALARS) {
2974                 NDR_CHECK(ndr_pull_align(ndr, 1));
2975                 NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, &r->password));
2976                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pw_len));
2977         }
2978         if (ndr_flags & NDR_BUFFERS) {
2979         }
2980         return NDR_ERR_SUCCESS;
2981 }
2982
2983 _PUBLIC_ void ndr_print_samr_UserInfo24(struct ndr_print *ndr, const char *name, const struct samr_UserInfo24 *r)
2984 {
2985         ndr_print_struct(ndr, name, "samr_UserInfo24");
2986         ndr->depth++;
2987         ndr_print_samr_CryptPassword(ndr, "password", &r->password);
2988         ndr_print_uint8(ndr, "pw_len", r->pw_len);
2989         ndr->depth--;
2990 }
2991
2992 static enum ndr_err_code ndr_push_samr_CryptPasswordEx(struct ndr_push *ndr, int ndr_flags, const struct samr_CryptPasswordEx *r)
2993 {
2994         {
2995                 uint32_t _flags_save_STRUCT = ndr->flags;
2996                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2997                 if (ndr_flags & NDR_SCALARS) {
2998                         NDR_CHECK(ndr_push_align(ndr, 1));
2999                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 532));
3000                 }
3001                 if (ndr_flags & NDR_BUFFERS) {
3002                 }
3003                 ndr->flags = _flags_save_STRUCT;
3004         }
3005         return NDR_ERR_SUCCESS;
3006 }
3007
3008 static enum ndr_err_code ndr_pull_samr_CryptPasswordEx(struct ndr_pull *ndr, int ndr_flags, struct samr_CryptPasswordEx *r)
3009 {
3010         {
3011                 uint32_t _flags_save_STRUCT = ndr->flags;
3012                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3013                 if (ndr_flags & NDR_SCALARS) {
3014                         NDR_CHECK(ndr_pull_align(ndr, 1));
3015                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 532));
3016                 }
3017                 if (ndr_flags & NDR_BUFFERS) {
3018                 }
3019                 ndr->flags = _flags_save_STRUCT;
3020         }
3021         return NDR_ERR_SUCCESS;
3022 }
3023
3024 _PUBLIC_ void ndr_print_samr_CryptPasswordEx(struct ndr_print *ndr, const char *name, const struct samr_CryptPasswordEx *r)
3025 {
3026         ndr_print_struct(ndr, name, "samr_CryptPasswordEx");
3027         {
3028                 uint32_t _flags_save_STRUCT = ndr->flags;
3029                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3030                 ndr->depth++;
3031                 ndr_print_array_uint8(ndr, "data", r->data, 532);
3032                 ndr->depth--;
3033                 ndr->flags = _flags_save_STRUCT;
3034         }
3035 }
3036
3037 static enum ndr_err_code ndr_push_samr_UserInfo25(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo25 *r)
3038 {
3039         if (ndr_flags & NDR_SCALARS) {
3040                 NDR_CHECK(ndr_push_align(ndr, 4));
3041                 NDR_CHECK(ndr_push_samr_UserInfo21(ndr, NDR_SCALARS, &r->info));
3042                 NDR_CHECK(ndr_push_samr_CryptPasswordEx(ndr, NDR_SCALARS, &r->password));
3043         }
3044         if (ndr_flags & NDR_BUFFERS) {
3045                 NDR_CHECK(ndr_push_samr_UserInfo21(ndr, NDR_BUFFERS, &r->info));
3046         }
3047         return NDR_ERR_SUCCESS;
3048 }
3049
3050 static enum ndr_err_code ndr_pull_samr_UserInfo25(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo25 *r)
3051 {
3052         if (ndr_flags & NDR_SCALARS) {
3053                 NDR_CHECK(ndr_pull_align(ndr, 4));
3054                 NDR_CHECK(ndr_pull_samr_UserInfo21(ndr, NDR_SCALARS, &r->info));
3055                 NDR_CHECK(ndr_pull_samr_CryptPasswordEx(ndr, NDR_SCALARS, &r->password));
3056         }
3057         if (ndr_flags & NDR_BUFFERS) {
3058                 NDR_CHECK(ndr_pull_samr_UserInfo21(ndr, NDR_BUFFERS, &r->info));
3059         }
3060         return NDR_ERR_SUCCESS;
3061 }
3062
3063 _PUBLIC_ void ndr_print_samr_UserInfo25(struct ndr_print *ndr, const char *name, const struct samr_UserInfo25 *r)
3064 {
3065         ndr_print_struct(ndr, name, "samr_UserInfo25");
3066         ndr->depth++;
3067         ndr_print_samr_UserInfo21(ndr, "info", &r->info);
3068         ndr_print_samr_CryptPasswordEx(ndr, "password", &r->password);
3069         ndr->depth--;
3070 }
3071
3072 static enum ndr_err_code ndr_push_samr_UserInfo26(struct ndr_push *ndr, int ndr_flags, const struct samr_UserInfo26 *r)
3073 {
3074         if (ndr_flags & NDR_SCALARS) {
3075                 NDR_CHECK(ndr_push_align(ndr, 1));
3076                 NDR_CHECK(ndr_push_samr_CryptPasswordEx(ndr, NDR_SCALARS, &r->password));
3077                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pw_len));
3078         }
3079         if (ndr_flags & NDR_BUFFERS) {
3080         }
3081         return NDR_ERR_SUCCESS;
3082 }
3083
3084 static enum ndr_err_code ndr_pull_samr_UserInfo26(struct ndr_pull *ndr, int ndr_flags, struct samr_UserInfo26 *r)
3085 {
3086         if (ndr_flags & NDR_SCALARS) {
3087                 NDR_CHECK(ndr_pull_align(ndr, 1));
3088                 NDR_CHECK(ndr_pull_samr_CryptPasswordEx(ndr, NDR_SCALARS, &r->password));
3089                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pw_len));
3090         }
3091         if (ndr_flags & NDR_BUFFERS) {
3092         }
3093         return NDR_ERR_SUCCESS;
3094 }
3095
3096 _PUBLIC_ void ndr_print_samr_UserInfo26(struct ndr_print *ndr, const char *name, const struct samr_UserInfo26 *r)
3097 {
3098         ndr_print_struct(ndr, name, "samr_UserInfo26");
3099         ndr->depth++;
3100         ndr_print_samr_CryptPasswordEx(ndr, "password", &r->password);
3101         ndr_print_uint8(ndr, "pw_len", r->pw_len);
3102         ndr->depth--;
3103 }
3104
3105 static enum ndr_err_code ndr_push_samr_UserInfo(struct ndr_push *ndr, int ndr_flags, const union samr_UserInfo *r)
3106 {
3107         if (ndr_flags & NDR_SCALARS) {
3108                 int level = ndr_push_get_switch_value(ndr, r);
3109                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
3110                 switch (level) {
3111                         case 1: {
3112                                 NDR_CHECK(ndr_push_samr_UserInfo1(ndr, NDR_SCALARS, &r->info1));
3113                         break; }
3114
3115                         case 2: {
3116                                 NDR_CHECK(ndr_push_samr_UserInfo2(ndr, NDR_SCALARS, &r->info2));
3117                         break; }
3118
3119                         case 3: {
3120                                 NDR_CHECK(ndr_push_samr_UserInfo3(ndr, NDR_SCALARS, &r->info3));
3121                         break; }
3122
3123                         case 4: {
3124                                 NDR_CHECK(ndr_push_samr_UserInfo4(ndr, NDR_SCALARS, &r->info4));
3125                         break; }
3126
3127                         case 5: {
3128                                 NDR_CHECK(ndr_push_samr_UserInfo5(ndr, NDR_SCALARS, &r->info5));
3129                         break; }
3130
3131                         case 6: {
3132                                 NDR_CHECK(ndr_push_samr_UserInfo6(ndr, NDR_SCALARS, &r->info6));
3133                         break; }
3134
3135                         case 7: {
3136                                 NDR_CHECK(ndr_push_samr_UserInfo7(ndr, NDR_SCALARS, &r->info7));
3137                         break; }
3138
3139                         case 8: {
3140                                 NDR_CHECK(ndr_push_samr_UserInfo8(ndr, NDR_SCALARS, &r->info8));
3141                         break; }
3142
3143                         case 9: {
3144                                 NDR_CHECK(ndr_push_samr_UserInfo9(ndr, NDR_SCALARS, &r->info9));
3145                         break; }
3146
3147                         case 10: {
3148                                 NDR_CHECK(ndr_push_samr_UserInfo10(ndr, NDR_SCALARS, &r->info10));
3149                         break; }
3150
3151                         case 11: {
3152                                 NDR_CHECK(ndr_push_samr_UserInfo11(ndr, NDR_SCALARS, &r->info11));
3153                         break; }
3154
3155                         case 12: {
3156                                 NDR_CHECK(ndr_push_samr_UserInfo12(ndr, NDR_SCALARS, &r->info12));
3157                         break; }
3158
3159                         case 13: {
3160                                 NDR_CHECK(ndr_push_samr_UserInfo13(ndr, NDR_SCALARS, &r->info13));
3161                         break; }
3162
3163                         case 14: {
3164                                 NDR_CHECK(ndr_push_samr_UserInfo14(ndr, NDR_SCALARS, &r->info14));
3165                         break; }
3166
3167                         case 16: {
3168                                 NDR_CHECK(ndr_push_samr_UserInfo16(ndr, NDR_SCALARS, &r->info16));
3169                         break; }
3170
3171                         case 17: {
3172                                 NDR_CHECK(ndr_push_samr_UserInfo17(ndr, NDR_SCALARS, &r->info17));
3173                         break; }
3174
3175                         case 18: {
3176                                 NDR_CHECK(ndr_push_samr_UserInfo18(ndr, NDR_SCALARS, &r->info18));
3177                         break; }
3178
3179                         case 20: {
3180                                 NDR_CHECK(ndr_push_samr_UserInfo20(ndr, NDR_SCALARS, &r->info20));
3181                         break; }
3182
3183                         case 21: {
3184                                 NDR_CHECK(ndr_push_samr_UserInfo21(ndr, NDR_SCALARS, &r->info21));
3185                         break; }
3186
3187                         case 23: {
3188                                 NDR_CHECK(ndr_push_samr_UserInfo23(ndr, NDR_SCALARS, &r->info23));
3189                         break; }
3190
3191                         case 24: {
3192                                 NDR_CHECK(ndr_push_samr_UserInfo24(ndr, NDR_SCALARS, &r->info24));
3193                         break; }
3194
3195                         case 25: {
3196                                 NDR_CHECK(ndr_push_samr_UserInfo25(ndr, NDR_SCALARS, &r->info25));
3197                         break; }
3198
3199                         case 26: {
3200                                 NDR_CHECK(ndr_push_samr_UserInfo26(ndr, NDR_SCALARS, &r->info26));
3201                         break; }
3202
3203                         default:
3204                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3205                 }
3206         }
3207         if (ndr_flags & NDR_BUFFERS) {
3208                 int level = ndr_push_get_switch_value(ndr, r);
3209                 switch (level) {
3210                         case 1:
3211                                 NDR_CHECK(ndr_push_samr_UserInfo1(ndr, NDR_BUFFERS, &r->info1));
3212                         break;
3213
3214                         case 2:
3215                                 NDR_CHECK(ndr_push_samr_UserInfo2(ndr, NDR_BUFFERS, &r->info2));
3216                         break;
3217
3218                         case 3:
3219                                 NDR_CHECK(ndr_push_samr_UserInfo3(ndr, NDR_BUFFERS, &r->info3));
3220                         break;
3221
3222                         case 4:
3223                                 NDR_CHECK(ndr_push_samr_UserInfo4(ndr, NDR_BUFFERS, &r->info4));
3224                         break;
3225
3226                         case 5:
3227                                 NDR_CHECK(ndr_push_samr_UserInfo5(ndr, NDR_BUFFERS, &r->info5));
3228                         break;
3229
3230                         case 6:
3231                                 NDR_CHECK(ndr_push_samr_UserInfo6(ndr, NDR_BUFFERS, &r->info6));
3232                         break;
3233
3234                         case 7:
3235                                 NDR_CHECK(ndr_push_samr_UserInfo7(ndr, NDR_BUFFERS, &r->info7));
3236                         break;
3237
3238                         case 8:
3239                                 NDR_CHECK(ndr_push_samr_UserInfo8(ndr, NDR_BUFFERS, &r->info8));
3240                         break;
3241
3242                         case 9:
3243                         break;
3244
3245                         case 10:
3246                                 NDR_CHECK(ndr_push_samr_UserInfo10(ndr, NDR_BUFFERS, &r->info10));
3247                         break;
3248
3249                         case 11:
3250                                 NDR_CHECK(ndr_push_samr_UserInfo11(ndr, NDR_BUFFERS, &r->info11));
3251                         break;
3252
3253                         case 12:
3254                                 NDR_CHECK(ndr_push_samr_UserInfo12(ndr, NDR_BUFFERS, &r->info12));
3255                         break;
3256
3257                         case 13:
3258                                 NDR_CHECK(ndr_push_samr_UserInfo13(ndr, NDR_BUFFERS, &r->info13));
3259                         break;
3260
3261                         case 14:
3262                                 NDR_CHECK(ndr_push_samr_UserInfo14(ndr, NDR_BUFFERS, &r->info14));
3263                         break;
3264
3265                         case 16:
3266                         break;
3267
3268                         case 17:
3269                         break;
3270
3271                         case 18:
3272                         break;
3273
3274                         case 20:
3275                                 NDR_CHECK(ndr_push_samr_UserInfo20(ndr, NDR_BUFFERS, &r->info20));
3276                         break;
3277
3278                         case 21:
3279                                 NDR_CHECK(ndr_push_samr_UserInfo21(ndr, NDR_BUFFERS, &r->info21));
3280                         break;
3281
3282                         case 23:
3283                                 NDR_CHECK(ndr_push_samr_UserInfo23(ndr, NDR_BUFFERS, &r->info23));
3284                         break;
3285
3286                         case 24:
3287                         break;
3288
3289                         case 25:
3290                                 NDR_CHECK(ndr_push_samr_UserInfo25(ndr, NDR_BUFFERS, &r->info25));
3291                         break;
3292
3293                         case 26:
3294                         break;
3295
3296                         default:
3297                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3298                 }
3299         }
3300         return NDR_ERR_SUCCESS;
3301 }
3302
3303 static enum ndr_err_code ndr_pull_samr_UserInfo(struct ndr_pull *ndr, int ndr_flags, union samr_UserInfo *r)
3304 {
3305         int level;
3306         uint16_t _level;
3307         level = ndr_pull_get_switch_value(ndr, r);
3308         if (ndr_flags & NDR_SCALARS) {
3309                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
3310                 if (_level != level) {
3311                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
3312                 }
3313                 switch (level) {
3314                         case 1: {
3315                                 NDR_CHECK(ndr_pull_samr_UserInfo1(ndr, NDR_SCALARS, &r->info1));
3316                         break; }
3317
3318                         case 2: {
3319                                 NDR_CHECK(ndr_pull_samr_UserInfo2(ndr, NDR_SCALARS, &r->info2));
3320                         break; }
3321
3322                         case 3: {
3323                                 NDR_CHECK(ndr_pull_samr_UserInfo3(ndr, NDR_SCALARS, &r->info3));
3324                         break; }
3325
3326                         case 4: {
3327                                 NDR_CHECK(ndr_pull_samr_UserInfo4(ndr, NDR_SCALARS, &r->info4));
3328                         break; }
3329
3330                         case 5: {
3331                                 NDR_CHECK(ndr_pull_samr_UserInfo5(ndr, NDR_SCALARS, &r->info5));
3332                         break; }
3333
3334                         case 6: {
3335                                 NDR_CHECK(ndr_pull_samr_UserInfo6(ndr, NDR_SCALARS, &r->info6));
3336                         break; }
3337
3338                         case 7: {
3339                                 NDR_CHECK(ndr_pull_samr_UserInfo7(ndr, NDR_SCALARS, &r->info7));
3340                         break; }
3341
3342                         case 8: {
3343                                 NDR_CHECK(ndr_pull_samr_UserInfo8(ndr, NDR_SCALARS, &r->info8));
3344                         break; }
3345
3346                         case 9: {
3347                                 NDR_CHECK(ndr_pull_samr_UserInfo9(ndr, NDR_SCALARS, &r->info9));
3348                         break; }
3349
3350                         case 10: {
3351                                 NDR_CHECK(ndr_pull_samr_UserInfo10(ndr, NDR_SCALARS, &r->info10));
3352                         break; }
3353
3354                         case 11: {
3355                                 NDR_CHECK(ndr_pull_samr_UserInfo11(ndr, NDR_SCALARS, &r->info11));
3356                         break; }
3357
3358                         case 12: {
3359                                 NDR_CHECK(ndr_pull_samr_UserInfo12(ndr, NDR_SCALARS, &r->info12));
3360                         break; }
3361
3362                         case 13: {
3363                                 NDR_CHECK(ndr_pull_samr_UserInfo13(ndr, NDR_SCALARS, &r->info13));
3364                         break; }
3365
3366                         case 14: {
3367                                 NDR_CHECK(ndr_pull_samr_UserInfo14(ndr, NDR_SCALARS, &r->info14));
3368                         break; }
3369
3370                         case 16: {
3371                                 NDR_CHECK(ndr_pull_samr_UserInfo16(ndr, NDR_SCALARS, &r->info16));
3372                         break; }
3373
3374                         case 17: {
3375                                 NDR_CHECK(ndr_pull_samr_UserInfo17(ndr, NDR_SCALARS, &r->info17));
3376                         break; }
3377
3378                         case 18: {
3379                                 NDR_CHECK(ndr_pull_samr_UserInfo18(ndr, NDR_SCALARS, &r->info18));
3380                         break; }
3381
3382                         case 20: {
3383                                 NDR_CHECK(ndr_pull_samr_UserInfo20(ndr, NDR_SCALARS, &r->info20));
3384                         break; }
3385
3386                         case 21: {
3387                                 NDR_CHECK(ndr_pull_samr_UserInfo21(ndr, NDR_SCALARS, &r->info21));
3388                         break; }
3389
3390                         case 23: {
3391                                 NDR_CHECK(ndr_pull_samr_UserInfo23(ndr, NDR_SCALARS, &r->info23));
3392                         break; }
3393
3394                         case 24: {
3395                                 NDR_CHECK(ndr_pull_samr_UserInfo24(ndr, NDR_SCALARS, &r->info24));
3396                         break; }
3397
3398                         case 25: {
3399                                 NDR_CHECK(ndr_pull_samr_UserInfo25(ndr, NDR_SCALARS, &r->info25));
3400                         break; }
3401
3402                         case 26: {
3403                                 NDR_CHECK(ndr_pull_samr_UserInfo26(ndr, NDR_SCALARS, &r->info26));
3404                         break; }
3405
3406                         default:
3407                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3408                 }
3409         }
3410         if (ndr_flags & NDR_BUFFERS) {
3411                 switch (level) {
3412                         case 1:
3413                                 NDR_CHECK(ndr_pull_samr_UserInfo1(ndr, NDR_BUFFERS, &r->info1));
3414                         break;
3415
3416                         case 2:
3417                                 NDR_CHECK(ndr_pull_samr_UserInfo2(ndr, NDR_BUFFERS, &r->info2));
3418                         break;
3419
3420                         case 3:
3421                                 NDR_CHECK(ndr_pull_samr_UserInfo3(ndr, NDR_BUFFERS, &r->info3));
3422                         break;
3423
3424                         case 4:
3425                                 NDR_CHECK(ndr_pull_samr_UserInfo4(ndr, NDR_BUFFERS, &r->info4));
3426                         break;
3427
3428                         case 5:
3429                                 NDR_CHECK(ndr_pull_samr_UserInfo5(ndr, NDR_BUFFERS, &r->info5));
3430                         break;
3431
3432                         case 6:
3433                                 NDR_CHECK(ndr_pull_samr_UserInfo6(ndr, NDR_BUFFERS, &r->info6));
3434                         break;
3435
3436                         case 7:
3437                                 NDR_CHECK(ndr_pull_samr_UserInfo7(ndr, NDR_BUFFERS, &r->info7));
3438                         break;
3439
3440                         case 8:
3441                                 NDR_CHECK(ndr_pull_samr_UserInfo8(ndr, NDR_BUFFERS, &r->info8));
3442                         break;
3443
3444                         case 9:
3445                         break;
3446
3447                         case 10:
3448                                 NDR_CHECK(ndr_pull_samr_UserInfo10(ndr, NDR_BUFFERS, &r->info10));
3449                         break;
3450
3451                         case 11:
3452                                 NDR_CHECK(ndr_pull_samr_UserInfo11(ndr, NDR_BUFFERS, &r->info11));
3453                         break;
3454
3455                         case 12:
3456                                 NDR_CHECK(ndr_pull_samr_UserInfo12(ndr, NDR_BUFFERS, &r->info12));
3457                         break;
3458
3459                         case 13:
3460                                 NDR_CHECK(ndr_pull_samr_UserInfo13(ndr, NDR_BUFFERS, &r->info13));
3461                         break;
3462
3463                         case 14:
3464                                 NDR_CHECK(ndr_pull_samr_UserInfo14(ndr, NDR_BUFFERS, &r->info14));
3465                         break;
3466
3467                         case 16:
3468                         break;
3469
3470                         case 17:
3471                         break;
3472
3473                         case 18:
3474                         break;
3475
3476                         case 20:
3477                                 NDR_CHECK(ndr_pull_samr_UserInfo20(ndr, NDR_BUFFERS, &r->info20));
3478                         break;
3479
3480                         case 21:
3481                                 NDR_CHECK(ndr_pull_samr_UserInfo21(ndr, NDR_BUFFERS, &r->info21));
3482                         break;
3483
3484                         case 23:
3485                                 NDR_CHECK(ndr_pull_samr_UserInfo23(ndr, NDR_BUFFERS, &r->info23));
3486                         break;
3487
3488                         case 24:
3489                         break;
3490
3491                         case 25:
3492                                 NDR_CHECK(ndr_pull_samr_UserInfo25(ndr, NDR_BUFFERS, &r->info25));
3493                         break;
3494
3495                         case 26:
3496                         break;
3497
3498                         default:
3499                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3500                 }
3501         }
3502         return NDR_ERR_SUCCESS;
3503 }
3504
3505 _PUBLIC_ void ndr_print_samr_UserInfo(struct ndr_print *ndr, const char *name, const union samr_UserInfo *r)
3506 {
3507         int level;
3508         level = ndr_print_get_switch_value(ndr, r);
3509         ndr_print_union(ndr, name, level, "samr_UserInfo");
3510         switch (level) {
3511                 case 1:
3512                         ndr_print_samr_UserInfo1(ndr, "info1", &r->info1);
3513                 break;
3514
3515                 case 2:
3516                         ndr_print_samr_UserInfo2(ndr, "info2", &r->info2);
3517                 break;
3518
3519                 case 3:
3520                         ndr_print_samr_UserInfo3(ndr, "info3", &r->info3);
3521                 break;
3522
3523                 case 4:
3524                         ndr_print_samr_UserInfo4(ndr, "info4", &r->info4);
3525                 break;
3526
3527                 case 5:
3528                         ndr_print_samr_UserInfo5(ndr, "info5", &r->info5);
3529                 break;
3530
3531                 case 6:
3532                         ndr_print_samr_UserInfo6(ndr, "info6", &r->info6);
3533                 break;
3534
3535                 case 7:
3536                         ndr_print_samr_UserInfo7(ndr, "info7", &r->info7);
3537                 break;
3538
3539                 case 8:
3540                         ndr_print_samr_UserInfo8(ndr, "info8", &r->info8);
3541                 break;
3542
3543                 case 9:
3544                         ndr_print_samr_UserInfo9(ndr, "info9", &r->info9);
3545                 break;
3546
3547                 case 10:
3548                         ndr_print_samr_UserInfo10(ndr, "info10", &r->info10);
3549                 break;
3550
3551                 case 11:
3552                         ndr_print_samr_UserInfo11(ndr, "info11", &r->info11);
3553                 break;
3554
3555                 case 12:
3556                         ndr_print_samr_UserInfo12(ndr, "info12", &r->info12);
3557                 break;
3558
3559                 case 13:
3560                         ndr_print_samr_UserInfo13(ndr, "info13", &r->info13);
3561                 break;
3562
3563                 case 14:
3564                         ndr_print_samr_UserInfo14(ndr, "info14", &r->info14);
3565                 break;
3566
3567                 case 16:
3568                         ndr_print_samr_UserInfo16(ndr, "info16", &r->info16);
3569                 break;
3570
3571                 case 17:
3572                         ndr_print_samr_UserInfo17(ndr, "info17", &r->info17);
3573                 break;
3574
3575                 case 18:
3576                         ndr_print_samr_UserInfo18(ndr, "info18", &r->info18);
3577                 break;
3578
3579                 case 20:
3580                         ndr_print_samr_UserInfo20(ndr, "info20", &r->info20);
3581                 break;
3582
3583                 case 21:
3584                         ndr_print_samr_UserInfo21(ndr, "info21", &r->info21);
3585                 break;
3586
3587                 case 23:
3588                         ndr_print_samr_UserInfo23(ndr, "info23", &r->info23);
3589                 break;
3590
3591                 case 24:
3592                         ndr_print_samr_UserInfo24(ndr, "info24", &r->info24);
3593                 break;
3594
3595                 case 25:
3596                         ndr_print_samr_UserInfo25(ndr, "info25", &r->info25);
3597                 break;
3598
3599                 case 26:
3600                         ndr_print_samr_UserInfo26(ndr, "info26", &r->info26);
3601                 break;
3602
3603                 default:
3604                         ndr_print_bad_level(ndr, name, level);
3605         }
3606 }
3607
3608 _PUBLIC_ enum ndr_err_code ndr_push_samr_RidWithAttribute(struct ndr_push *ndr, int ndr_flags, const struct samr_RidWithAttribute *r)
3609 {
3610         if (ndr_flags & NDR_SCALARS) {
3611                 NDR_CHECK(ndr_push_align(ndr, 4));
3612                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
3613                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
3614         }
3615         if (ndr_flags & NDR_BUFFERS) {
3616         }
3617         return NDR_ERR_SUCCESS;
3618 }
3619
3620 _PUBLIC_ enum ndr_err_code ndr_pull_samr_RidWithAttribute(struct ndr_pull *ndr, int ndr_flags, struct samr_RidWithAttribute *r)
3621 {
3622         if (ndr_flags & NDR_SCALARS) {
3623                 NDR_CHECK(ndr_pull_align(ndr, 4));
3624                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
3625                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
3626         }
3627         if (ndr_flags & NDR_BUFFERS) {
3628         }
3629         return NDR_ERR_SUCCESS;
3630 }
3631
3632 _PUBLIC_ void ndr_print_samr_RidWithAttribute(struct ndr_print *ndr, const char *name, const struct samr_RidWithAttribute *r)
3633 {
3634         ndr_print_struct(ndr, name, "samr_RidWithAttribute");
3635         ndr->depth++;
3636         ndr_print_uint32(ndr, "rid", r->rid);
3637         ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
3638         ndr->depth--;
3639 }
3640
3641 _PUBLIC_ enum ndr_err_code ndr_push_samr_RidWithAttributeArray(struct ndr_push *ndr, int ndr_flags, const struct samr_RidWithAttributeArray *r)
3642 {
3643         uint32_t cntr_rids_1;
3644         if (ndr_flags & NDR_SCALARS) {
3645                 NDR_CHECK(ndr_push_align(ndr, 4));
3646                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
3647                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
3648         }
3649         if (ndr_flags & NDR_BUFFERS) {
3650                 if (r->rids) {
3651                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
3652                         for (cntr_rids_1 = 0; cntr_rids_1 < r->count; cntr_rids_1++) {
3653                                 NDR_CHECK(ndr_push_samr_RidWithAttribute(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
3654                         }
3655                 }
3656         }
3657         return NDR_ERR_SUCCESS;
3658 }
3659
3660 _PUBLIC_ enum ndr_err_code ndr_pull_samr_RidWithAttributeArray(struct ndr_pull *ndr, int ndr_flags, struct samr_RidWithAttributeArray *r)
3661 {
3662         uint32_t _ptr_rids;
3663         uint32_t cntr_rids_1;
3664         TALLOC_CTX *_mem_save_rids_0;
3665         TALLOC_CTX *_mem_save_rids_1;
3666         if (ndr_flags & NDR_SCALARS) {
3667                 NDR_CHECK(ndr_pull_align(ndr, 4));
3668                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
3669                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
3670                 if (_ptr_rids) {
3671                         NDR_PULL_ALLOC(ndr, r->rids);
3672                 } else {
3673                         r->rids = NULL;
3674                 }
3675         }
3676         if (ndr_flags & NDR_BUFFERS) {
3677                 if (r->rids) {
3678                         _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
3679                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
3680                         NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
3681                         NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
3682                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
3683                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
3684                         for (cntr_rids_1 = 0; cntr_rids_1 < r->count; cntr_rids_1++) {
3685                                 NDR_CHECK(ndr_pull_samr_RidWithAttribute(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
3686                         }
3687                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
3688                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
3689                 }
3690                 if (r->rids) {
3691                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->count));
3692                 }
3693         }
3694         return NDR_ERR_SUCCESS;
3695 }
3696
3697 _PUBLIC_ void ndr_print_samr_RidWithAttributeArray(struct ndr_print *ndr, const char *name, const struct samr_RidWithAttributeArray *r)
3698 {
3699         uint32_t cntr_rids_1;
3700         ndr_print_struct(ndr, name, "samr_RidWithAttributeArray");
3701         ndr->depth++;
3702         ndr_print_uint32(ndr, "count", r->count);
3703         ndr_print_ptr(ndr, "rids", r->rids);
3704         ndr->depth++;
3705         if (r->rids) {
3706                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->count);
3707                 ndr->depth++;
3708                 for (cntr_rids_1=0;cntr_rids_1<r->count;cntr_rids_1++) {
3709                         char *idx_1=NULL;
3710                         if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
3711                                 ndr_print_samr_RidWithAttribute(ndr, "rids", &r->rids[cntr_rids_1]);
3712                                 free(idx_1);
3713                         }
3714                 }
3715                 ndr->depth--;
3716         }
3717         ndr->depth--;
3718         ndr->depth--;
3719 }
3720
3721 static enum ndr_err_code ndr_push_samr_DispEntryGeneral(struct ndr_push *ndr, int ndr_flags, const struct samr_DispEntryGeneral *r)
3722 {
3723         if (ndr_flags & NDR_SCALARS) {
3724                 NDR_CHECK(ndr_push_align(ndr, 4));
3725                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->idx));
3726                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
3727                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
3728                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
3729                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
3730                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
3731         }
3732         if (ndr_flags & NDR_BUFFERS) {
3733                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
3734                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
3735                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
3736         }
3737         return NDR_ERR_SUCCESS;
3738 }
3739
3740 static enum ndr_err_code ndr_pull_samr_DispEntryGeneral(struct ndr_pull *ndr, int ndr_flags, struct samr_DispEntryGeneral *r)
3741 {
3742         if (ndr_flags & NDR_SCALARS) {
3743                 NDR_CHECK(ndr_pull_align(ndr, 4));
3744                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->idx));
3745                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
3746                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
3747                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
3748                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
3749                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
3750         }
3751         if (ndr_flags & NDR_BUFFERS) {
3752                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
3753                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
3754                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
3755         }
3756         return NDR_ERR_SUCCESS;
3757 }
3758
3759 _PUBLIC_ void ndr_print_samr_DispEntryGeneral(struct ndr_print *ndr, const char *name, const struct samr_DispEntryGeneral *r)
3760 {
3761         ndr_print_struct(ndr, name, "samr_DispEntryGeneral");
3762         ndr->depth++;
3763         ndr_print_uint32(ndr, "idx", r->idx);
3764         ndr_print_uint32(ndr, "rid", r->rid);
3765         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
3766         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
3767         ndr_print_lsa_String(ndr, "description", &r->description);
3768         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
3769         ndr->depth--;
3770 }
3771
3772 static enum ndr_err_code ndr_push_samr_DispInfoGeneral(struct ndr_push *ndr, int ndr_flags, const struct samr_DispInfoGeneral *r)
3773 {
3774         uint32_t cntr_entries_1;
3775         if (ndr_flags & NDR_SCALARS) {
3776                 NDR_CHECK(ndr_push_align(ndr, 4));
3777                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
3778                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
3779         }
3780         if (ndr_flags & NDR_BUFFERS) {
3781                 if (r->entries) {
3782                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
3783                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
3784                                 NDR_CHECK(ndr_push_samr_DispEntryGeneral(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
3785                         }
3786                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
3787                                 NDR_CHECK(ndr_push_samr_DispEntryGeneral(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
3788                         }
3789                 }
3790         }
3791         return NDR_ERR_SUCCESS;
3792 }
3793
3794 static enum ndr_err_code ndr_pull_samr_DispInfoGeneral(struct ndr_pull *ndr, int ndr_flags, struct samr_DispInfoGeneral *r)
3795 {
3796         uint32_t _ptr_entries;
3797         uint32_t cntr_entries_1;
3798         TALLOC_CTX *_mem_save_entries_0;
3799         TALLOC_CTX *_mem_save_entries_1;
3800         if (ndr_flags & NDR_SCALARS) {
3801                 NDR_CHECK(ndr_pull_align(ndr, 4));
3802                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
3803                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
3804                 if (_ptr_entries) {
3805                         NDR_PULL_ALLOC(ndr, r->entries);
3806                 } else {
3807                         r->entries = NULL;
3808                 }
3809         }
3810         if (ndr_flags & NDR_BUFFERS) {
3811                 if (r->entries) {
3812                         _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
3813                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
3814                         NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
3815                         NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
3816                         _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
3817                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
3818                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
3819                                 NDR_CHECK(ndr_pull_samr_DispEntryGeneral(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
3820                         }
3821                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
3822                                 NDR_CHECK(ndr_pull_samr_DispEntryGeneral(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
3823                         }
3824                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
3825                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
3826                 }
3827                 if (r->entries) {
3828                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
3829                 }
3830         }
3831         return NDR_ERR_SUCCESS;
3832 }
3833
3834 _PUBLIC_ void ndr_print_samr_DispInfoGeneral(struct ndr_print *ndr, const char *name, const struct samr_DispInfoGeneral *r)
3835 {
3836         uint32_t cntr_entries_1;
3837         ndr_print_struct(ndr, name, "samr_DispInfoGeneral");
3838         ndr->depth++;
3839         ndr_print_uint32(ndr, "count", r->count);
3840         ndr_print_ptr(ndr, "entries", r->entries);
3841         ndr->depth++;
3842         if (r->entries) {
3843                 ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
3844                 ndr->depth++;
3845                 for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
3846                         char *idx_1=NULL;
3847                         if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
3848                                 ndr_print_samr_DispEntryGeneral(ndr, "entries", &r->entries[cntr_entries_1]);
3849                                 free(idx_1);
3850                         }
3851                 }
3852                 ndr->depth--;
3853         }
3854         ndr->depth--;
3855         ndr->depth--;
3856 }
3857
3858 static enum ndr_err_code ndr_push_samr_DispEntryFull(struct ndr_push *ndr, int ndr_flags, const struct samr_DispEntryFull *r)
3859 {
3860         if (ndr_flags & NDR_SCALARS) {
3861                 NDR_CHECK(ndr_push_align(ndr, 4));
3862                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->idx));
3863                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
3864                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
3865                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
3866                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
3867         }
3868         if (ndr_flags & NDR_BUFFERS) {
3869                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
3870                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
3871         }
3872         return NDR_ERR_SUCCESS;
3873 }
3874
3875 static enum ndr_err_code ndr_pull_samr_DispEntryFull(struct ndr_pull *ndr, int ndr_flags, struct samr_DispEntryFull *r)
3876 {
3877         if (ndr_flags & NDR_SCALARS) {
3878                 NDR_CHECK(ndr_pull_align(ndr, 4));
3879                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->idx));
3880                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
3881                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
3882                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
3883                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
3884         }
3885         if (ndr_flags & NDR_BUFFERS) {
3886                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
3887                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
3888         }
3889         return NDR_ERR_SUCCESS;
3890 }
3891
3892 _PUBLIC_ void ndr_print_samr_DispEntryFull(struct ndr_print *ndr, const char *name, const struct samr_DispEntryFull *r)
3893 {
3894         ndr_print_struct(ndr, name, "samr_DispEntryFull");
3895         ndr->depth++;
3896         ndr_print_uint32(ndr, "idx", r->idx);
3897         ndr_print_uint32(ndr, "rid", r->rid);
3898         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
3899         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
3900         ndr_print_lsa_String(ndr, "description", &r->description);
3901         ndr->depth--;
3902 }
3903
3904 static enum ndr_err_code ndr_push_samr_DispInfoFull(struct ndr_push *ndr, int ndr_flags, const struct samr_DispInfoFull *r)
3905 {
3906         uint32_t cntr_entries_1;
3907         if (ndr_flags & NDR_SCALARS) {
3908                 NDR_CHECK(ndr_push_align(ndr, 4));
3909                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
3910                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
3911         }
3912         if (ndr_flags & NDR_BUFFERS) {
3913                 if (r->entries) {
3914                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
3915                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
3916                                 NDR_CHECK(ndr_push_samr_DispEntryFull(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
3917                         }
3918                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
3919                                 NDR_CHECK(ndr_push_samr_DispEntryFull(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
3920                         }
3921                 }
3922         }
3923         return NDR_ERR_SUCCESS;
3924 }
3925
3926 static enum ndr_err_code ndr_pull_samr_DispInfoFull(struct ndr_pull *ndr, int ndr_flags, struct samr_DispInfoFull *r)
3927 {
3928         uint32_t _ptr_entries;
3929         uint32_t cntr_entries_1;
3930         TALLOC_CTX *_mem_save_entries_0;
3931         TALLOC_CTX *_mem_save_entries_1;
3932         if (ndr_flags & NDR_SCALARS) {
3933                 NDR_CHECK(ndr_pull_align(ndr, 4));
3934                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
3935                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
3936                 if (_ptr_entries) {
3937                         NDR_PULL_ALLOC(ndr, r->entries);
3938                 } else {
3939                         r->entries = NULL;
3940                 }
3941         }
3942         if (ndr_flags & NDR_BUFFERS) {
3943                 if (r->entries) {
3944                         _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
3945                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
3946                         NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
3947                         NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
3948                         _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
3949                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
3950                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
3951                                 NDR_CHECK(ndr_pull_samr_DispEntryFull(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
3952                         }
3953                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
3954                                 NDR_CHECK(ndr_pull_samr_DispEntryFull(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
3955                         }
3956                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
3957                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
3958                 }
3959                 if (r->entries) {
3960                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
3961                 }
3962         }
3963         return NDR_ERR_SUCCESS;
3964 }
3965
3966 _PUBLIC_ void ndr_print_samr_DispInfoFull(struct ndr_print *ndr, const char *name, const struct samr_DispInfoFull *r)
3967 {
3968         uint32_t cntr_entries_1;
3969         ndr_print_struct(ndr, name, "samr_DispInfoFull");
3970         ndr->depth++;
3971         ndr_print_uint32(ndr, "count", r->count);
3972         ndr_print_ptr(ndr, "entries", r->entries);
3973         ndr->depth++;
3974         if (r->entries) {
3975                 ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
3976                 ndr->depth++;
3977                 for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
3978                         char *idx_1=NULL;
3979                         if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
3980                                 ndr_print_samr_DispEntryFull(ndr, "entries", &r->entries[cntr_entries_1]);
3981                                 free(idx_1);
3982                         }
3983                 }
3984                 ndr->depth--;
3985         }
3986         ndr->depth--;
3987         ndr->depth--;
3988 }
3989
3990 static enum ndr_err_code ndr_push_samr_DispEntryFullGroup(struct ndr_push *ndr, int ndr_flags, const struct samr_DispEntryFullGroup *r)
3991 {
3992         if (ndr_flags & NDR_SCALARS) {
3993                 NDR_CHECK(ndr_push_align(ndr, 4));
3994                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->idx));
3995                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
3996                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->acct_flags));
3997                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
3998                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
3999         }
4000         if (ndr_flags & NDR_BUFFERS) {
4001                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
4002                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
4003         }
4004         return NDR_ERR_SUCCESS;
4005 }
4006
4007 static enum ndr_err_code ndr_pull_samr_DispEntryFullGroup(struct ndr_pull *ndr, int ndr_flags, struct samr_DispEntryFullGroup *r)
4008 {
4009         if (ndr_flags & NDR_SCALARS) {
4010                 NDR_CHECK(ndr_pull_align(ndr, 4));
4011                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->idx));
4012                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4013                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->acct_flags));
4014                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
4015                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
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         }
4021         return NDR_ERR_SUCCESS;
4022 }
4023
4024 _PUBLIC_ void ndr_print_samr_DispEntryFullGroup(struct ndr_print *ndr, const char *name, const struct samr_DispEntryFullGroup *r)
4025 {
4026         ndr_print_struct(ndr, name, "samr_DispEntryFullGroup");
4027         ndr->depth++;
4028         ndr_print_uint32(ndr, "idx", r->idx);
4029         ndr_print_uint32(ndr, "rid", r->rid);
4030         ndr_print_samr_GroupAttrs(ndr, "acct_flags", r->acct_flags);
4031         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
4032         ndr_print_lsa_String(ndr, "description", &r->description);
4033         ndr->depth--;
4034 }
4035
4036 static enum ndr_err_code ndr_push_samr_DispInfoFullGroups(struct ndr_push *ndr, int ndr_flags, const struct samr_DispInfoFullGroups *r)
4037 {
4038         uint32_t cntr_entries_1;
4039         if (ndr_flags & NDR_SCALARS) {
4040                 NDR_CHECK(ndr_push_align(ndr, 4));
4041                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
4042                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
4043         }
4044         if (ndr_flags & NDR_BUFFERS) {
4045                 if (r->entries) {
4046                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
4047                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4048                                 NDR_CHECK(ndr_push_samr_DispEntryFullGroup(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
4049                         }
4050                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4051                                 NDR_CHECK(ndr_push_samr_DispEntryFullGroup(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
4052                         }
4053                 }
4054         }
4055         return NDR_ERR_SUCCESS;
4056 }
4057
4058 static enum ndr_err_code ndr_pull_samr_DispInfoFullGroups(struct ndr_pull *ndr, int ndr_flags, struct samr_DispInfoFullGroups *r)
4059 {
4060         uint32_t _ptr_entries;
4061         uint32_t cntr_entries_1;
4062         TALLOC_CTX *_mem_save_entries_0;
4063         TALLOC_CTX *_mem_save_entries_1;
4064         if (ndr_flags & NDR_SCALARS) {
4065                 NDR_CHECK(ndr_pull_align(ndr, 4));
4066                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
4067                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
4068                 if (_ptr_entries) {
4069                         NDR_PULL_ALLOC(ndr, r->entries);
4070                 } else {
4071                         r->entries = NULL;
4072                 }
4073         }
4074         if (ndr_flags & NDR_BUFFERS) {
4075                 if (r->entries) {
4076                         _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
4077                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
4078                         NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
4079                         NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
4080                         _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
4081                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
4082                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4083                                 NDR_CHECK(ndr_pull_samr_DispEntryFullGroup(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
4084                         }
4085                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4086                                 NDR_CHECK(ndr_pull_samr_DispEntryFullGroup(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
4087                         }
4088                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
4089                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
4090                 }
4091                 if (r->entries) {
4092                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
4093                 }
4094         }
4095         return NDR_ERR_SUCCESS;
4096 }
4097
4098 _PUBLIC_ void ndr_print_samr_DispInfoFullGroups(struct ndr_print *ndr, const char *name, const struct samr_DispInfoFullGroups *r)
4099 {
4100         uint32_t cntr_entries_1;
4101         ndr_print_struct(ndr, name, "samr_DispInfoFullGroups");
4102         ndr->depth++;
4103         ndr_print_uint32(ndr, "count", r->count);
4104         ndr_print_ptr(ndr, "entries", r->entries);
4105         ndr->depth++;
4106         if (r->entries) {
4107                 ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
4108                 ndr->depth++;
4109                 for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
4110                         char *idx_1=NULL;
4111                         if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
4112                                 ndr_print_samr_DispEntryFullGroup(ndr, "entries", &r->entries[cntr_entries_1]);
4113                                 free(idx_1);
4114                         }
4115                 }
4116                 ndr->depth--;
4117         }
4118         ndr->depth--;
4119         ndr->depth--;
4120 }
4121
4122 static enum ndr_err_code ndr_push_samr_DispEntryAscii(struct ndr_push *ndr, int ndr_flags, const struct samr_DispEntryAscii *r)
4123 {
4124         if (ndr_flags & NDR_SCALARS) {
4125                 NDR_CHECK(ndr_push_align(ndr, 4));
4126                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->idx));
4127                 NDR_CHECK(ndr_push_lsa_AsciiStringLarge(ndr, NDR_SCALARS, &r->account_name));
4128         }
4129         if (ndr_flags & NDR_BUFFERS) {
4130                 NDR_CHECK(ndr_push_lsa_AsciiStringLarge(ndr, NDR_BUFFERS, &r->account_name));
4131         }
4132         return NDR_ERR_SUCCESS;
4133 }
4134
4135 static enum ndr_err_code ndr_pull_samr_DispEntryAscii(struct ndr_pull *ndr, int ndr_flags, struct samr_DispEntryAscii *r)
4136 {
4137         if (ndr_flags & NDR_SCALARS) {
4138                 NDR_CHECK(ndr_pull_align(ndr, 4));
4139                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->idx));
4140                 NDR_CHECK(ndr_pull_lsa_AsciiStringLarge(ndr, NDR_SCALARS, &r->account_name));
4141         }
4142         if (ndr_flags & NDR_BUFFERS) {
4143                 NDR_CHECK(ndr_pull_lsa_AsciiStringLarge(ndr, NDR_BUFFERS, &r->account_name));
4144         }
4145         return NDR_ERR_SUCCESS;
4146 }
4147
4148 _PUBLIC_ void ndr_print_samr_DispEntryAscii(struct ndr_print *ndr, const char *name, const struct samr_DispEntryAscii *r)
4149 {
4150         ndr_print_struct(ndr, name, "samr_DispEntryAscii");
4151         ndr->depth++;
4152         ndr_print_uint32(ndr, "idx", r->idx);
4153         ndr_print_lsa_AsciiStringLarge(ndr, "account_name", &r->account_name);
4154         ndr->depth--;
4155 }
4156
4157 static enum ndr_err_code ndr_push_samr_DispInfoAscii(struct ndr_push *ndr, int ndr_flags, const struct samr_DispInfoAscii *r)
4158 {
4159         uint32_t cntr_entries_1;
4160         if (ndr_flags & NDR_SCALARS) {
4161                 NDR_CHECK(ndr_push_align(ndr, 4));
4162                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
4163                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
4164         }
4165         if (ndr_flags & NDR_BUFFERS) {
4166                 if (r->entries) {
4167                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
4168                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4169                                 NDR_CHECK(ndr_push_samr_DispEntryAscii(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
4170                         }
4171                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4172                                 NDR_CHECK(ndr_push_samr_DispEntryAscii(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
4173                         }
4174                 }
4175         }
4176         return NDR_ERR_SUCCESS;
4177 }
4178
4179 static enum ndr_err_code ndr_pull_samr_DispInfoAscii(struct ndr_pull *ndr, int ndr_flags, struct samr_DispInfoAscii *r)
4180 {
4181         uint32_t _ptr_entries;
4182         uint32_t cntr_entries_1;
4183         TALLOC_CTX *_mem_save_entries_0;
4184         TALLOC_CTX *_mem_save_entries_1;
4185         if (ndr_flags & NDR_SCALARS) {
4186                 NDR_CHECK(ndr_pull_align(ndr, 4));
4187                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
4188                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
4189                 if (_ptr_entries) {
4190                         NDR_PULL_ALLOC(ndr, r->entries);
4191                 } else {
4192                         r->entries = NULL;
4193                 }
4194         }
4195         if (ndr_flags & NDR_BUFFERS) {
4196                 if (r->entries) {
4197                         _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
4198                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
4199                         NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
4200                         NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
4201                         _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
4202                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
4203                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4204                                 NDR_CHECK(ndr_pull_samr_DispEntryAscii(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
4205                         }
4206                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
4207                                 NDR_CHECK(ndr_pull_samr_DispEntryAscii(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
4208                         }
4209                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
4210                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
4211                 }
4212                 if (r->entries) {
4213                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
4214                 }
4215         }
4216         return NDR_ERR_SUCCESS;
4217 }
4218
4219 _PUBLIC_ void ndr_print_samr_DispInfoAscii(struct ndr_print *ndr, const char *name, const struct samr_DispInfoAscii *r)
4220 {
4221         uint32_t cntr_entries_1;
4222         ndr_print_struct(ndr, name, "samr_DispInfoAscii");
4223         ndr->depth++;
4224         ndr_print_uint32(ndr, "count", r->count);
4225         ndr_print_ptr(ndr, "entries", r->entries);
4226         ndr->depth++;
4227         if (r->entries) {
4228                 ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
4229                 ndr->depth++;
4230                 for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
4231                         char *idx_1=NULL;
4232                         if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
4233                                 ndr_print_samr_DispEntryAscii(ndr, "entries", &r->entries[cntr_entries_1]);
4234                                 free(idx_1);
4235                         }
4236                 }
4237                 ndr->depth--;
4238         }
4239         ndr->depth--;
4240         ndr->depth--;
4241 }
4242
4243 static enum ndr_err_code ndr_push_samr_DispInfo(struct ndr_push *ndr, int ndr_flags, const union samr_DispInfo *r)
4244 {
4245         if (ndr_flags & NDR_SCALARS) {
4246                 int level = ndr_push_get_switch_value(ndr, r);
4247                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
4248                 switch (level) {
4249                         case 1: {
4250                                 NDR_CHECK(ndr_push_samr_DispInfoGeneral(ndr, NDR_SCALARS, &r->info1));
4251                         break; }
4252
4253                         case 2: {
4254                                 NDR_CHECK(ndr_push_samr_DispInfoFull(ndr, NDR_SCALARS, &r->info2));
4255                         break; }
4256
4257                         case 3: {
4258                                 NDR_CHECK(ndr_push_samr_DispInfoFullGroups(ndr, NDR_SCALARS, &r->info3));
4259                         break; }
4260
4261                         case 4: {
4262                                 NDR_CHECK(ndr_push_samr_DispInfoAscii(ndr, NDR_SCALARS, &r->info4));
4263                         break; }
4264
4265                         case 5: {
4266                                 NDR_CHECK(ndr_push_samr_DispInfoAscii(ndr, NDR_SCALARS, &r->info5));
4267                         break; }
4268
4269                         default:
4270                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4271                 }
4272         }
4273         if (ndr_flags & NDR_BUFFERS) {
4274                 int level = ndr_push_get_switch_value(ndr, r);
4275                 switch (level) {
4276                         case 1:
4277                                 NDR_CHECK(ndr_push_samr_DispInfoGeneral(ndr, NDR_BUFFERS, &r->info1));
4278                         break;
4279
4280                         case 2:
4281                                 NDR_CHECK(ndr_push_samr_DispInfoFull(ndr, NDR_BUFFERS, &r->info2));
4282                         break;
4283
4284                         case 3:
4285                                 NDR_CHECK(ndr_push_samr_DispInfoFullGroups(ndr, NDR_BUFFERS, &r->info3));
4286                         break;
4287
4288                         case 4:
4289                                 NDR_CHECK(ndr_push_samr_DispInfoAscii(ndr, NDR_BUFFERS, &r->info4));
4290                         break;
4291
4292                         case 5:
4293                                 NDR_CHECK(ndr_push_samr_DispInfoAscii(ndr, NDR_BUFFERS, &r->info5));
4294                         break;
4295
4296                         default:
4297                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4298                 }
4299         }
4300         return NDR_ERR_SUCCESS;
4301 }
4302
4303 static enum ndr_err_code ndr_pull_samr_DispInfo(struct ndr_pull *ndr, int ndr_flags, union samr_DispInfo *r)
4304 {
4305         int level;
4306         uint16_t _level;
4307         level = ndr_pull_get_switch_value(ndr, r);
4308         if (ndr_flags & NDR_SCALARS) {
4309                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4310                 if (_level != level) {
4311                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4312                 }
4313                 switch (level) {
4314                         case 1: {
4315                                 NDR_CHECK(ndr_pull_samr_DispInfoGeneral(ndr, NDR_SCALARS, &r->info1));
4316                         break; }
4317
4318                         case 2: {
4319                                 NDR_CHECK(ndr_pull_samr_DispInfoFull(ndr, NDR_SCALARS, &r->info2));
4320                         break; }
4321
4322                         case 3: {
4323                                 NDR_CHECK(ndr_pull_samr_DispInfoFullGroups(ndr, NDR_SCALARS, &r->info3));
4324                         break; }
4325
4326                         case 4: {
4327                                 NDR_CHECK(ndr_pull_samr_DispInfoAscii(ndr, NDR_SCALARS, &r->info4));
4328                         break; }
4329
4330                         case 5: {
4331                                 NDR_CHECK(ndr_pull_samr_DispInfoAscii(ndr, NDR_SCALARS, &r->info5));
4332                         break; }
4333
4334                         default:
4335                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4336                 }
4337         }
4338         if (ndr_flags & NDR_BUFFERS) {
4339                 switch (level) {
4340                         case 1:
4341                                 NDR_CHECK(ndr_pull_samr_DispInfoGeneral(ndr, NDR_BUFFERS, &r->info1));
4342                         break;
4343
4344                         case 2:
4345                                 NDR_CHECK(ndr_pull_samr_DispInfoFull(ndr, NDR_BUFFERS, &r->info2));
4346                         break;
4347
4348                         case 3:
4349                                 NDR_CHECK(ndr_pull_samr_DispInfoFullGroups(ndr, NDR_BUFFERS, &r->info3));
4350                         break;
4351
4352                         case 4:
4353                                 NDR_CHECK(ndr_pull_samr_DispInfoAscii(ndr, NDR_BUFFERS, &r->info4));
4354                         break;
4355
4356                         case 5:
4357                                 NDR_CHECK(ndr_pull_samr_DispInfoAscii(ndr, NDR_BUFFERS, &r->info5));
4358                         break;
4359
4360                         default:
4361                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4362                 }
4363         }
4364         return NDR_ERR_SUCCESS;
4365 }
4366
4367 _PUBLIC_ void ndr_print_samr_DispInfo(struct ndr_print *ndr, const char *name, const union samr_DispInfo *r)
4368 {
4369         int level;
4370         level = ndr_print_get_switch_value(ndr, r);
4371         ndr_print_union(ndr, name, level, "samr_DispInfo");
4372         switch (level) {
4373                 case 1:
4374                         ndr_print_samr_DispInfoGeneral(ndr, "info1", &r->info1);
4375                 break;
4376
4377                 case 2:
4378                         ndr_print_samr_DispInfoFull(ndr, "info2", &r->info2);
4379                 break;
4380
4381                 case 3:
4382                         ndr_print_samr_DispInfoFullGroups(ndr, "info3", &r->info3);
4383                 break;
4384
4385                 case 4:
4386                         ndr_print_samr_DispInfoAscii(ndr, "info4", &r->info4);
4387                 break;
4388
4389                 case 5:
4390                         ndr_print_samr_DispInfoAscii(ndr, "info5", &r->info5);
4391                 break;
4392
4393                 default:
4394                         ndr_print_bad_level(ndr, name, level);
4395         }
4396 }
4397
4398 static enum ndr_err_code ndr_push_samr_PwInfo(struct ndr_push *ndr, int ndr_flags, const struct samr_PwInfo *r)
4399 {
4400         if (ndr_flags & NDR_SCALARS) {
4401                 NDR_CHECK(ndr_push_align(ndr, 4));
4402                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
4403                 NDR_CHECK(ndr_push_samr_PasswordProperties(ndr, NDR_SCALARS, r->password_properties));
4404         }
4405         if (ndr_flags & NDR_BUFFERS) {
4406         }
4407         return NDR_ERR_SUCCESS;
4408 }
4409
4410 static enum ndr_err_code ndr_pull_samr_PwInfo(struct ndr_pull *ndr, int ndr_flags, struct samr_PwInfo *r)
4411 {
4412         if (ndr_flags & NDR_SCALARS) {
4413                 NDR_CHECK(ndr_pull_align(ndr, 4));
4414                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
4415                 NDR_CHECK(ndr_pull_samr_PasswordProperties(ndr, NDR_SCALARS, &r->password_properties));
4416         }
4417         if (ndr_flags & NDR_BUFFERS) {
4418         }
4419         return NDR_ERR_SUCCESS;
4420 }
4421
4422 _PUBLIC_ void ndr_print_samr_PwInfo(struct ndr_print *ndr, const char *name, const struct samr_PwInfo *r)
4423 {
4424         ndr_print_struct(ndr, name, "samr_PwInfo");
4425         ndr->depth++;
4426         ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
4427         ndr_print_samr_PasswordProperties(ndr, "password_properties", r->password_properties);
4428         ndr->depth--;
4429 }
4430
4431 static enum ndr_err_code ndr_push_samr_ConnectVersion(struct ndr_push *ndr, int ndr_flags, enum samr_ConnectVersion r)
4432 {
4433         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
4434         return NDR_ERR_SUCCESS;
4435 }
4436
4437 static enum ndr_err_code ndr_pull_samr_ConnectVersion(struct ndr_pull *ndr, int ndr_flags, enum samr_ConnectVersion *r)
4438 {
4439         uint16_t v;
4440         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
4441         *r = v;
4442         return NDR_ERR_SUCCESS;
4443 }
4444
4445 _PUBLIC_ void ndr_print_samr_ConnectVersion(struct ndr_print *ndr, const char *name, enum samr_ConnectVersion r)
4446 {
4447         const char *val = NULL;
4448
4449         switch (r) {
4450                 case SAMR_CONNECT_PRE_W2K: val = "SAMR_CONNECT_PRE_W2K"; break;
4451                 case SAMR_CONNECT_W2K: val = "SAMR_CONNECT_W2K"; break;
4452                 case SAMR_CONNECT_AFTER_W2K: val = "SAMR_CONNECT_AFTER_W2K"; break;
4453         }
4454         ndr_print_enum(ndr, name, "ENUM", val, r);
4455 }
4456
4457 static enum ndr_err_code ndr_push_samr_ChangeReject(struct ndr_push *ndr, int ndr_flags, const struct samr_ChangeReject *r)
4458 {
4459         if (ndr_flags & NDR_SCALARS) {
4460                 NDR_CHECK(ndr_push_align(ndr, 4));
4461                 NDR_CHECK(ndr_push_samr_RejectReason(ndr, NDR_SCALARS, r->reason));
4462                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
4463                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
4464         }
4465         if (ndr_flags & NDR_BUFFERS) {
4466         }
4467         return NDR_ERR_SUCCESS;
4468 }
4469
4470 static enum ndr_err_code ndr_pull_samr_ChangeReject(struct ndr_pull *ndr, int ndr_flags, struct samr_ChangeReject *r)
4471 {
4472         if (ndr_flags & NDR_SCALARS) {
4473                 NDR_CHECK(ndr_pull_align(ndr, 4));
4474                 NDR_CHECK(ndr_pull_samr_RejectReason(ndr, NDR_SCALARS, &r->reason));
4475                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
4476                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
4477         }
4478         if (ndr_flags & NDR_BUFFERS) {
4479         }
4480         return NDR_ERR_SUCCESS;
4481 }
4482
4483 _PUBLIC_ void ndr_print_samr_ChangeReject(struct ndr_print *ndr, const char *name, const struct samr_ChangeReject *r)
4484 {
4485         ndr_print_struct(ndr, name, "samr_ChangeReject");
4486         ndr->depth++;
4487         ndr_print_samr_RejectReason(ndr, "reason", r->reason);
4488         ndr_print_uint32(ndr, "unknown1", r->unknown1);
4489         ndr_print_uint32(ndr, "unknown2", r->unknown2);
4490         ndr->depth--;
4491 }
4492
4493 static enum ndr_err_code ndr_push_samr_ConnectInfo1(struct ndr_push *ndr, int ndr_flags, const struct samr_ConnectInfo1 *r)
4494 {
4495         if (ndr_flags & NDR_SCALARS) {
4496                 NDR_CHECK(ndr_push_align(ndr, 4));
4497                 NDR_CHECK(ndr_push_samr_ConnectVersion(ndr, NDR_SCALARS, r->client_version));
4498                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
4499         }
4500         if (ndr_flags & NDR_BUFFERS) {
4501         }
4502         return NDR_ERR_SUCCESS;
4503 }
4504
4505 static enum ndr_err_code ndr_pull_samr_ConnectInfo1(struct ndr_pull *ndr, int ndr_flags, struct samr_ConnectInfo1 *r)
4506 {
4507         if (ndr_flags & NDR_SCALARS) {
4508                 NDR_CHECK(ndr_pull_align(ndr, 4));
4509                 NDR_CHECK(ndr_pull_samr_ConnectVersion(ndr, NDR_SCALARS, &r->client_version));
4510                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
4511         }
4512         if (ndr_flags & NDR_BUFFERS) {
4513         }
4514         return NDR_ERR_SUCCESS;
4515 }
4516
4517 _PUBLIC_ void ndr_print_samr_ConnectInfo1(struct ndr_print *ndr, const char *name, const struct samr_ConnectInfo1 *r)
4518 {
4519         ndr_print_struct(ndr, name, "samr_ConnectInfo1");
4520         ndr->depth++;
4521         ndr_print_samr_ConnectVersion(ndr, "client_version", r->client_version);
4522         ndr_print_uint32(ndr, "unknown2", r->unknown2);
4523         ndr->depth--;
4524 }
4525
4526 static enum ndr_err_code ndr_push_samr_ConnectInfo(struct ndr_push *ndr, int ndr_flags, const union samr_ConnectInfo *r)
4527 {
4528         if (ndr_flags & NDR_SCALARS) {
4529                 int level = ndr_push_get_switch_value(ndr, r);
4530                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4531                 switch (level) {
4532                         case 1: {
4533                                 NDR_CHECK(ndr_push_samr_ConnectInfo1(ndr, NDR_SCALARS, &r->info1));
4534                         break; }
4535
4536                         default:
4537                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4538                 }
4539         }
4540         if (ndr_flags & NDR_BUFFERS) {
4541                 int level = ndr_push_get_switch_value(ndr, r);
4542                 switch (level) {
4543                         case 1:
4544                         break;
4545
4546                         default:
4547                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4548                 }
4549         }
4550         return NDR_ERR_SUCCESS;
4551 }
4552
4553 static enum ndr_err_code ndr_pull_samr_ConnectInfo(struct ndr_pull *ndr, int ndr_flags, union samr_ConnectInfo *r)
4554 {
4555         int level;
4556         uint32_t _level;
4557         level = ndr_pull_get_switch_value(ndr, r);
4558         if (ndr_flags & NDR_SCALARS) {
4559                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4560                 if (_level != level) {
4561                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4562                 }
4563                 switch (level) {
4564                         case 1: {
4565                                 NDR_CHECK(ndr_pull_samr_ConnectInfo1(ndr, NDR_SCALARS, &r->info1));
4566                         break; }
4567
4568                         default:
4569                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4570                 }
4571         }
4572         if (ndr_flags & NDR_BUFFERS) {
4573                 switch (level) {
4574                         case 1:
4575                         break;
4576
4577                         default:
4578                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4579                 }
4580         }
4581         return NDR_ERR_SUCCESS;
4582 }
4583
4584 _PUBLIC_ void ndr_print_samr_ConnectInfo(struct ndr_print *ndr, const char *name, const union samr_ConnectInfo *r)
4585 {
4586         int level;
4587         level = ndr_print_get_switch_value(ndr, r);
4588         ndr_print_union(ndr, name, level, "samr_ConnectInfo");
4589         switch (level) {
4590                 case 1:
4591                         ndr_print_samr_ConnectInfo1(ndr, "info1", &r->info1);
4592                 break;
4593
4594                 default:
4595                         ndr_print_bad_level(ndr, name, level);
4596         }
4597 }
4598
4599 static enum ndr_err_code ndr_push_samr_ValidateFieldsPresent(struct ndr_push *ndr, int ndr_flags, uint32_t r)
4600 {
4601         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
4602         return NDR_ERR_SUCCESS;
4603 }
4604
4605 static enum ndr_err_code ndr_pull_samr_ValidateFieldsPresent(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
4606 {
4607         uint32_t v;
4608         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
4609         *r = v;
4610         return NDR_ERR_SUCCESS;
4611 }
4612
4613 _PUBLIC_ void ndr_print_samr_ValidateFieldsPresent(struct ndr_print *ndr, const char *name, uint32_t r)
4614 {
4615         ndr_print_uint32(ndr, name, r);
4616         ndr->depth++;
4617         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET", SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET, r);
4618         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME", SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME, r);
4619         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_LOCKOUT_TIME", SAMR_VALIDATE_FIELD_LOCKOUT_TIME, r);
4620         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT", SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT, r);
4621         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH", SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH, r);
4622         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY", SAMR_VALIDATE_FIELD_PASSWORD_HISTORY, r);
4623         ndr->depth--;
4624 }
4625
4626 static enum ndr_err_code ndr_push_samr_ValidatePasswordLevel(struct ndr_push *ndr, int ndr_flags, enum samr_ValidatePasswordLevel r)
4627 {
4628         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
4629         return NDR_ERR_SUCCESS;
4630 }
4631
4632 static enum ndr_err_code ndr_pull_samr_ValidatePasswordLevel(struct ndr_pull *ndr, int ndr_flags, enum samr_ValidatePasswordLevel *r)
4633 {
4634         uint16_t v;
4635         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
4636         *r = v;
4637         return NDR_ERR_SUCCESS;
4638 }
4639
4640 _PUBLIC_ void ndr_print_samr_ValidatePasswordLevel(struct ndr_print *ndr, const char *name, enum samr_ValidatePasswordLevel r)
4641 {
4642         const char *val = NULL;
4643
4644         switch (r) {
4645                 case NetValidateAuthentication: val = "NetValidateAuthentication"; break;
4646                 case NetValidatePasswordChange: val = "NetValidatePasswordChange"; break;
4647                 case NetValidatePasswordReset: val = "NetValidatePasswordReset"; break;
4648         }
4649         ndr_print_enum(ndr, name, "ENUM", val, r);
4650 }
4651
4652 static enum ndr_err_code ndr_push_samr_ValidationStatus(struct ndr_push *ndr, int ndr_flags, enum samr_ValidationStatus r)
4653 {
4654         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
4655         return NDR_ERR_SUCCESS;
4656 }
4657
4658 static enum ndr_err_code ndr_pull_samr_ValidationStatus(struct ndr_pull *ndr, int ndr_flags, enum samr_ValidationStatus *r)
4659 {
4660         uint16_t v;
4661         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
4662         *r = v;
4663         return NDR_ERR_SUCCESS;
4664 }
4665
4666 _PUBLIC_ void ndr_print_samr_ValidationStatus(struct ndr_print *ndr, const char *name, enum samr_ValidationStatus r)
4667 {
4668         const char *val = NULL;
4669
4670         switch (r) {
4671                 case SAMR_VALIDATION_STATUS_SUCCESS: val = "SAMR_VALIDATION_STATUS_SUCCESS"; break;
4672                 case SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE: val = "SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE"; break;
4673                 case SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT: val = "SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT"; break;
4674                 case SAMR_VALIDATION_STATUS_BAD_PASSWORD: val = "SAMR_VALIDATION_STATUS_BAD_PASSWORD"; break;
4675                 case SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT: val = "SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT"; break;
4676                 case SAMR_VALIDATION_STATUS_PWD_TOO_SHORT: val = "SAMR_VALIDATION_STATUS_PWD_TOO_SHORT"; break;
4677                 case SAMR_VALIDATION_STATUS_PWD_TOO_LONG: val = "SAMR_VALIDATION_STATUS_PWD_TOO_LONG"; break;
4678                 case SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH: val = "SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH"; break;
4679                 case SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT: val = "SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT"; break;
4680         }
4681         ndr_print_enum(ndr, name, "ENUM", val, r);
4682 }
4683
4684 static enum ndr_err_code ndr_push_samr_ValidationBlob(struct ndr_push *ndr, int ndr_flags, const struct samr_ValidationBlob *r)
4685 {
4686         if (ndr_flags & NDR_SCALARS) {
4687                 NDR_CHECK(ndr_push_align(ndr, 4));
4688                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
4689                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
4690         }
4691         if (ndr_flags & NDR_BUFFERS) {
4692                 if (r->data) {
4693                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
4694                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
4695                 }
4696         }
4697         return NDR_ERR_SUCCESS;
4698 }
4699
4700 static enum ndr_err_code ndr_pull_samr_ValidationBlob(struct ndr_pull *ndr, int ndr_flags, struct samr_ValidationBlob *r)
4701 {
4702         uint32_t _ptr_data;
4703         TALLOC_CTX *_mem_save_data_0;
4704         if (ndr_flags & NDR_SCALARS) {
4705                 NDR_CHECK(ndr_pull_align(ndr, 4));
4706                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
4707                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
4708                 if (_ptr_data) {
4709                         NDR_PULL_ALLOC(ndr, r->data);
4710                 } else {
4711                         r->data = NULL;
4712                 }
4713         }
4714         if (ndr_flags & NDR_BUFFERS) {
4715                 if (r->data) {
4716                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
4717                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
4718                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
4719                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
4720                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
4721                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
4722                 }
4723                 if (r->data) {
4724                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
4725                 }
4726         }
4727         return NDR_ERR_SUCCESS;
4728 }
4729
4730 _PUBLIC_ void ndr_print_samr_ValidationBlob(struct ndr_print *ndr, const char *name, const struct samr_ValidationBlob *r)
4731 {
4732         ndr_print_struct(ndr, name, "samr_ValidationBlob");
4733         ndr->depth++;
4734         ndr_print_uint32(ndr, "length", r->length);
4735         ndr_print_ptr(ndr, "data", r->data);
4736         ndr->depth++;
4737         if (r->data) {
4738                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
4739         }
4740         ndr->depth--;
4741         ndr->depth--;
4742 }
4743
4744 static enum ndr_err_code ndr_push_samr_ValidatePasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct samr_ValidatePasswordInfo *r)
4745 {
4746         uint32_t cntr_pwd_history_1;
4747         if (ndr_flags & NDR_SCALARS) {
4748                 NDR_CHECK(ndr_push_align(ndr, 8));
4749                 NDR_CHECK(ndr_push_samr_ValidateFieldsPresent(ndr, NDR_SCALARS, r->fields_present));
4750                 NDR_CHECK(ndr_push_NTTIME_hyper(ndr, NDR_SCALARS, r->last_password_change));
4751                 NDR_CHECK(ndr_push_NTTIME_hyper(ndr, NDR_SCALARS, r->bad_password_time));
4752                 NDR_CHECK(ndr_push_NTTIME_hyper(ndr, NDR_SCALARS, r->lockout_time));
4753                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pwd_count));
4754                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pwd_history_len));
4755                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pwd_history));
4756         }
4757         if (ndr_flags & NDR_BUFFERS) {
4758                 if (r->pwd_history) {
4759                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pwd_history_len));
4760                         for (cntr_pwd_history_1 = 0; cntr_pwd_history_1 < r->pwd_history_len; cntr_pwd_history_1++) {
4761                                 NDR_CHECK(ndr_push_samr_ValidationBlob(ndr, NDR_SCALARS, &r->pwd_history[cntr_pwd_history_1]));
4762                         }
4763                         for (cntr_pwd_history_1 = 0; cntr_pwd_history_1 < r->pwd_history_len; cntr_pwd_history_1++) {
4764                                 NDR_CHECK(ndr_push_samr_ValidationBlob(ndr, NDR_BUFFERS, &r->pwd_history[cntr_pwd_history_1]));
4765                         }
4766                 }
4767         }
4768         return NDR_ERR_SUCCESS;
4769 }
4770
4771 static enum ndr_err_code ndr_pull_samr_ValidatePasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct samr_ValidatePasswordInfo *r)
4772 {
4773         uint32_t _ptr_pwd_history;
4774         uint32_t cntr_pwd_history_1;
4775         TALLOC_CTX *_mem_save_pwd_history_0;
4776         TALLOC_CTX *_mem_save_pwd_history_1;
4777         if (ndr_flags & NDR_SCALARS) {
4778                 NDR_CHECK(ndr_pull_align(ndr, 8));
4779                 NDR_CHECK(ndr_pull_samr_ValidateFieldsPresent(ndr, NDR_SCALARS, &r->fields_present));
4780                 NDR_CHECK(ndr_pull_NTTIME_hyper(ndr, NDR_SCALARS, &r->last_password_change));
4781                 NDR_CHECK(ndr_pull_NTTIME_hyper(ndr, NDR_SCALARS, &r->bad_password_time));
4782                 NDR_CHECK(ndr_pull_NTTIME_hyper(ndr, NDR_SCALARS, &r->lockout_time));
4783                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pwd_count));
4784                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pwd_history_len));
4785                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pwd_history));
4786                 if (_ptr_pwd_history) {
4787                         NDR_PULL_ALLOC(ndr, r->pwd_history);
4788                 } else {
4789                         r->pwd_history = NULL;
4790                 }
4791         }
4792         if (ndr_flags & NDR_BUFFERS) {
4793                 if (r->pwd_history) {
4794                         _mem_save_pwd_history_0 = NDR_PULL_GET_MEM_CTX(ndr);
4795                         NDR_PULL_SET_MEM_CTX(ndr, r->pwd_history, 0);
4796                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pwd_history));
4797                         NDR_PULL_ALLOC_N(ndr, r->pwd_history, ndr_get_array_size(ndr, &r->pwd_history));
4798                         _mem_save_pwd_history_1 = NDR_PULL_GET_MEM_CTX(ndr);
4799                         NDR_PULL_SET_MEM_CTX(ndr, r->pwd_history, 0);
4800                         for (cntr_pwd_history_1 = 0; cntr_pwd_history_1 < r->pwd_history_len; cntr_pwd_history_1++) {
4801                                 NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr, NDR_SCALARS, &r->pwd_history[cntr_pwd_history_1]));
4802                         }
4803                         for (cntr_pwd_history_1 = 0; cntr_pwd_history_1 < r->pwd_history_len; cntr_pwd_history_1++) {
4804                                 NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr, NDR_BUFFERS, &r->pwd_history[cntr_pwd_history_1]));
4805                         }
4806                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pwd_history_1, 0);
4807                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pwd_history_0, 0);
4808                 }
4809                 if (r->pwd_history) {
4810                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pwd_history, r->pwd_history_len));
4811                 }
4812         }
4813         return NDR_ERR_SUCCESS;
4814 }
4815
4816 _PUBLIC_ void ndr_print_samr_ValidatePasswordInfo(struct ndr_print *ndr, const char *name, const struct samr_ValidatePasswordInfo *r)
4817 {
4818         uint32_t cntr_pwd_history_1;
4819         ndr_print_struct(ndr, name, "samr_ValidatePasswordInfo");
4820         ndr->depth++;
4821         ndr_print_samr_ValidateFieldsPresent(ndr, "fields_present", r->fields_present);
4822         ndr_print_NTTIME_hyper(ndr, "last_password_change", r->last_password_change);
4823         ndr_print_NTTIME_hyper(ndr, "bad_password_time", r->bad_password_time);
4824         ndr_print_NTTIME_hyper(ndr, "lockout_time", r->lockout_time);
4825         ndr_print_uint32(ndr, "bad_pwd_count", r->bad_pwd_count);
4826         ndr_print_uint32(ndr, "pwd_history_len", r->pwd_history_len);
4827         ndr_print_ptr(ndr, "pwd_history", r->pwd_history);
4828         ndr->depth++;
4829         if (r->pwd_history) {
4830                 ndr->print(ndr, "%s: ARRAY(%d)", "pwd_history", (int)r->pwd_history_len);
4831                 ndr->depth++;
4832                 for (cntr_pwd_history_1=0;cntr_pwd_history_1<r->pwd_history_len;cntr_pwd_history_1++) {
4833                         char *idx_1=NULL;
4834                         if (asprintf(&idx_1, "[%d]", cntr_pwd_history_1) != -1) {
4835                                 ndr_print_samr_ValidationBlob(ndr, "pwd_history", &r->pwd_history[cntr_pwd_history_1]);
4836                                 free(idx_1);
4837                         }
4838                 }
4839                 ndr->depth--;
4840         }
4841         ndr->depth--;
4842         ndr->depth--;
4843 }
4844
4845 static enum ndr_err_code ndr_push_samr_ValidatePasswordRepCtr(struct ndr_push *ndr, int ndr_flags, const struct samr_ValidatePasswordRepCtr *r)
4846 {
4847         if (ndr_flags & NDR_SCALARS) {
4848                 NDR_CHECK(ndr_push_align(ndr, 8));
4849                 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
4850                 NDR_CHECK(ndr_push_samr_ValidationStatus(ndr, NDR_SCALARS, r->status));
4851         }
4852         if (ndr_flags & NDR_BUFFERS) {
4853                 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
4854         }
4855         return NDR_ERR_SUCCESS;
4856 }
4857
4858 static enum ndr_err_code ndr_pull_samr_ValidatePasswordRepCtr(struct ndr_pull *ndr, int ndr_flags, struct samr_ValidatePasswordRepCtr *r)
4859 {
4860         if (ndr_flags & NDR_SCALARS) {
4861                 NDR_CHECK(ndr_pull_align(ndr, 8));
4862                 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
4863                 NDR_CHECK(ndr_pull_samr_ValidationStatus(ndr, NDR_SCALARS, &r->status));
4864         }
4865         if (ndr_flags & NDR_BUFFERS) {
4866                 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
4867         }
4868         return NDR_ERR_SUCCESS;
4869 }
4870
4871 _PUBLIC_ void ndr_print_samr_ValidatePasswordRepCtr(struct ndr_print *ndr, const char *name, const struct samr_ValidatePasswordRepCtr *r)
4872 {
4873         ndr_print_struct(ndr, name, "samr_ValidatePasswordRepCtr");
4874         ndr->depth++;
4875         ndr_print_samr_ValidatePasswordInfo(ndr, "info", &r->info);
4876         ndr_print_samr_ValidationStatus(ndr, "status", r->status);
4877         ndr->depth--;
4878 }
4879
4880 static enum ndr_err_code ndr_push_samr_ValidatePasswordRep(struct ndr_push *ndr, int ndr_flags, const union samr_ValidatePasswordRep *r)
4881 {
4882         if (ndr_flags & NDR_SCALARS) {
4883                 int level = ndr_push_get_switch_value(ndr, r);
4884                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
4885                 switch (level) {
4886                         case 1: {
4887                                 NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr, NDR_SCALARS, &r->ctr1));
4888                         break; }
4889
4890                         case 2: {
4891                                 NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr, NDR_SCALARS, &r->ctr2));
4892                         break; }
4893
4894                         case 3: {
4895                                 NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr, NDR_SCALARS, &r->ctr3));
4896                         break; }
4897
4898                         default:
4899                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4900                 }
4901         }
4902         if (ndr_flags & NDR_BUFFERS) {
4903                 int level = ndr_push_get_switch_value(ndr, r);
4904                 switch (level) {
4905                         case 1:
4906                                 NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr, NDR_BUFFERS, &r->ctr1));
4907                         break;
4908
4909                         case 2:
4910                                 NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr, NDR_BUFFERS, &r->ctr2));
4911                         break;
4912
4913                         case 3:
4914                                 NDR_CHECK(ndr_push_samr_ValidatePasswordRepCtr(ndr, NDR_BUFFERS, &r->ctr3));
4915                         break;
4916
4917                         default:
4918                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4919                 }
4920         }
4921         return NDR_ERR_SUCCESS;
4922 }
4923
4924 static enum ndr_err_code ndr_pull_samr_ValidatePasswordRep(struct ndr_pull *ndr, int ndr_flags, union samr_ValidatePasswordRep *r)
4925 {
4926         int level;
4927         uint16_t _level;
4928         level = ndr_pull_get_switch_value(ndr, r);
4929         if (ndr_flags & NDR_SCALARS) {
4930                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4931                 if (_level != level) {
4932                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4933                 }
4934                 switch (level) {
4935                         case 1: {
4936                                 NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr, NDR_SCALARS, &r->ctr1));
4937                         break; }
4938
4939                         case 2: {
4940                                 NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr, NDR_SCALARS, &r->ctr2));
4941                         break; }
4942
4943                         case 3: {
4944                                 NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr, NDR_SCALARS, &r->ctr3));
4945                         break; }
4946
4947                         default:
4948                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4949                 }
4950         }
4951         if (ndr_flags & NDR_BUFFERS) {
4952                 switch (level) {
4953                         case 1:
4954                                 NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr, NDR_BUFFERS, &r->ctr1));
4955                         break;
4956
4957                         case 2:
4958                                 NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr, NDR_BUFFERS, &r->ctr2));
4959                         break;
4960
4961                         case 3:
4962                                 NDR_CHECK(ndr_pull_samr_ValidatePasswordRepCtr(ndr, NDR_BUFFERS, &r->ctr3));
4963                         break;
4964
4965                         default:
4966                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4967                 }
4968         }
4969         return NDR_ERR_SUCCESS;
4970 }
4971
4972 _PUBLIC_ void ndr_print_samr_ValidatePasswordRep(struct ndr_print *ndr, const char *name, const union samr_ValidatePasswordRep *r)
4973 {
4974         int level;
4975         level = ndr_print_get_switch_value(ndr, r);
4976         ndr_print_union(ndr, name, level, "samr_ValidatePasswordRep");
4977         switch (level) {
4978                 case 1:
4979                         ndr_print_samr_ValidatePasswordRepCtr(ndr, "ctr1", &r->ctr1);
4980                 break;
4981
4982                 case 2:
4983                         ndr_print_samr_ValidatePasswordRepCtr(ndr, "ctr2", &r->ctr2);
4984                 break;
4985
4986                 case 3:
4987                         ndr_print_samr_ValidatePasswordRepCtr(ndr, "ctr3", &r->ctr3);
4988                 break;
4989
4990                 default:
4991                         ndr_print_bad_level(ndr, name, level);
4992         }
4993 }
4994
4995 static enum ndr_err_code ndr_push_samr_ValidatePasswordReq3(struct ndr_push *ndr, int ndr_flags, const struct samr_ValidatePasswordReq3 *r)
4996 {
4997         if (ndr_flags & NDR_SCALARS) {
4998                 NDR_CHECK(ndr_push_align(ndr, 8));
4999                 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
5000                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->password));
5001                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->account));
5002                 NDR_CHECK(ndr_push_samr_ValidationBlob(ndr, NDR_SCALARS, &r->hash));
5003                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->pwd_must_change_at_next_logon));
5004                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->clear_lockout));
5005         }
5006         if (ndr_flags & NDR_BUFFERS) {
5007                 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
5008                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->password));
5009                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->account));
5010                 NDR_CHECK(ndr_push_samr_ValidationBlob(ndr, NDR_BUFFERS, &r->hash));
5011         }
5012         return NDR_ERR_SUCCESS;
5013 }
5014
5015 static enum ndr_err_code ndr_pull_samr_ValidatePasswordReq3(struct ndr_pull *ndr, int ndr_flags, struct samr_ValidatePasswordReq3 *r)
5016 {
5017         if (ndr_flags & NDR_SCALARS) {
5018                 NDR_CHECK(ndr_pull_align(ndr, 8));
5019                 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
5020                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->password));
5021                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->account));
5022                 NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr, NDR_SCALARS, &r->hash));
5023                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->pwd_must_change_at_next_logon));
5024                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->clear_lockout));
5025         }
5026         if (ndr_flags & NDR_BUFFERS) {
5027                 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
5028                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->password));
5029                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->account));
5030                 NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr, NDR_BUFFERS, &r->hash));
5031         }
5032         return NDR_ERR_SUCCESS;
5033 }
5034
5035 _PUBLIC_ void ndr_print_samr_ValidatePasswordReq3(struct ndr_print *ndr, const char *name, const struct samr_ValidatePasswordReq3 *r)
5036 {
5037         ndr_print_struct(ndr, name, "samr_ValidatePasswordReq3");
5038         ndr->depth++;
5039         ndr_print_samr_ValidatePasswordInfo(ndr, "info", &r->info);
5040         ndr_print_lsa_StringLarge(ndr, "password", &r->password);
5041         ndr_print_lsa_StringLarge(ndr, "account", &r->account);
5042         ndr_print_samr_ValidationBlob(ndr, "hash", &r->hash);
5043         ndr_print_uint8(ndr, "pwd_must_change_at_next_logon", r->pwd_must_change_at_next_logon);
5044         ndr_print_uint8(ndr, "clear_lockout", r->clear_lockout);
5045         ndr->depth--;
5046 }
5047
5048 static enum ndr_err_code ndr_push_samr_ValidatePasswordReq2(struct ndr_push *ndr, int ndr_flags, const struct samr_ValidatePasswordReq2 *r)
5049 {
5050         if (ndr_flags & NDR_SCALARS) {
5051                 NDR_CHECK(ndr_push_align(ndr, 8));
5052                 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
5053                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->password));
5054                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->account));
5055                 NDR_CHECK(ndr_push_samr_ValidationBlob(ndr, NDR_SCALARS, &r->hash));
5056                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_matched));
5057         }
5058         if (ndr_flags & NDR_BUFFERS) {
5059                 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
5060                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->password));
5061                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->account));
5062                 NDR_CHECK(ndr_push_samr_ValidationBlob(ndr, NDR_BUFFERS, &r->hash));
5063         }
5064         return NDR_ERR_SUCCESS;
5065 }
5066
5067 static enum ndr_err_code ndr_pull_samr_ValidatePasswordReq2(struct ndr_pull *ndr, int ndr_flags, struct samr_ValidatePasswordReq2 *r)
5068 {
5069         if (ndr_flags & NDR_SCALARS) {
5070                 NDR_CHECK(ndr_pull_align(ndr, 8));
5071                 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
5072                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->password));
5073                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->account));
5074                 NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr, NDR_SCALARS, &r->hash));
5075                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_matched));
5076         }
5077         if (ndr_flags & NDR_BUFFERS) {
5078                 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
5079                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->password));
5080                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->account));
5081                 NDR_CHECK(ndr_pull_samr_ValidationBlob(ndr, NDR_BUFFERS, &r->hash));
5082         }
5083         return NDR_ERR_SUCCESS;
5084 }
5085
5086 _PUBLIC_ void ndr_print_samr_ValidatePasswordReq2(struct ndr_print *ndr, const char *name, const struct samr_ValidatePasswordReq2 *r)
5087 {
5088         ndr_print_struct(ndr, name, "samr_ValidatePasswordReq2");
5089         ndr->depth++;
5090         ndr_print_samr_ValidatePasswordInfo(ndr, "info", &r->info);
5091         ndr_print_lsa_StringLarge(ndr, "password", &r->password);
5092         ndr_print_lsa_StringLarge(ndr, "account", &r->account);
5093         ndr_print_samr_ValidationBlob(ndr, "hash", &r->hash);
5094         ndr_print_uint8(ndr, "password_matched", r->password_matched);
5095         ndr->depth--;
5096 }
5097
5098 static enum ndr_err_code ndr_push_samr_ValidatePasswordReq1(struct ndr_push *ndr, int ndr_flags, const struct samr_ValidatePasswordReq1 *r)
5099 {
5100         if (ndr_flags & NDR_SCALARS) {
5101                 NDR_CHECK(ndr_push_align(ndr, 8));
5102                 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
5103                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_matched));
5104         }
5105         if (ndr_flags & NDR_BUFFERS) {
5106                 NDR_CHECK(ndr_push_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
5107         }
5108         return NDR_ERR_SUCCESS;
5109 }
5110
5111 static enum ndr_err_code ndr_pull_samr_ValidatePasswordReq1(struct ndr_pull *ndr, int ndr_flags, struct samr_ValidatePasswordReq1 *r)
5112 {
5113         if (ndr_flags & NDR_SCALARS) {
5114                 NDR_CHECK(ndr_pull_align(ndr, 8));
5115                 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_SCALARS, &r->info));
5116                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_matched));
5117         }
5118         if (ndr_flags & NDR_BUFFERS) {
5119                 NDR_CHECK(ndr_pull_samr_ValidatePasswordInfo(ndr, NDR_BUFFERS, &r->info));
5120         }
5121         return NDR_ERR_SUCCESS;
5122 }
5123
5124 _PUBLIC_ void ndr_print_samr_ValidatePasswordReq1(struct ndr_print *ndr, const char *name, const struct samr_ValidatePasswordReq1 *r)
5125 {
5126         ndr_print_struct(ndr, name, "samr_ValidatePasswordReq1");
5127         ndr->depth++;
5128         ndr_print_samr_ValidatePasswordInfo(ndr, "info", &r->info);
5129         ndr_print_uint8(ndr, "password_matched", r->password_matched);
5130         ndr->depth--;
5131 }
5132
5133 static enum ndr_err_code ndr_push_samr_ValidatePasswordReq(struct ndr_push *ndr, int ndr_flags, const union samr_ValidatePasswordReq *r)
5134 {
5135         if (ndr_flags & NDR_SCALARS) {
5136                 int level = ndr_push_get_switch_value(ndr, r);
5137                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
5138                 switch (level) {
5139                         case 1: {
5140                                 NDR_CHECK(ndr_push_samr_ValidatePasswordReq1(ndr, NDR_SCALARS, &r->req1));
5141                         break; }
5142
5143                         case 2: {
5144                                 NDR_CHECK(ndr_push_samr_ValidatePasswordReq2(ndr, NDR_SCALARS, &r->req2));
5145                         break; }
5146
5147                         case 3: {
5148                                 NDR_CHECK(ndr_push_samr_ValidatePasswordReq3(ndr, NDR_SCALARS, &r->req3));
5149                         break; }
5150
5151                         default:
5152                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5153                 }
5154         }
5155         if (ndr_flags & NDR_BUFFERS) {
5156                 int level = ndr_push_get_switch_value(ndr, r);
5157                 switch (level) {
5158                         case 1:
5159                                 NDR_CHECK(ndr_push_samr_ValidatePasswordReq1(ndr, NDR_BUFFERS, &r->req1));
5160                         break;
5161
5162                         case 2:
5163                                 NDR_CHECK(ndr_push_samr_ValidatePasswordReq2(ndr, NDR_BUFFERS, &r->req2));
5164                         break;
5165
5166                         case 3:
5167                                 NDR_CHECK(ndr_push_samr_ValidatePasswordReq3(ndr, NDR_BUFFERS, &r->req3));
5168                         break;
5169
5170                         default:
5171                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5172                 }
5173         }
5174         return NDR_ERR_SUCCESS;
5175 }
5176
5177 static enum ndr_err_code ndr_pull_samr_ValidatePasswordReq(struct ndr_pull *ndr, int ndr_flags, union samr_ValidatePasswordReq *r)
5178 {
5179         int level;
5180         uint16_t _level;
5181         level = ndr_pull_get_switch_value(ndr, r);
5182         if (ndr_flags & NDR_SCALARS) {
5183                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
5184                 if (_level != level) {
5185                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5186                 }
5187                 switch (level) {
5188                         case 1: {
5189                                 NDR_CHECK(ndr_pull_samr_ValidatePasswordReq1(ndr, NDR_SCALARS, &r->req1));
5190                         break; }
5191
5192                         case 2: {
5193                                 NDR_CHECK(ndr_pull_samr_ValidatePasswordReq2(ndr, NDR_SCALARS, &r->req2));
5194                         break; }
5195
5196                         case 3: {
5197                                 NDR_CHECK(ndr_pull_samr_ValidatePasswordReq3(ndr, NDR_SCALARS, &r->req3));
5198                         break; }
5199
5200                         default:
5201                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5202                 }
5203         }
5204         if (ndr_flags & NDR_BUFFERS) {
5205                 switch (level) {
5206                         case 1:
5207                                 NDR_CHECK(ndr_pull_samr_ValidatePasswordReq1(ndr, NDR_BUFFERS, &r->req1));
5208                         break;
5209
5210                         case 2:
5211                                 NDR_CHECK(ndr_pull_samr_ValidatePasswordReq2(ndr, NDR_BUFFERS, &r->req2));
5212                         break;
5213
5214                         case 3:
5215                                 NDR_CHECK(ndr_pull_samr_ValidatePasswordReq3(ndr, NDR_BUFFERS, &r->req3));
5216                         break;
5217
5218                         default:
5219                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5220                 }
5221         }
5222         return NDR_ERR_SUCCESS;
5223 }
5224
5225 _PUBLIC_ void ndr_print_samr_ValidatePasswordReq(struct ndr_print *ndr, const char *name, const union samr_ValidatePasswordReq *r)
5226 {
5227         int level;
5228         level = ndr_print_get_switch_value(ndr, r);
5229         ndr_print_union(ndr, name, level, "samr_ValidatePasswordReq");
5230         switch (level) {
5231                 case 1:
5232                         ndr_print_samr_ValidatePasswordReq1(ndr, "req1", &r->req1);
5233                 break;
5234
5235                 case 2:
5236                         ndr_print_samr_ValidatePasswordReq2(ndr, "req2", &r->req2);
5237                 break;
5238
5239                 case 3:
5240                         ndr_print_samr_ValidatePasswordReq3(ndr, "req3", &r->req3);
5241                 break;
5242
5243                 default:
5244                         ndr_print_bad_level(ndr, name, level);
5245         }
5246 }
5247
5248 static enum ndr_err_code ndr_push_samr_Connect(struct ndr_push *ndr, int flags, const struct samr_Connect *r)
5249 {
5250         if (flags & NDR_IN) {
5251                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
5252                 if (r->in.system_name) {
5253                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, *r->in.system_name));
5254                 }
5255                 NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
5256         }
5257         if (flags & NDR_OUT) {
5258                 if (r->out.connect_handle == NULL) {
5259                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5260                 }
5261                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
5262                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
5263         }
5264         return NDR_ERR_SUCCESS;
5265 }
5266
5267 static enum ndr_err_code ndr_pull_samr_Connect(struct ndr_pull *ndr, int flags, struct samr_Connect *r)
5268 {
5269         uint32_t _ptr_system_name;
5270         TALLOC_CTX *_mem_save_system_name_0;
5271         TALLOC_CTX *_mem_save_connect_handle_0;
5272         if (flags & NDR_IN) {
5273                 ZERO_STRUCT(r->out);
5274
5275                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
5276                 if (_ptr_system_name) {
5277                         NDR_PULL_ALLOC(ndr, r->in.system_name);
5278                 } else {
5279                         r->in.system_name = NULL;
5280                 }
5281                 if (r->in.system_name) {
5282                         _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5283                         NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
5284                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, r->in.system_name));
5285                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
5286                 }
5287                 NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
5288                 NDR_PULL_ALLOC(ndr, r->out.connect_handle);
5289                 ZERO_STRUCTP(r->out.connect_handle);
5290         }
5291         if (flags & NDR_OUT) {
5292                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5293                         NDR_PULL_ALLOC(ndr, r->out.connect_handle);
5294                 }
5295                 _mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5296                 NDR_PULL_SET_MEM_CTX(ndr, r->out.connect_handle, LIBNDR_FLAG_REF_ALLOC);
5297                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
5298                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
5299                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
5300         }
5301         return NDR_ERR_SUCCESS;
5302 }
5303
5304 _PUBLIC_ void ndr_print_samr_Connect(struct ndr_print *ndr, const char *name, int flags, const struct samr_Connect *r)
5305 {
5306         ndr_print_struct(ndr, name, "samr_Connect");
5307         ndr->depth++;
5308         if (flags & NDR_SET_VALUES) {
5309                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5310         }
5311         if (flags & NDR_IN) {
5312                 ndr_print_struct(ndr, "in", "samr_Connect");
5313                 ndr->depth++;
5314                 ndr_print_ptr(ndr, "system_name", r->in.system_name);
5315                 ndr->depth++;
5316                 if (r->in.system_name) {
5317                         ndr_print_uint16(ndr, "system_name", *r->in.system_name);
5318                 }
5319                 ndr->depth--;
5320                 ndr_print_samr_ConnectAccessMask(ndr, "access_mask", r->in.access_mask);
5321                 ndr->depth--;
5322         }
5323         if (flags & NDR_OUT) {
5324                 ndr_print_struct(ndr, "out", "samr_Connect");
5325                 ndr->depth++;
5326                 ndr_print_ptr(ndr, "connect_handle", r->out.connect_handle);
5327                 ndr->depth++;
5328                 ndr_print_policy_handle(ndr, "connect_handle", r->out.connect_handle);
5329                 ndr->depth--;
5330                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
5331                 ndr->depth--;
5332         }
5333         ndr->depth--;
5334 }
5335
5336 _PUBLIC_ enum ndr_err_code ndr_push_samr_Close(struct ndr_push *ndr, int flags, const struct samr_Close *r)
5337 {
5338         if (flags & NDR_IN) {
5339                 if (r->in.handle == NULL) {
5340                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5341                 }
5342                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
5343         }
5344         if (flags & NDR_OUT) {
5345                 if (r->out.handle == NULL) {
5346                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5347                 }
5348                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
5349                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
5350         }
5351         return NDR_ERR_SUCCESS;
5352 }
5353
5354 _PUBLIC_ enum ndr_err_code ndr_pull_samr_Close(struct ndr_pull *ndr, int flags, struct samr_Close *r)
5355 {
5356         TALLOC_CTX *_mem_save_handle_0;
5357         if (flags & NDR_IN) {
5358                 ZERO_STRUCT(r->out);
5359
5360                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5361                         NDR_PULL_ALLOC(ndr, r->in.handle);
5362                 }
5363                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5364                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
5365                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
5366                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
5367                 NDR_PULL_ALLOC(ndr, r->out.handle);
5368                 *r->out.handle = *r->in.handle;
5369         }
5370         if (flags & NDR_OUT) {
5371                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5372                         NDR_PULL_ALLOC(ndr, r->out.handle);
5373                 }
5374                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5375                 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
5376                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
5377                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
5378                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
5379         }
5380         return NDR_ERR_SUCCESS;
5381 }
5382
5383 _PUBLIC_ void ndr_print_samr_Close(struct ndr_print *ndr, const char *name, int flags, const struct samr_Close *r)
5384 {
5385         ndr_print_struct(ndr, name, "samr_Close");
5386         ndr->depth++;
5387         if (flags & NDR_SET_VALUES) {
5388                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5389         }
5390         if (flags & NDR_IN) {
5391                 ndr_print_struct(ndr, "in", "samr_Close");
5392                 ndr->depth++;
5393                 ndr_print_ptr(ndr, "handle", r->in.handle);
5394                 ndr->depth++;
5395                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
5396                 ndr->depth--;
5397                 ndr->depth--;
5398         }
5399         if (flags & NDR_OUT) {
5400                 ndr_print_struct(ndr, "out", "samr_Close");
5401                 ndr->depth++;
5402                 ndr_print_ptr(ndr, "handle", r->out.handle);
5403                 ndr->depth++;
5404                 ndr_print_policy_handle(ndr, "handle", r->out.handle);
5405                 ndr->depth--;
5406                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
5407                 ndr->depth--;
5408         }
5409         ndr->depth--;
5410 }
5411
5412 static enum ndr_err_code ndr_push_samr_SetSecurity(struct ndr_push *ndr, int flags, const struct samr_SetSecurity *r)
5413 {
5414         if (flags & NDR_IN) {
5415                 if (r->in.handle == NULL) {
5416                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5417                 }
5418                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
5419                 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
5420                 if (r->in.sdbuf == NULL) {
5421                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5422                 }
5423                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sdbuf));
5424         }
5425         if (flags & NDR_OUT) {
5426                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
5427         }
5428         return NDR_ERR_SUCCESS;
5429 }
5430
5431 static enum ndr_err_code ndr_pull_samr_SetSecurity(struct ndr_pull *ndr, int flags, struct samr_SetSecurity *r)
5432 {
5433         TALLOC_CTX *_mem_save_handle_0;
5434         TALLOC_CTX *_mem_save_sdbuf_0;
5435         if (flags & NDR_IN) {
5436                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5437                         NDR_PULL_ALLOC(ndr, r->in.handle);
5438                 }
5439                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5440                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
5441                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
5442                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
5443                 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
5444                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5445                         NDR_PULL_ALLOC(ndr, r->in.sdbuf);
5446                 }
5447                 _mem_save_sdbuf_0 = NDR_PULL_GET_MEM_CTX(ndr);
5448                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sdbuf, LIBNDR_FLAG_REF_ALLOC);
5449                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sdbuf));
5450                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sdbuf_0, LIBNDR_FLAG_REF_ALLOC);
5451         }
5452         if (flags & NDR_OUT) {
5453                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
5454         }
5455         return NDR_ERR_SUCCESS;
5456 }
5457
5458 _PUBLIC_ void ndr_print_samr_SetSecurity(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetSecurity *r)
5459 {
5460         ndr_print_struct(ndr, name, "samr_SetSecurity");
5461         ndr->depth++;
5462         if (flags & NDR_SET_VALUES) {
5463                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5464         }
5465         if (flags & NDR_IN) {
5466                 ndr_print_struct(ndr, "in", "samr_SetSecurity");
5467                 ndr->depth++;
5468                 ndr_print_ptr(ndr, "handle", r->in.handle);
5469                 ndr->depth++;
5470                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
5471                 ndr->depth--;
5472                 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
5473                 ndr_print_ptr(ndr, "sdbuf", r->in.sdbuf);
5474                 ndr->depth++;
5475                 ndr_print_sec_desc_buf(ndr, "sdbuf", r->in.sdbuf);
5476                 ndr->depth--;
5477                 ndr->depth--;
5478         }
5479         if (flags & NDR_OUT) {
5480                 ndr_print_struct(ndr, "out", "samr_SetSecurity");
5481                 ndr->depth++;
5482                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
5483                 ndr->depth--;
5484         }
5485         ndr->depth--;
5486 }
5487
5488 static enum ndr_err_code ndr_push_samr_QuerySecurity(struct ndr_push *ndr, int flags, const struct samr_QuerySecurity *r)
5489 {
5490         if (flags & NDR_IN) {
5491                 if (r->in.handle == NULL) {
5492                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5493                 }
5494                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
5495                 NDR_CHECK(ndr_push_security_secinfo(ndr, NDR_SCALARS, r->in.sec_info));
5496         }
5497         if (flags & NDR_OUT) {
5498                 if (r->out.sdbuf == NULL) {
5499                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5500                 }
5501                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.sdbuf));
5502                 if (*r->out.sdbuf) {
5503                         NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sdbuf));
5504                 }
5505                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
5506         }
5507         return NDR_ERR_SUCCESS;
5508 }
5509
5510 static enum ndr_err_code ndr_pull_samr_QuerySecurity(struct ndr_pull *ndr, int flags, struct samr_QuerySecurity *r)
5511 {
5512         uint32_t _ptr_sdbuf;
5513         TALLOC_CTX *_mem_save_handle_0;
5514         TALLOC_CTX *_mem_save_sdbuf_0;
5515         TALLOC_CTX *_mem_save_sdbuf_1;
5516         if (flags & NDR_IN) {
5517                 ZERO_STRUCT(r->out);
5518
5519                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5520                         NDR_PULL_ALLOC(ndr, r->in.handle);
5521                 }
5522                 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5523                 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
5524                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
5525                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
5526                 NDR_CHECK(ndr_pull_security_secinfo(ndr, NDR_SCALARS, &r->in.sec_info));
5527                 NDR_PULL_ALLOC(ndr, r->out.sdbuf);
5528                 ZERO_STRUCTP(r->out.sdbuf);
5529         }
5530         if (flags & NDR_OUT) {
5531                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5532                         NDR_PULL_ALLOC(ndr, r->out.sdbuf);
5533                 }
5534                 _mem_save_sdbuf_0 = NDR_PULL_GET_MEM_CTX(ndr);
5535                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sdbuf, LIBNDR_FLAG_REF_ALLOC);
5536                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sdbuf));
5537                 if (_ptr_sdbuf) {
5538                         NDR_PULL_ALLOC(ndr, *r->out.sdbuf);
5539                 } else {
5540                         *r->out.sdbuf = NULL;
5541                 }
5542                 if (*r->out.sdbuf) {
5543                         _mem_save_sdbuf_1 = NDR_PULL_GET_MEM_CTX(ndr);
5544                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.sdbuf, 0);
5545                         NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sdbuf));
5546                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sdbuf_1, 0);
5547                 }
5548                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sdbuf_0, LIBNDR_FLAG_REF_ALLOC);
5549                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
5550         }
5551         return NDR_ERR_SUCCESS;
5552 }
5553
5554 _PUBLIC_ void ndr_print_samr_QuerySecurity(struct ndr_print *ndr, const char *name, int flags, const struct samr_QuerySecurity *r)
5555 {
5556         ndr_print_struct(ndr, name, "samr_QuerySecurity");
5557         ndr->depth++;
5558         if (flags & NDR_SET_VALUES) {
5559                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5560         }
5561         if (flags & NDR_IN) {
5562                 ndr_print_struct(ndr, "in", "samr_QuerySecurity");
5563                 ndr->depth++;
5564                 ndr_print_ptr(ndr, "handle", r->in.handle);
5565                 ndr->depth++;
5566                 ndr_print_policy_handle(ndr, "handle", r->in.handle);
5567                 ndr->depth--;
5568                 ndr_print_security_secinfo(ndr, "sec_info", r->in.sec_info);
5569                 ndr->depth--;
5570         }
5571         if (flags & NDR_OUT) {
5572                 ndr_print_struct(ndr, "out", "samr_QuerySecurity");
5573                 ndr->depth++;
5574                 ndr_print_ptr(ndr, "sdbuf", r->out.sdbuf);
5575                 ndr->depth++;
5576                 ndr_print_ptr(ndr, "sdbuf", *r->out.sdbuf);
5577                 ndr->depth++;
5578                 if (*r->out.sdbuf) {
5579                         ndr_print_sec_desc_buf(ndr, "sdbuf", *r->out.sdbuf);
5580                 }
5581                 ndr->depth--;
5582                 ndr->depth--;
5583                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
5584                 ndr->depth--;
5585         }
5586         ndr->depth--;
5587 }
5588
5589 static enum ndr_err_code ndr_push_samr_Shutdown(struct ndr_push *ndr, int flags, const struct samr_Shutdown *r)
5590 {
5591         if (flags & NDR_IN) {
5592                 if (r->in.connect_handle == NULL) {
5593                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5594                 }
5595                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
5596         }
5597         if (flags & NDR_OUT) {
5598                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
5599         }
5600         return NDR_ERR_SUCCESS;
5601 }
5602
5603 static enum ndr_err_code ndr_pull_samr_Shutdown(struct ndr_pull *ndr, int flags, struct samr_Shutdown *r)
5604 {
5605         TALLOC_CTX *_mem_save_connect_handle_0;
5606         if (flags & NDR_IN) {
5607                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5608                         NDR_PULL_ALLOC(ndr, r->in.connect_handle);
5609                 }
5610                 _mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5611                 NDR_PULL_SET_MEM_CTX(ndr, r->in.connect_handle, LIBNDR_FLAG_REF_ALLOC);
5612                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
5613                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
5614         }
5615         if (flags & NDR_OUT) {
5616                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
5617         }
5618         return NDR_ERR_SUCCESS;
5619 }
5620
5621 _PUBLIC_ void ndr_print_samr_Shutdown(struct ndr_print *ndr, const char *name, int flags, const struct samr_Shutdown *r)
5622 {
5623         ndr_print_struct(ndr, name, "samr_Shutdown");
5624         ndr->depth++;
5625         if (flags & NDR_SET_VALUES) {
5626                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5627         }
5628         if (flags & NDR_IN) {
5629                 ndr_print_struct(ndr, "in", "samr_Shutdown");
5630                 ndr->depth++;
5631                 ndr_print_ptr(ndr, "connect_handle", r->in.connect_handle);
5632                 ndr->depth++;
5633                 ndr_print_policy_handle(ndr, "connect_handle", r->in.connect_handle);
5634                 ndr->depth--;
5635                 ndr->depth--;
5636         }
5637         if (flags & NDR_OUT) {
5638                 ndr_print_struct(ndr, "out", "samr_Shutdown");
5639                 ndr->depth++;
5640                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
5641                 ndr->depth--;
5642         }
5643         ndr->depth--;
5644 }
5645
5646 static enum ndr_err_code ndr_push_samr_LookupDomain(struct ndr_push *ndr, int flags, const struct samr_LookupDomain *r)
5647 {
5648         if (flags & NDR_IN) {
5649                 if (r->in.connect_handle == NULL) {
5650                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5651                 }
5652                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
5653                 if (r->in.domain_name == NULL) {
5654                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5655                 }
5656                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_name));
5657         }
5658         if (flags & NDR_OUT) {
5659                 if (r->out.sid == NULL) {
5660                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5661                 }
5662                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.sid));
5663                 if (*r->out.sid) {
5664                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sid));
5665                 }
5666                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
5667         }
5668         return NDR_ERR_SUCCESS;
5669 }
5670
5671 static enum ndr_err_code ndr_pull_samr_LookupDomain(struct ndr_pull *ndr, int flags, struct samr_LookupDomain *r)
5672 {
5673         uint32_t _ptr_sid;
5674         TALLOC_CTX *_mem_save_connect_handle_0;
5675         TALLOC_CTX *_mem_save_domain_name_0;
5676         TALLOC_CTX *_mem_save_sid_0;
5677         TALLOC_CTX *_mem_save_sid_1;
5678         if (flags & NDR_IN) {
5679                 ZERO_STRUCT(r->out);
5680
5681                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5682                         NDR_PULL_ALLOC(ndr, r->in.connect_handle);
5683                 }
5684                 _mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5685                 NDR_PULL_SET_MEM_CTX(ndr, r->in.connect_handle, LIBNDR_FLAG_REF_ALLOC);
5686                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
5687                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
5688                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5689                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
5690                 }
5691                 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5692                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, LIBNDR_FLAG_REF_ALLOC);
5693                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_name));
5694                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, LIBNDR_FLAG_REF_ALLOC);
5695                 NDR_PULL_ALLOC(ndr, r->out.sid);
5696                 ZERO_STRUCTP(r->out.sid);
5697         }
5698         if (flags & NDR_OUT) {
5699                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5700                         NDR_PULL_ALLOC(ndr, r->out.sid);
5701                 }
5702                 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5703                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sid, LIBNDR_FLAG_REF_ALLOC);
5704                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5705                 if (_ptr_sid) {
5706                         NDR_PULL_ALLOC(ndr, *r->out.sid);
5707                 } else {
5708                         *r->out.sid = NULL;
5709                 }
5710                 if (*r->out.sid) {
5711                         _mem_save_sid_1 = NDR_PULL_GET_MEM_CTX(ndr);
5712                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.sid, 0);
5713                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sid));
5714                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_1, 0);
5715                 }
5716                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
5717                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
5718         }
5719         return NDR_ERR_SUCCESS;
5720 }
5721
5722 _PUBLIC_ void ndr_print_samr_LookupDomain(struct ndr_print *ndr, const char *name, int flags, const struct samr_LookupDomain *r)
5723 {
5724         ndr_print_struct(ndr, name, "samr_LookupDomain");
5725         ndr->depth++;
5726         if (flags & NDR_SET_VALUES) {
5727                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5728         }
5729         if (flags & NDR_IN) {
5730                 ndr_print_struct(ndr, "in", "samr_LookupDomain");
5731                 ndr->depth++;
5732                 ndr_print_ptr(ndr, "connect_handle", r->in.connect_handle);
5733                 ndr->depth++;
5734                 ndr_print_policy_handle(ndr, "connect_handle", r->in.connect_handle);
5735                 ndr->depth--;
5736                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
5737                 ndr->depth++;
5738                 ndr_print_lsa_String(ndr, "domain_name", r->in.domain_name);
5739                 ndr->depth--;
5740                 ndr->depth--;
5741         }
5742         if (flags & NDR_OUT) {
5743                 ndr_print_struct(ndr, "out", "samr_LookupDomain");
5744                 ndr->depth++;
5745                 ndr_print_ptr(ndr, "sid", r->out.sid);
5746                 ndr->depth++;
5747                 ndr_print_ptr(ndr, "sid", *r->out.sid);
5748                 ndr->depth++;
5749                 if (*r->out.sid) {
5750                         ndr_print_dom_sid2(ndr, "sid", *r->out.sid);
5751                 }
5752                 ndr->depth--;
5753                 ndr->depth--;
5754                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
5755                 ndr->depth--;
5756         }
5757         ndr->depth--;
5758 }
5759
5760 static enum ndr_err_code ndr_push_samr_EnumDomains(struct ndr_push *ndr, int flags, const struct samr_EnumDomains *r)
5761 {
5762         if (flags & NDR_IN) {
5763                 if (r->in.connect_handle == NULL) {
5764                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5765                 }
5766                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
5767                 if (r->in.resume_handle == NULL) {
5768                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5769                 }
5770                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle));
5771                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
5772         }
5773         if (flags & NDR_OUT) {
5774                 if (r->out.resume_handle == NULL) {
5775                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5776                 }
5777                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.resume_handle));
5778                 if (r->out.sam == NULL) {
5779                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5780                 }
5781                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.sam));
5782                 if (*r->out.sam) {
5783                         NDR_CHECK(ndr_push_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
5784                 }
5785                 if (r->out.num_entries == NULL) {
5786                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5787                 }
5788                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_entries));
5789                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
5790         }
5791         return NDR_ERR_SUCCESS;
5792 }
5793
5794 static enum ndr_err_code ndr_pull_samr_EnumDomains(struct ndr_pull *ndr, int flags, struct samr_EnumDomains *r)
5795 {
5796         uint32_t _ptr_sam;
5797         TALLOC_CTX *_mem_save_connect_handle_0;
5798         TALLOC_CTX *_mem_save_resume_handle_0;
5799         TALLOC_CTX *_mem_save_sam_0;
5800         TALLOC_CTX *_mem_save_sam_1;
5801         TALLOC_CTX *_mem_save_num_entries_0;
5802         if (flags & NDR_IN) {
5803                 ZERO_STRUCT(r->out);
5804
5805                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5806                         NDR_PULL_ALLOC(ndr, r->in.connect_handle);
5807                 }
5808                 _mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5809                 NDR_PULL_SET_MEM_CTX(ndr, r->in.connect_handle, LIBNDR_FLAG_REF_ALLOC);
5810                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
5811                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
5812                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5813                         NDR_PULL_ALLOC(ndr, r->in.resume_handle);
5814                 }
5815                 _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5816                 NDR_PULL_SET_MEM_CTX(ndr, r->in.resume_handle, LIBNDR_FLAG_REF_ALLOC);
5817                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
5818                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
5819                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
5820                 NDR_PULL_ALLOC(ndr, r->out.resume_handle);
5821                 *r->out.resume_handle = *r->in.resume_handle;
5822                 NDR_PULL_ALLOC(ndr, r->out.sam);
5823                 ZERO_STRUCTP(r->out.sam);
5824                 NDR_PULL_ALLOC(ndr, r->out.num_entries);
5825                 ZERO_STRUCTP(r->out.num_entries);
5826         }
5827         if (flags & NDR_OUT) {
5828                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5829                         NDR_PULL_ALLOC(ndr, r->out.resume_handle);
5830                 }
5831                 _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5832                 NDR_PULL_SET_MEM_CTX(ndr, r->out.resume_handle, LIBNDR_FLAG_REF_ALLOC);
5833                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.resume_handle));
5834                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
5835                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5836                         NDR_PULL_ALLOC(ndr, r->out.sam);
5837                 }
5838                 _mem_save_sam_0 = NDR_PULL_GET_MEM_CTX(ndr);
5839                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sam, LIBNDR_FLAG_REF_ALLOC);
5840                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam));
5841                 if (_ptr_sam) {
5842                         NDR_PULL_ALLOC(ndr, *r->out.sam);
5843                 } else {
5844                         *r->out.sam = NULL;
5845                 }
5846                 if (*r->out.sam) {
5847                         _mem_save_sam_1 = NDR_PULL_GET_MEM_CTX(ndr);
5848                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.sam, 0);
5849                         NDR_CHECK(ndr_pull_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
5850                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_1, 0);
5851                 }
5852                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_0, LIBNDR_FLAG_REF_ALLOC);
5853                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5854                         NDR_PULL_ALLOC(ndr, r->out.num_entries);
5855                 }
5856                 _mem_save_num_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
5857                 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_entries, LIBNDR_FLAG_REF_ALLOC);
5858                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_entries));
5859                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_entries_0, LIBNDR_FLAG_REF_ALLOC);
5860                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
5861         }
5862         return NDR_ERR_SUCCESS;
5863 }
5864
5865 _PUBLIC_ void ndr_print_samr_EnumDomains(struct ndr_print *ndr, const char *name, int flags, const struct samr_EnumDomains *r)
5866 {
5867         ndr_print_struct(ndr, name, "samr_EnumDomains");
5868         ndr->depth++;
5869         if (flags & NDR_SET_VALUES) {
5870                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5871         }
5872         if (flags & NDR_IN) {
5873                 ndr_print_struct(ndr, "in", "samr_EnumDomains");
5874                 ndr->depth++;
5875                 ndr_print_ptr(ndr, "connect_handle", r->in.connect_handle);
5876                 ndr->depth++;
5877                 ndr_print_policy_handle(ndr, "connect_handle", r->in.connect_handle);
5878                 ndr->depth--;
5879                 ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
5880                 ndr->depth++;
5881                 ndr_print_uint32(ndr, "resume_handle", *r->in.resume_handle);
5882                 ndr->depth--;
5883                 ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
5884                 ndr->depth--;
5885         }
5886         if (flags & NDR_OUT) {
5887                 ndr_print_struct(ndr, "out", "samr_EnumDomains");
5888                 ndr->depth++;
5889                 ndr_print_ptr(ndr, "resume_handle", r->out.resume_handle);
5890                 ndr->depth++;
5891                 ndr_print_uint32(ndr, "resume_handle", *r->out.resume_handle);
5892                 ndr->depth--;
5893                 ndr_print_ptr(ndr, "sam", r->out.sam);
5894                 ndr->depth++;
5895                 ndr_print_ptr(ndr, "sam", *r->out.sam);
5896                 ndr->depth++;
5897                 if (*r->out.sam) {
5898                         ndr_print_samr_SamArray(ndr, "sam", *r->out.sam);
5899                 }
5900                 ndr->depth--;
5901                 ndr->depth--;
5902                 ndr_print_ptr(ndr, "num_entries", r->out.num_entries);
5903                 ndr->depth++;
5904                 ndr_print_uint32(ndr, "num_entries", *r->out.num_entries);
5905                 ndr->depth--;
5906                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
5907                 ndr->depth--;
5908         }
5909         ndr->depth--;
5910 }
5911
5912 _PUBLIC_ enum ndr_err_code ndr_push_samr_OpenDomain(struct ndr_push *ndr, int flags, const struct samr_OpenDomain *r)
5913 {
5914         if (flags & NDR_IN) {
5915                 if (r->in.connect_handle == NULL) {
5916                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5917                 }
5918                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
5919                 NDR_CHECK(ndr_push_samr_DomainAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
5920                 if (r->in.sid == NULL) {
5921                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5922                 }
5923                 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
5924         }
5925         if (flags & NDR_OUT) {
5926                 if (r->out.domain_handle == NULL) {
5927                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
5928                 }
5929                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.domain_handle));
5930                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
5931         }
5932         return NDR_ERR_SUCCESS;
5933 }
5934
5935 _PUBLIC_ enum ndr_err_code ndr_pull_samr_OpenDomain(struct ndr_pull *ndr, int flags, struct samr_OpenDomain *r)
5936 {
5937         TALLOC_CTX *_mem_save_connect_handle_0;
5938         TALLOC_CTX *_mem_save_sid_0;
5939         TALLOC_CTX *_mem_save_domain_handle_0;
5940         if (flags & NDR_IN) {
5941                 ZERO_STRUCT(r->out);
5942
5943                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5944                         NDR_PULL_ALLOC(ndr, r->in.connect_handle);
5945                 }
5946                 _mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5947                 NDR_PULL_SET_MEM_CTX(ndr, r->in.connect_handle, LIBNDR_FLAG_REF_ALLOC);
5948                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
5949                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
5950                 NDR_CHECK(ndr_pull_samr_DomainAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
5951                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5952                         NDR_PULL_ALLOC(ndr, r->in.sid);
5953                 }
5954                 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5955                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
5956                 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
5957                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
5958                 NDR_PULL_ALLOC(ndr, r->out.domain_handle);
5959                 ZERO_STRUCTP(r->out.domain_handle);
5960         }
5961         if (flags & NDR_OUT) {
5962                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
5963                         NDR_PULL_ALLOC(ndr, r->out.domain_handle);
5964                 }
5965                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
5966                 NDR_PULL_SET_MEM_CTX(ndr, r->out.domain_handle, LIBNDR_FLAG_REF_ALLOC);
5967                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.domain_handle));
5968                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
5969                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
5970         }
5971         return NDR_ERR_SUCCESS;
5972 }
5973
5974 _PUBLIC_ void ndr_print_samr_OpenDomain(struct ndr_print *ndr, const char *name, int flags, const struct samr_OpenDomain *r)
5975 {
5976         ndr_print_struct(ndr, name, "samr_OpenDomain");
5977         ndr->depth++;
5978         if (flags & NDR_SET_VALUES) {
5979                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5980         }
5981         if (flags & NDR_IN) {
5982                 ndr_print_struct(ndr, "in", "samr_OpenDomain");
5983                 ndr->depth++;
5984                 ndr_print_ptr(ndr, "connect_handle", r->in.connect_handle);
5985                 ndr->depth++;
5986                 ndr_print_policy_handle(ndr, "connect_handle", r->in.connect_handle);
5987                 ndr->depth--;
5988                 ndr_print_samr_DomainAccessMask(ndr, "access_mask", r->in.access_mask);
5989                 ndr_print_ptr(ndr, "sid", r->in.sid);
5990                 ndr->depth++;
5991                 ndr_print_dom_sid2(ndr, "sid", r->in.sid);
5992                 ndr->depth--;
5993                 ndr->depth--;
5994         }
5995         if (flags & NDR_OUT) {
5996                 ndr_print_struct(ndr, "out", "samr_OpenDomain");
5997                 ndr->depth++;
5998                 ndr_print_ptr(ndr, "domain_handle", r->out.domain_handle);
5999                 ndr->depth++;
6000                 ndr_print_policy_handle(ndr, "domain_handle", r->out.domain_handle);
6001                 ndr->depth--;
6002                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
6003                 ndr->depth--;
6004         }
6005         ndr->depth--;
6006 }
6007
6008 static enum ndr_err_code ndr_push_samr_QueryDomainInfo(struct ndr_push *ndr, int flags, const struct samr_QueryDomainInfo *r)
6009 {
6010         if (flags & NDR_IN) {
6011                 if (r->in.domain_handle == NULL) {
6012                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6013                 }
6014                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6015                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
6016         }
6017         if (flags & NDR_OUT) {
6018                 if (r->out.info == NULL) {
6019                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6020                 }
6021                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
6022                 if (*r->out.info) {
6023                         NDR_CHECK(ndr_push_set_switch_value(ndr, *r->out.info, r->in.level));
6024                         NDR_CHECK(ndr_push_samr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
6025                 }
6026                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6027         }
6028         return NDR_ERR_SUCCESS;
6029 }
6030
6031 static enum ndr_err_code ndr_pull_samr_QueryDomainInfo(struct ndr_pull *ndr, int flags, struct samr_QueryDomainInfo *r)
6032 {
6033         uint32_t _ptr_info;
6034         TALLOC_CTX *_mem_save_domain_handle_0;
6035         TALLOC_CTX *_mem_save_info_0;
6036         TALLOC_CTX *_mem_save_info_1;
6037         if (flags & NDR_IN) {
6038                 ZERO_STRUCT(r->out);
6039
6040                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6041                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
6042                 }
6043                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6044                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6045                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6046                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6047                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
6048                 NDR_PULL_ALLOC(ndr, r->out.info);
6049                 ZERO_STRUCTP(r->out.info);
6050         }
6051         if (flags & NDR_OUT) {
6052                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6053                         NDR_PULL_ALLOC(ndr, r->out.info);
6054                 }
6055                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
6056                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
6057                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
6058                 if (_ptr_info) {
6059                         NDR_PULL_ALLOC(ndr, *r->out.info);
6060                 } else {
6061                         *r->out.info = NULL;
6062                 }
6063                 if (*r->out.info) {
6064                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
6065                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
6066                         NDR_CHECK(ndr_pull_set_switch_value(ndr, *r->out.info, r->in.level));
6067                         NDR_CHECK(ndr_pull_samr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
6068                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
6069                 }
6070                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
6071                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6072         }
6073         return NDR_ERR_SUCCESS;
6074 }
6075
6076 _PUBLIC_ void ndr_print_samr_QueryDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryDomainInfo *r)
6077 {
6078         ndr_print_struct(ndr, name, "samr_QueryDomainInfo");
6079         ndr->depth++;
6080         if (flags & NDR_SET_VALUES) {
6081                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6082         }
6083         if (flags & NDR_IN) {
6084                 ndr_print_struct(ndr, "in", "samr_QueryDomainInfo");
6085                 ndr->depth++;
6086                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
6087                 ndr->depth++;
6088                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
6089                 ndr->depth--;
6090                 ndr_print_uint16(ndr, "level", r->in.level);
6091                 ndr->depth--;
6092         }
6093         if (flags & NDR_OUT) {
6094                 ndr_print_struct(ndr, "out", "samr_QueryDomainInfo");
6095                 ndr->depth++;
6096                 ndr_print_ptr(ndr, "info", r->out.info);
6097                 ndr->depth++;
6098                 ndr_print_ptr(ndr, "info", *r->out.info);
6099                 ndr->depth++;
6100                 if (*r->out.info) {
6101                         ndr_print_set_switch_value(ndr, *r->out.info, r->in.level);
6102                         ndr_print_samr_DomainInfo(ndr, "info", *r->out.info);
6103                 }
6104                 ndr->depth--;
6105                 ndr->depth--;
6106                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
6107                 ndr->depth--;
6108         }
6109         ndr->depth--;
6110 }
6111
6112 static enum ndr_err_code ndr_push_samr_SetDomainInfo(struct ndr_push *ndr, int flags, const struct samr_SetDomainInfo *r)
6113 {
6114         if (flags & NDR_IN) {
6115                 if (r->in.domain_handle == NULL) {
6116                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6117                 }
6118                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6119                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
6120                 if (r->in.info == NULL) {
6121                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6122                 }
6123                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level));
6124                 NDR_CHECK(ndr_push_samr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
6125         }
6126         if (flags & NDR_OUT) {
6127                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6128         }
6129         return NDR_ERR_SUCCESS;
6130 }
6131
6132 static enum ndr_err_code ndr_pull_samr_SetDomainInfo(struct ndr_pull *ndr, int flags, struct samr_SetDomainInfo *r)
6133 {
6134         TALLOC_CTX *_mem_save_domain_handle_0;
6135         TALLOC_CTX *_mem_save_info_0;
6136         if (flags & NDR_IN) {
6137                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6138                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
6139                 }
6140                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6141                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6142                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6143                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6144                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
6145                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6146                         NDR_PULL_ALLOC(ndr, r->in.info);
6147                 }
6148                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
6149                 NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC);
6150                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level));
6151                 NDR_CHECK(ndr_pull_samr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
6152                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
6153         }
6154         if (flags & NDR_OUT) {
6155                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6156         }
6157         return NDR_ERR_SUCCESS;
6158 }
6159
6160 _PUBLIC_ void ndr_print_samr_SetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetDomainInfo *r)
6161 {
6162         ndr_print_struct(ndr, name, "samr_SetDomainInfo");
6163         ndr->depth++;
6164         if (flags & NDR_SET_VALUES) {
6165                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6166         }
6167         if (flags & NDR_IN) {
6168                 ndr_print_struct(ndr, "in", "samr_SetDomainInfo");
6169                 ndr->depth++;
6170                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
6171                 ndr->depth++;
6172                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
6173                 ndr->depth--;
6174                 ndr_print_uint16(ndr, "level", r->in.level);
6175                 ndr_print_ptr(ndr, "info", r->in.info);
6176                 ndr->depth++;
6177                 ndr_print_set_switch_value(ndr, r->in.info, r->in.level);
6178                 ndr_print_samr_DomainInfo(ndr, "info", r->in.info);
6179                 ndr->depth--;
6180                 ndr->depth--;
6181         }
6182         if (flags & NDR_OUT) {
6183                 ndr_print_struct(ndr, "out", "samr_SetDomainInfo");
6184                 ndr->depth++;
6185                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
6186                 ndr->depth--;
6187         }
6188         ndr->depth--;
6189 }
6190
6191 static enum ndr_err_code ndr_push_samr_CreateDomainGroup(struct ndr_push *ndr, int flags, const struct samr_CreateDomainGroup *r)
6192 {
6193         if (flags & NDR_IN) {
6194                 if (r->in.domain_handle == NULL) {
6195                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6196                 }
6197                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6198                 if (r->in.name == NULL) {
6199                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6200                 }
6201                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
6202                 NDR_CHECK(ndr_push_samr_GroupAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
6203         }
6204         if (flags & NDR_OUT) {
6205                 if (r->out.group_handle == NULL) {
6206                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6207                 }
6208                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.group_handle));
6209                 if (r->out.rid == NULL) {
6210                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6211                 }
6212                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
6213                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6214         }
6215         return NDR_ERR_SUCCESS;
6216 }
6217
6218 static enum ndr_err_code ndr_pull_samr_CreateDomainGroup(struct ndr_pull *ndr, int flags, struct samr_CreateDomainGroup *r)
6219 {
6220         TALLOC_CTX *_mem_save_domain_handle_0;
6221         TALLOC_CTX *_mem_save_name_0;
6222         TALLOC_CTX *_mem_save_group_handle_0;
6223         TALLOC_CTX *_mem_save_rid_0;
6224         if (flags & NDR_IN) {
6225                 ZERO_STRUCT(r->out);
6226
6227                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6228                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
6229                 }
6230                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6231                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6232                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6233                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6234                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6235                         NDR_PULL_ALLOC(ndr, r->in.name);
6236                 }
6237                 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6238                 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
6239                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
6240                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
6241                 NDR_CHECK(ndr_pull_samr_GroupAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
6242                 NDR_PULL_ALLOC(ndr, r->out.group_handle);
6243                 ZERO_STRUCTP(r->out.group_handle);
6244                 NDR_PULL_ALLOC(ndr, r->out.rid);
6245                 ZERO_STRUCTP(r->out.rid);
6246         }
6247         if (flags & NDR_OUT) {
6248                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6249                         NDR_PULL_ALLOC(ndr, r->out.group_handle);
6250                 }
6251                 _mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6252                 NDR_PULL_SET_MEM_CTX(ndr, r->out.group_handle, LIBNDR_FLAG_REF_ALLOC);
6253                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.group_handle));
6254                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
6255                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6256                         NDR_PULL_ALLOC(ndr, r->out.rid);
6257                 }
6258                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6259                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
6260                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
6261                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
6262                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6263         }
6264         return NDR_ERR_SUCCESS;
6265 }
6266
6267 _PUBLIC_ void ndr_print_samr_CreateDomainGroup(struct ndr_print *ndr, const char *name, int flags, const struct samr_CreateDomainGroup *r)
6268 {
6269         ndr_print_struct(ndr, name, "samr_CreateDomainGroup");
6270         ndr->depth++;
6271         if (flags & NDR_SET_VALUES) {
6272                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6273         }
6274         if (flags & NDR_IN) {
6275                 ndr_print_struct(ndr, "in", "samr_CreateDomainGroup");
6276                 ndr->depth++;
6277                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
6278                 ndr->depth++;
6279                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
6280                 ndr->depth--;
6281                 ndr_print_ptr(ndr, "name", r->in.name);
6282                 ndr->depth++;
6283                 ndr_print_lsa_String(ndr, "name", r->in.name);
6284                 ndr->depth--;
6285                 ndr_print_samr_GroupAccessMask(ndr, "access_mask", r->in.access_mask);
6286                 ndr->depth--;
6287         }
6288         if (flags & NDR_OUT) {
6289                 ndr_print_struct(ndr, "out", "samr_CreateDomainGroup");
6290                 ndr->depth++;
6291                 ndr_print_ptr(ndr, "group_handle", r->out.group_handle);
6292                 ndr->depth++;
6293                 ndr_print_policy_handle(ndr, "group_handle", r->out.group_handle);
6294                 ndr->depth--;
6295                 ndr_print_ptr(ndr, "rid", r->out.rid);
6296                 ndr->depth++;
6297                 ndr_print_uint32(ndr, "rid", *r->out.rid);
6298                 ndr->depth--;
6299                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
6300                 ndr->depth--;
6301         }
6302         ndr->depth--;
6303 }
6304
6305 static enum ndr_err_code ndr_push_samr_EnumDomainGroups(struct ndr_push *ndr, int flags, const struct samr_EnumDomainGroups *r)
6306 {
6307         if (flags & NDR_IN) {
6308                 if (r->in.domain_handle == NULL) {
6309                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6310                 }
6311                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6312                 if (r->in.resume_handle == NULL) {
6313                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6314                 }
6315                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle));
6316                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_size));
6317         }
6318         if (flags & NDR_OUT) {
6319                 if (r->out.resume_handle == NULL) {
6320                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6321                 }
6322                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.resume_handle));
6323                 if (r->out.sam == NULL) {
6324                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6325                 }
6326                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.sam));
6327                 if (*r->out.sam) {
6328                         NDR_CHECK(ndr_push_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
6329                 }
6330                 if (r->out.num_entries == NULL) {
6331                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6332                 }
6333                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_entries));
6334                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6335         }
6336         return NDR_ERR_SUCCESS;
6337 }
6338
6339 static enum ndr_err_code ndr_pull_samr_EnumDomainGroups(struct ndr_pull *ndr, int flags, struct samr_EnumDomainGroups *r)
6340 {
6341         uint32_t _ptr_sam;
6342         TALLOC_CTX *_mem_save_domain_handle_0;
6343         TALLOC_CTX *_mem_save_resume_handle_0;
6344         TALLOC_CTX *_mem_save_sam_0;
6345         TALLOC_CTX *_mem_save_sam_1;
6346         TALLOC_CTX *_mem_save_num_entries_0;
6347         if (flags & NDR_IN) {
6348                 ZERO_STRUCT(r->out);
6349
6350                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6351                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
6352                 }
6353                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6354                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6355                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6356                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6357                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6358                         NDR_PULL_ALLOC(ndr, r->in.resume_handle);
6359                 }
6360                 _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6361                 NDR_PULL_SET_MEM_CTX(ndr, r->in.resume_handle, LIBNDR_FLAG_REF_ALLOC);
6362                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
6363                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
6364                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_size));
6365                 NDR_PULL_ALLOC(ndr, r->out.resume_handle);
6366                 *r->out.resume_handle = *r->in.resume_handle;
6367                 NDR_PULL_ALLOC(ndr, r->out.sam);
6368                 ZERO_STRUCTP(r->out.sam);
6369                 NDR_PULL_ALLOC(ndr, r->out.num_entries);
6370                 ZERO_STRUCTP(r->out.num_entries);
6371         }
6372         if (flags & NDR_OUT) {
6373                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6374                         NDR_PULL_ALLOC(ndr, r->out.resume_handle);
6375                 }
6376                 _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6377                 NDR_PULL_SET_MEM_CTX(ndr, r->out.resume_handle, LIBNDR_FLAG_REF_ALLOC);
6378                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.resume_handle));
6379                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
6380                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6381                         NDR_PULL_ALLOC(ndr, r->out.sam);
6382                 }
6383                 _mem_save_sam_0 = NDR_PULL_GET_MEM_CTX(ndr);
6384                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sam, LIBNDR_FLAG_REF_ALLOC);
6385                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam));
6386                 if (_ptr_sam) {
6387                         NDR_PULL_ALLOC(ndr, *r->out.sam);
6388                 } else {
6389                         *r->out.sam = NULL;
6390                 }
6391                 if (*r->out.sam) {
6392                         _mem_save_sam_1 = NDR_PULL_GET_MEM_CTX(ndr);
6393                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.sam, 0);
6394                         NDR_CHECK(ndr_pull_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
6395                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_1, 0);
6396                 }
6397                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_0, LIBNDR_FLAG_REF_ALLOC);
6398                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6399                         NDR_PULL_ALLOC(ndr, r->out.num_entries);
6400                 }
6401                 _mem_save_num_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
6402                 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_entries, LIBNDR_FLAG_REF_ALLOC);
6403                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_entries));
6404                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_entries_0, LIBNDR_FLAG_REF_ALLOC);
6405                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6406         }
6407         return NDR_ERR_SUCCESS;
6408 }
6409
6410 _PUBLIC_ void ndr_print_samr_EnumDomainGroups(struct ndr_print *ndr, const char *name, int flags, const struct samr_EnumDomainGroups *r)
6411 {
6412         ndr_print_struct(ndr, name, "samr_EnumDomainGroups");
6413         ndr->depth++;
6414         if (flags & NDR_SET_VALUES) {
6415                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6416         }
6417         if (flags & NDR_IN) {
6418                 ndr_print_struct(ndr, "in", "samr_EnumDomainGroups");
6419                 ndr->depth++;
6420                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
6421                 ndr->depth++;
6422                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
6423                 ndr->depth--;
6424                 ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
6425                 ndr->depth++;
6426                 ndr_print_uint32(ndr, "resume_handle", *r->in.resume_handle);
6427                 ndr->depth--;
6428                 ndr_print_uint32(ndr, "max_size", r->in.max_size);
6429                 ndr->depth--;
6430         }
6431         if (flags & NDR_OUT) {
6432                 ndr_print_struct(ndr, "out", "samr_EnumDomainGroups");
6433                 ndr->depth++;
6434                 ndr_print_ptr(ndr, "resume_handle", r->out.resume_handle);
6435                 ndr->depth++;
6436                 ndr_print_uint32(ndr, "resume_handle", *r->out.resume_handle);
6437                 ndr->depth--;
6438                 ndr_print_ptr(ndr, "sam", r->out.sam);
6439                 ndr->depth++;
6440                 ndr_print_ptr(ndr, "sam", *r->out.sam);
6441                 ndr->depth++;
6442                 if (*r->out.sam) {
6443                         ndr_print_samr_SamArray(ndr, "sam", *r->out.sam);
6444                 }
6445                 ndr->depth--;
6446                 ndr->depth--;
6447                 ndr_print_ptr(ndr, "num_entries", r->out.num_entries);
6448                 ndr->depth++;
6449                 ndr_print_uint32(ndr, "num_entries", *r->out.num_entries);
6450                 ndr->depth--;
6451                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
6452                 ndr->depth--;
6453         }
6454         ndr->depth--;
6455 }
6456
6457 static enum ndr_err_code ndr_push_samr_CreateUser(struct ndr_push *ndr, int flags, const struct samr_CreateUser *r)
6458 {
6459         if (flags & NDR_IN) {
6460                 if (r->in.domain_handle == NULL) {
6461                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6462                 }
6463                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6464                 if (r->in.account_name == NULL) {
6465                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6466                 }
6467                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account_name));
6468                 NDR_CHECK(ndr_push_samr_UserAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
6469         }
6470         if (flags & NDR_OUT) {
6471                 if (r->out.user_handle == NULL) {
6472                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6473                 }
6474                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
6475                 if (r->out.rid == NULL) {
6476                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6477                 }
6478                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
6479                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6480         }
6481         return NDR_ERR_SUCCESS;
6482 }
6483
6484 static enum ndr_err_code ndr_pull_samr_CreateUser(struct ndr_pull *ndr, int flags, struct samr_CreateUser *r)
6485 {
6486         TALLOC_CTX *_mem_save_domain_handle_0;
6487         TALLOC_CTX *_mem_save_account_name_0;
6488         TALLOC_CTX *_mem_save_user_handle_0;
6489         TALLOC_CTX *_mem_save_rid_0;
6490         if (flags & NDR_IN) {
6491                 ZERO_STRUCT(r->out);
6492
6493                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6494                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
6495                 }
6496                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6497                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6498                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6499                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6500                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6501                         NDR_PULL_ALLOC(ndr, r->in.account_name);
6502                 }
6503                 _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6504                 NDR_PULL_SET_MEM_CTX(ndr, r->in.account_name, LIBNDR_FLAG_REF_ALLOC);
6505                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account_name));
6506                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, LIBNDR_FLAG_REF_ALLOC);
6507                 NDR_CHECK(ndr_pull_samr_UserAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
6508                 NDR_PULL_ALLOC(ndr, r->out.user_handle);
6509                 ZERO_STRUCTP(r->out.user_handle);
6510                 NDR_PULL_ALLOC(ndr, r->out.rid);
6511                 ZERO_STRUCTP(r->out.rid);
6512         }
6513         if (flags & NDR_OUT) {
6514                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6515                         NDR_PULL_ALLOC(ndr, r->out.user_handle);
6516                 }
6517                 _mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6518                 NDR_PULL_SET_MEM_CTX(ndr, r->out.user_handle, LIBNDR_FLAG_REF_ALLOC);
6519                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
6520                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
6521                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6522                         NDR_PULL_ALLOC(ndr, r->out.rid);
6523                 }
6524                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6525                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
6526                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
6527                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
6528                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6529         }
6530         return NDR_ERR_SUCCESS;
6531 }
6532
6533 _PUBLIC_ void ndr_print_samr_CreateUser(struct ndr_print *ndr, const char *name, int flags, const struct samr_CreateUser *r)
6534 {
6535         ndr_print_struct(ndr, name, "samr_CreateUser");
6536         ndr->depth++;
6537         if (flags & NDR_SET_VALUES) {
6538                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6539         }
6540         if (flags & NDR_IN) {
6541                 ndr_print_struct(ndr, "in", "samr_CreateUser");
6542                 ndr->depth++;
6543                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
6544                 ndr->depth++;
6545                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
6546                 ndr->depth--;
6547                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
6548                 ndr->depth++;
6549                 ndr_print_lsa_String(ndr, "account_name", r->in.account_name);
6550                 ndr->depth--;
6551                 ndr_print_samr_UserAccessMask(ndr, "access_mask", r->in.access_mask);
6552                 ndr->depth--;
6553         }
6554         if (flags & NDR_OUT) {
6555                 ndr_print_struct(ndr, "out", "samr_CreateUser");
6556                 ndr->depth++;
6557                 ndr_print_ptr(ndr, "user_handle", r->out.user_handle);
6558                 ndr->depth++;
6559                 ndr_print_policy_handle(ndr, "user_handle", r->out.user_handle);
6560                 ndr->depth--;
6561                 ndr_print_ptr(ndr, "rid", r->out.rid);
6562                 ndr->depth++;
6563                 ndr_print_uint32(ndr, "rid", *r->out.rid);
6564                 ndr->depth--;
6565                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
6566                 ndr->depth--;
6567         }
6568         ndr->depth--;
6569 }
6570
6571 static enum ndr_err_code ndr_push_samr_EnumDomainUsers(struct ndr_push *ndr, int flags, const struct samr_EnumDomainUsers *r)
6572 {
6573         if (flags & NDR_IN) {
6574                 if (r->in.domain_handle == NULL) {
6575                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6576                 }
6577                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6578                 if (r->in.resume_handle == NULL) {
6579                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6580                 }
6581                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle));
6582                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.acct_flags));
6583                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_size));
6584         }
6585         if (flags & NDR_OUT) {
6586                 if (r->out.resume_handle == NULL) {
6587                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6588                 }
6589                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.resume_handle));
6590                 if (r->out.sam == NULL) {
6591                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6592                 }
6593                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.sam));
6594                 if (*r->out.sam) {
6595                         NDR_CHECK(ndr_push_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
6596                 }
6597                 if (r->out.num_entries == NULL) {
6598                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6599                 }
6600                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_entries));
6601                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6602         }
6603         return NDR_ERR_SUCCESS;
6604 }
6605
6606 static enum ndr_err_code ndr_pull_samr_EnumDomainUsers(struct ndr_pull *ndr, int flags, struct samr_EnumDomainUsers *r)
6607 {
6608         uint32_t _ptr_sam;
6609         TALLOC_CTX *_mem_save_domain_handle_0;
6610         TALLOC_CTX *_mem_save_resume_handle_0;
6611         TALLOC_CTX *_mem_save_sam_0;
6612         TALLOC_CTX *_mem_save_sam_1;
6613         TALLOC_CTX *_mem_save_num_entries_0;
6614         if (flags & NDR_IN) {
6615                 ZERO_STRUCT(r->out);
6616
6617                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6618                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
6619                 }
6620                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6621                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6622                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6623                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6624                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6625                         NDR_PULL_ALLOC(ndr, r->in.resume_handle);
6626                 }
6627                 _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6628                 NDR_PULL_SET_MEM_CTX(ndr, r->in.resume_handle, LIBNDR_FLAG_REF_ALLOC);
6629                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
6630                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
6631                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.acct_flags));
6632                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_size));
6633                 NDR_PULL_ALLOC(ndr, r->out.resume_handle);
6634                 *r->out.resume_handle = *r->in.resume_handle;
6635                 NDR_PULL_ALLOC(ndr, r->out.sam);
6636                 ZERO_STRUCTP(r->out.sam);
6637                 NDR_PULL_ALLOC(ndr, r->out.num_entries);
6638                 ZERO_STRUCTP(r->out.num_entries);
6639         }
6640         if (flags & NDR_OUT) {
6641                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6642                         NDR_PULL_ALLOC(ndr, r->out.resume_handle);
6643                 }
6644                 _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6645                 NDR_PULL_SET_MEM_CTX(ndr, r->out.resume_handle, LIBNDR_FLAG_REF_ALLOC);
6646                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.resume_handle));
6647                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
6648                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6649                         NDR_PULL_ALLOC(ndr, r->out.sam);
6650                 }
6651                 _mem_save_sam_0 = NDR_PULL_GET_MEM_CTX(ndr);
6652                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sam, LIBNDR_FLAG_REF_ALLOC);
6653                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam));
6654                 if (_ptr_sam) {
6655                         NDR_PULL_ALLOC(ndr, *r->out.sam);
6656                 } else {
6657                         *r->out.sam = NULL;
6658                 }
6659                 if (*r->out.sam) {
6660                         _mem_save_sam_1 = NDR_PULL_GET_MEM_CTX(ndr);
6661                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.sam, 0);
6662                         NDR_CHECK(ndr_pull_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
6663                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_1, 0);
6664                 }
6665                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_0, LIBNDR_FLAG_REF_ALLOC);
6666                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6667                         NDR_PULL_ALLOC(ndr, r->out.num_entries);
6668                 }
6669                 _mem_save_num_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
6670                 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_entries, LIBNDR_FLAG_REF_ALLOC);
6671                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_entries));
6672                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_entries_0, LIBNDR_FLAG_REF_ALLOC);
6673                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6674         }
6675         return NDR_ERR_SUCCESS;
6676 }
6677
6678 _PUBLIC_ void ndr_print_samr_EnumDomainUsers(struct ndr_print *ndr, const char *name, int flags, const struct samr_EnumDomainUsers *r)
6679 {
6680         ndr_print_struct(ndr, name, "samr_EnumDomainUsers");
6681         ndr->depth++;
6682         if (flags & NDR_SET_VALUES) {
6683                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6684         }
6685         if (flags & NDR_IN) {
6686                 ndr_print_struct(ndr, "in", "samr_EnumDomainUsers");
6687                 ndr->depth++;
6688                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
6689                 ndr->depth++;
6690                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
6691                 ndr->depth--;
6692                 ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
6693                 ndr->depth++;
6694                 ndr_print_uint32(ndr, "resume_handle", *r->in.resume_handle);
6695                 ndr->depth--;
6696                 ndr_print_samr_AcctFlags(ndr, "acct_flags", r->in.acct_flags);
6697                 ndr_print_uint32(ndr, "max_size", r->in.max_size);
6698                 ndr->depth--;
6699         }
6700         if (flags & NDR_OUT) {
6701                 ndr_print_struct(ndr, "out", "samr_EnumDomainUsers");
6702                 ndr->depth++;
6703                 ndr_print_ptr(ndr, "resume_handle", r->out.resume_handle);
6704                 ndr->depth++;
6705                 ndr_print_uint32(ndr, "resume_handle", *r->out.resume_handle);
6706                 ndr->depth--;
6707                 ndr_print_ptr(ndr, "sam", r->out.sam);
6708                 ndr->depth++;
6709                 ndr_print_ptr(ndr, "sam", *r->out.sam);
6710                 ndr->depth++;
6711                 if (*r->out.sam) {
6712                         ndr_print_samr_SamArray(ndr, "sam", *r->out.sam);
6713                 }
6714                 ndr->depth--;
6715                 ndr->depth--;
6716                 ndr_print_ptr(ndr, "num_entries", r->out.num_entries);
6717                 ndr->depth++;
6718                 ndr_print_uint32(ndr, "num_entries", *r->out.num_entries);
6719                 ndr->depth--;
6720                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
6721                 ndr->depth--;
6722         }
6723         ndr->depth--;
6724 }
6725
6726 static enum ndr_err_code ndr_push_samr_CreateDomAlias(struct ndr_push *ndr, int flags, const struct samr_CreateDomAlias *r)
6727 {
6728         if (flags & NDR_IN) {
6729                 if (r->in.domain_handle == NULL) {
6730                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6731                 }
6732                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6733                 if (r->in.alias_name == NULL) {
6734                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6735                 }
6736                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.alias_name));
6737                 NDR_CHECK(ndr_push_samr_AliasAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
6738         }
6739         if (flags & NDR_OUT) {
6740                 if (r->out.alias_handle == NULL) {
6741                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6742                 }
6743                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.alias_handle));
6744                 if (r->out.rid == NULL) {
6745                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6746                 }
6747                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
6748                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6749         }
6750         return NDR_ERR_SUCCESS;
6751 }
6752
6753 static enum ndr_err_code ndr_pull_samr_CreateDomAlias(struct ndr_pull *ndr, int flags, struct samr_CreateDomAlias *r)
6754 {
6755         TALLOC_CTX *_mem_save_domain_handle_0;
6756         TALLOC_CTX *_mem_save_alias_name_0;
6757         TALLOC_CTX *_mem_save_alias_handle_0;
6758         TALLOC_CTX *_mem_save_rid_0;
6759         if (flags & NDR_IN) {
6760                 ZERO_STRUCT(r->out);
6761
6762                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6763                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
6764                 }
6765                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6766                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6767                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6768                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6769                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6770                         NDR_PULL_ALLOC(ndr, r->in.alias_name);
6771                 }
6772                 _mem_save_alias_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6773                 NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_name, LIBNDR_FLAG_REF_ALLOC);
6774                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.alias_name));
6775                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_name_0, LIBNDR_FLAG_REF_ALLOC);
6776                 NDR_CHECK(ndr_pull_samr_AliasAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
6777                 NDR_PULL_ALLOC(ndr, r->out.alias_handle);
6778                 ZERO_STRUCTP(r->out.alias_handle);
6779                 NDR_PULL_ALLOC(ndr, r->out.rid);
6780                 ZERO_STRUCTP(r->out.rid);
6781         }
6782         if (flags & NDR_OUT) {
6783                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6784                         NDR_PULL_ALLOC(ndr, r->out.alias_handle);
6785                 }
6786                 _mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6787                 NDR_PULL_SET_MEM_CTX(ndr, r->out.alias_handle, LIBNDR_FLAG_REF_ALLOC);
6788                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.alias_handle));
6789                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
6790                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6791                         NDR_PULL_ALLOC(ndr, r->out.rid);
6792                 }
6793                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6794                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
6795                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
6796                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
6797                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6798         }
6799         return NDR_ERR_SUCCESS;
6800 }
6801
6802 _PUBLIC_ void ndr_print_samr_CreateDomAlias(struct ndr_print *ndr, const char *name, int flags, const struct samr_CreateDomAlias *r)
6803 {
6804         ndr_print_struct(ndr, name, "samr_CreateDomAlias");
6805         ndr->depth++;
6806         if (flags & NDR_SET_VALUES) {
6807                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6808         }
6809         if (flags & NDR_IN) {
6810                 ndr_print_struct(ndr, "in", "samr_CreateDomAlias");
6811                 ndr->depth++;
6812                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
6813                 ndr->depth++;
6814                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
6815                 ndr->depth--;
6816                 ndr_print_ptr(ndr, "alias_name", r->in.alias_name);
6817                 ndr->depth++;
6818                 ndr_print_lsa_String(ndr, "alias_name", r->in.alias_name);
6819                 ndr->depth--;
6820                 ndr_print_samr_AliasAccessMask(ndr, "access_mask", r->in.access_mask);
6821                 ndr->depth--;
6822         }
6823         if (flags & NDR_OUT) {
6824                 ndr_print_struct(ndr, "out", "samr_CreateDomAlias");
6825                 ndr->depth++;
6826                 ndr_print_ptr(ndr, "alias_handle", r->out.alias_handle);
6827                 ndr->depth++;
6828                 ndr_print_policy_handle(ndr, "alias_handle", r->out.alias_handle);
6829                 ndr->depth--;
6830                 ndr_print_ptr(ndr, "rid", r->out.rid);
6831                 ndr->depth++;
6832                 ndr_print_uint32(ndr, "rid", *r->out.rid);
6833                 ndr->depth--;
6834                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
6835                 ndr->depth--;
6836         }
6837         ndr->depth--;
6838 }
6839
6840 static enum ndr_err_code ndr_push_samr_EnumDomainAliases(struct ndr_push *ndr, int flags, const struct samr_EnumDomainAliases *r)
6841 {
6842         if (flags & NDR_IN) {
6843                 if (r->in.domain_handle == NULL) {
6844                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6845                 }
6846                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6847                 if (r->in.resume_handle == NULL) {
6848                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6849                 }
6850                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.resume_handle));
6851                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_size));
6852         }
6853         if (flags & NDR_OUT) {
6854                 if (r->out.resume_handle == NULL) {
6855                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6856                 }
6857                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.resume_handle));
6858                 if (r->out.sam == NULL) {
6859                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6860                 }
6861                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.sam));
6862                 if (*r->out.sam) {
6863                         NDR_CHECK(ndr_push_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
6864                 }
6865                 if (r->out.num_entries == NULL) {
6866                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6867                 }
6868                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_entries));
6869                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
6870         }
6871         return NDR_ERR_SUCCESS;
6872 }
6873
6874 static enum ndr_err_code ndr_pull_samr_EnumDomainAliases(struct ndr_pull *ndr, int flags, struct samr_EnumDomainAliases *r)
6875 {
6876         uint32_t _ptr_sam;
6877         TALLOC_CTX *_mem_save_domain_handle_0;
6878         TALLOC_CTX *_mem_save_resume_handle_0;
6879         TALLOC_CTX *_mem_save_sam_0;
6880         TALLOC_CTX *_mem_save_sam_1;
6881         TALLOC_CTX *_mem_save_num_entries_0;
6882         if (flags & NDR_IN) {
6883                 ZERO_STRUCT(r->out);
6884
6885                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6886                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
6887                 }
6888                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6889                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
6890                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6891                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
6892                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6893                         NDR_PULL_ALLOC(ndr, r->in.resume_handle);
6894                 }
6895                 _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6896                 NDR_PULL_SET_MEM_CTX(ndr, r->in.resume_handle, LIBNDR_FLAG_REF_ALLOC);
6897                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.resume_handle));
6898                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
6899                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_size));
6900                 NDR_PULL_ALLOC(ndr, r->out.resume_handle);
6901                 *r->out.resume_handle = *r->in.resume_handle;
6902                 NDR_PULL_ALLOC(ndr, r->out.sam);
6903                 ZERO_STRUCTP(r->out.sam);
6904                 NDR_PULL_ALLOC(ndr, r->out.num_entries);
6905                 ZERO_STRUCTP(r->out.num_entries);
6906         }
6907         if (flags & NDR_OUT) {
6908                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6909                         NDR_PULL_ALLOC(ndr, r->out.resume_handle);
6910                 }
6911                 _mem_save_resume_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
6912                 NDR_PULL_SET_MEM_CTX(ndr, r->out.resume_handle, LIBNDR_FLAG_REF_ALLOC);
6913                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.resume_handle));
6914                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resume_handle_0, LIBNDR_FLAG_REF_ALLOC);
6915                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6916                         NDR_PULL_ALLOC(ndr, r->out.sam);
6917                 }
6918                 _mem_save_sam_0 = NDR_PULL_GET_MEM_CTX(ndr);
6919                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sam, LIBNDR_FLAG_REF_ALLOC);
6920                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam));
6921                 if (_ptr_sam) {
6922                         NDR_PULL_ALLOC(ndr, *r->out.sam);
6923                 } else {
6924                         *r->out.sam = NULL;
6925                 }
6926                 if (*r->out.sam) {
6927                         _mem_save_sam_1 = NDR_PULL_GET_MEM_CTX(ndr);
6928                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.sam, 0);
6929                         NDR_CHECK(ndr_pull_samr_SamArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sam));
6930                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_1, 0);
6931                 }
6932                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_0, LIBNDR_FLAG_REF_ALLOC);
6933                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
6934                         NDR_PULL_ALLOC(ndr, r->out.num_entries);
6935                 }
6936                 _mem_save_num_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
6937                 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_entries, LIBNDR_FLAG_REF_ALLOC);
6938                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_entries));
6939                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_entries_0, LIBNDR_FLAG_REF_ALLOC);
6940                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
6941         }
6942         return NDR_ERR_SUCCESS;
6943 }
6944
6945 _PUBLIC_ void ndr_print_samr_EnumDomainAliases(struct ndr_print *ndr, const char *name, int flags, const struct samr_EnumDomainAliases *r)
6946 {
6947         ndr_print_struct(ndr, name, "samr_EnumDomainAliases");
6948         ndr->depth++;
6949         if (flags & NDR_SET_VALUES) {
6950                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
6951         }
6952         if (flags & NDR_IN) {
6953                 ndr_print_struct(ndr, "in", "samr_EnumDomainAliases");
6954                 ndr->depth++;
6955                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
6956                 ndr->depth++;
6957                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
6958                 ndr->depth--;
6959                 ndr_print_ptr(ndr, "resume_handle", r->in.resume_handle);
6960                 ndr->depth++;
6961                 ndr_print_uint32(ndr, "resume_handle", *r->in.resume_handle);
6962                 ndr->depth--;
6963                 ndr_print_uint32(ndr, "max_size", r->in.max_size);
6964                 ndr->depth--;
6965         }
6966         if (flags & NDR_OUT) {
6967                 ndr_print_struct(ndr, "out", "samr_EnumDomainAliases");
6968                 ndr->depth++;
6969                 ndr_print_ptr(ndr, "resume_handle", r->out.resume_handle);
6970                 ndr->depth++;
6971                 ndr_print_uint32(ndr, "resume_handle", *r->out.resume_handle);
6972                 ndr->depth--;
6973                 ndr_print_ptr(ndr, "sam", r->out.sam);
6974                 ndr->depth++;
6975                 ndr_print_ptr(ndr, "sam", *r->out.sam);
6976                 ndr->depth++;
6977                 if (*r->out.sam) {
6978                         ndr_print_samr_SamArray(ndr, "sam", *r->out.sam);
6979                 }
6980                 ndr->depth--;
6981                 ndr->depth--;
6982                 ndr_print_ptr(ndr, "num_entries", r->out.num_entries);
6983                 ndr->depth++;
6984                 ndr_print_uint32(ndr, "num_entries", *r->out.num_entries);
6985                 ndr->depth--;
6986                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
6987                 ndr->depth--;
6988         }
6989         ndr->depth--;
6990 }
6991
6992 static enum ndr_err_code ndr_push_samr_GetAliasMembership(struct ndr_push *ndr, int flags, const struct samr_GetAliasMembership *r)
6993 {
6994         if (flags & NDR_IN) {
6995                 if (r->in.domain_handle == NULL) {
6996                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
6997                 }
6998                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
6999                 if (r->in.sids == NULL) {
7000                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7001                 }
7002                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
7003         }
7004         if (flags & NDR_OUT) {
7005                 if (r->out.rids == NULL) {
7006                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7007                 }
7008                 NDR_CHECK(ndr_push_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rids));
7009                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7010         }
7011         return NDR_ERR_SUCCESS;
7012 }
7013
7014 static enum ndr_err_code ndr_pull_samr_GetAliasMembership(struct ndr_pull *ndr, int flags, struct samr_GetAliasMembership *r)
7015 {
7016         TALLOC_CTX *_mem_save_domain_handle_0;
7017         TALLOC_CTX *_mem_save_sids_0;
7018         TALLOC_CTX *_mem_save_rids_0;
7019         if (flags & NDR_IN) {
7020                 ZERO_STRUCT(r->out);
7021
7022                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7023                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
7024                 }
7025                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7026                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
7027                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7028                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
7029                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7030                         NDR_PULL_ALLOC(ndr, r->in.sids);
7031                 }
7032                 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
7033                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sids, LIBNDR_FLAG_REF_ALLOC);
7034                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
7035                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, LIBNDR_FLAG_REF_ALLOC);
7036                 NDR_PULL_ALLOC(ndr, r->out.rids);
7037                 ZERO_STRUCTP(r->out.rids);
7038         }
7039         if (flags & NDR_OUT) {
7040                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7041                         NDR_PULL_ALLOC(ndr, r->out.rids);
7042                 }
7043                 _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
7044                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rids, LIBNDR_FLAG_REF_ALLOC);
7045                 NDR_CHECK(ndr_pull_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rids));
7046                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, LIBNDR_FLAG_REF_ALLOC);
7047                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7048         }
7049         return NDR_ERR_SUCCESS;
7050 }
7051
7052 _PUBLIC_ void ndr_print_samr_GetAliasMembership(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetAliasMembership *r)
7053 {
7054         ndr_print_struct(ndr, name, "samr_GetAliasMembership");
7055         ndr->depth++;
7056         if (flags & NDR_SET_VALUES) {
7057                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7058         }
7059         if (flags & NDR_IN) {
7060                 ndr_print_struct(ndr, "in", "samr_GetAliasMembership");
7061                 ndr->depth++;
7062                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
7063                 ndr->depth++;
7064                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
7065                 ndr->depth--;
7066                 ndr_print_ptr(ndr, "sids", r->in.sids);
7067                 ndr->depth++;
7068                 ndr_print_lsa_SidArray(ndr, "sids", r->in.sids);
7069                 ndr->depth--;
7070                 ndr->depth--;
7071         }
7072         if (flags & NDR_OUT) {
7073                 ndr_print_struct(ndr, "out", "samr_GetAliasMembership");
7074                 ndr->depth++;
7075                 ndr_print_ptr(ndr, "rids", r->out.rids);
7076                 ndr->depth++;
7077                 ndr_print_samr_Ids(ndr, "rids", r->out.rids);
7078                 ndr->depth--;
7079                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
7080                 ndr->depth--;
7081         }
7082         ndr->depth--;
7083 }
7084
7085 _PUBLIC_ enum ndr_err_code ndr_push_samr_LookupNames(struct ndr_push *ndr, int flags, const struct samr_LookupNames *r)
7086 {
7087         uint32_t cntr_names_0;
7088         if (flags & NDR_IN) {
7089                 if (r->in.domain_handle == NULL) {
7090                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7091                 }
7092                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7093                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_names));
7094                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1000));
7095                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7096                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_names));
7097                 for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) {
7098                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->in.names[cntr_names_0]));
7099                 }
7100                 for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) {
7101                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->in.names[cntr_names_0]));
7102                 }
7103         }
7104         if (flags & NDR_OUT) {
7105                 if (r->out.rids == NULL) {
7106                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7107                 }
7108                 NDR_CHECK(ndr_push_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rids));
7109                 if (r->out.types == NULL) {
7110                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7111                 }
7112                 NDR_CHECK(ndr_push_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.types));
7113                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7114         }
7115         return NDR_ERR_SUCCESS;
7116 }
7117
7118 _PUBLIC_ enum ndr_err_code ndr_pull_samr_LookupNames(struct ndr_pull *ndr, int flags, struct samr_LookupNames *r)
7119 {
7120         uint32_t cntr_names_0;
7121         TALLOC_CTX *_mem_save_domain_handle_0;
7122         TALLOC_CTX *_mem_save_names_0;
7123         TALLOC_CTX *_mem_save_rids_0;
7124         TALLOC_CTX *_mem_save_types_0;
7125         if (flags & NDR_IN) {
7126                 ZERO_STRUCT(r->out);
7127
7128                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7129                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
7130                 }
7131                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7132                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
7133                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7134                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
7135                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_names));
7136                 if (r->in.num_names < 0 || r->in.num_names > 1000) {
7137                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7138                 }
7139                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.names));
7140                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.names));
7141                 if (ndr_get_array_length(ndr, &r->in.names) > ndr_get_array_size(ndr, &r->in.names)) {
7142                         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));
7143                 }
7144                 NDR_PULL_ALLOC_N(ndr, r->in.names, ndr_get_array_size(ndr, &r->in.names));
7145                 _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
7146                 NDR_PULL_SET_MEM_CTX(ndr, r->in.names, 0);
7147                 for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) {
7148                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->in.names[cntr_names_0]));
7149                 }
7150                 for (cntr_names_0 = 0; cntr_names_0 < r->in.num_names; cntr_names_0++) {
7151                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->in.names[cntr_names_0]));
7152                 }
7153                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0);
7154                 NDR_PULL_ALLOC(ndr, r->out.rids);
7155                 ZERO_STRUCTP(r->out.rids);
7156                 NDR_PULL_ALLOC(ndr, r->out.types);
7157                 ZERO_STRUCTP(r->out.types);
7158                 if (r->in.names) {
7159                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.names, 1000));
7160                 }
7161                 if (r->in.names) {
7162                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.names, r->in.num_names));
7163                 }
7164         }
7165         if (flags & NDR_OUT) {
7166                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7167                         NDR_PULL_ALLOC(ndr, r->out.rids);
7168                 }
7169                 _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
7170                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rids, LIBNDR_FLAG_REF_ALLOC);
7171                 NDR_CHECK(ndr_pull_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rids));
7172                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, LIBNDR_FLAG_REF_ALLOC);
7173                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7174                         NDR_PULL_ALLOC(ndr, r->out.types);
7175                 }
7176                 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
7177                 NDR_PULL_SET_MEM_CTX(ndr, r->out.types, LIBNDR_FLAG_REF_ALLOC);
7178                 NDR_CHECK(ndr_pull_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.types));
7179                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, LIBNDR_FLAG_REF_ALLOC);
7180                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7181         }
7182         return NDR_ERR_SUCCESS;
7183 }
7184
7185 _PUBLIC_ void ndr_print_samr_LookupNames(struct ndr_print *ndr, const char *name, int flags, const struct samr_LookupNames *r)
7186 {
7187         uint32_t cntr_names_0;
7188         ndr_print_struct(ndr, name, "samr_LookupNames");
7189         ndr->depth++;
7190         if (flags & NDR_SET_VALUES) {
7191                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7192         }
7193         if (flags & NDR_IN) {
7194                 ndr_print_struct(ndr, "in", "samr_LookupNames");
7195                 ndr->depth++;
7196                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
7197                 ndr->depth++;
7198                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
7199                 ndr->depth--;
7200                 ndr_print_uint32(ndr, "num_names", r->in.num_names);
7201                 ndr->print(ndr, "%s: ARRAY(%d)", "names", (int)r->in.num_names);
7202                 ndr->depth++;
7203                 for (cntr_names_0=0;cntr_names_0<r->in.num_names;cntr_names_0++) {
7204                         char *idx_0=NULL;
7205                         if (asprintf(&idx_0, "[%d]", cntr_names_0) != -1) {
7206                                 ndr_print_lsa_String(ndr, "names", &r->in.names[cntr_names_0]);
7207                                 free(idx_0);
7208                         }
7209                 }
7210                 ndr->depth--;
7211                 ndr->depth--;
7212         }
7213         if (flags & NDR_OUT) {
7214                 ndr_print_struct(ndr, "out", "samr_LookupNames");
7215                 ndr->depth++;
7216                 ndr_print_ptr(ndr, "rids", r->out.rids);
7217                 ndr->depth++;
7218                 ndr_print_samr_Ids(ndr, "rids", r->out.rids);
7219                 ndr->depth--;
7220                 ndr_print_ptr(ndr, "types", r->out.types);
7221                 ndr->depth++;
7222                 ndr_print_samr_Ids(ndr, "types", r->out.types);
7223                 ndr->depth--;
7224                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
7225                 ndr->depth--;
7226         }
7227         ndr->depth--;
7228 }
7229
7230 static enum ndr_err_code ndr_push_samr_LookupRids(struct ndr_push *ndr, int flags, const struct samr_LookupRids *r)
7231 {
7232         uint32_t cntr_rids_0;
7233         if (flags & NDR_IN) {
7234                 if (r->in.domain_handle == NULL) {
7235                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7236                 }
7237                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7238                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_rids));
7239                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1000));
7240                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7241                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.num_rids));
7242                 for (cntr_rids_0 = 0; cntr_rids_0 < r->in.num_rids; cntr_rids_0++) {
7243                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.rids[cntr_rids_0]));
7244                 }
7245         }
7246         if (flags & NDR_OUT) {
7247                 if (r->out.names == NULL) {
7248                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7249                 }
7250                 NDR_CHECK(ndr_push_lsa_Strings(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.names));
7251                 if (r->out.types == NULL) {
7252                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7253                 }
7254                 NDR_CHECK(ndr_push_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.types));
7255                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7256         }
7257         return NDR_ERR_SUCCESS;
7258 }
7259
7260 static enum ndr_err_code ndr_pull_samr_LookupRids(struct ndr_pull *ndr, int flags, struct samr_LookupRids *r)
7261 {
7262         uint32_t cntr_rids_0;
7263         TALLOC_CTX *_mem_save_domain_handle_0;
7264         TALLOC_CTX *_mem_save_rids_0;
7265         TALLOC_CTX *_mem_save_names_0;
7266         TALLOC_CTX *_mem_save_types_0;
7267         if (flags & NDR_IN) {
7268                 ZERO_STRUCT(r->out);
7269
7270                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7271                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
7272                 }
7273                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7274                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
7275                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7276                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
7277                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.num_rids));
7278                 if (r->in.num_rids < 0 || r->in.num_rids > 1000) {
7279                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7280                 }
7281                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.rids));
7282                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.rids));
7283                 if (ndr_get_array_length(ndr, &r->in.rids) > ndr_get_array_size(ndr, &r->in.rids)) {
7284                         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));
7285                 }
7286                 NDR_PULL_ALLOC_N(ndr, r->in.rids, ndr_get_array_size(ndr, &r->in.rids));
7287                 _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
7288                 NDR_PULL_SET_MEM_CTX(ndr, r->in.rids, 0);
7289                 for (cntr_rids_0 = 0; cntr_rids_0 < r->in.num_rids; cntr_rids_0++) {
7290                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rids[cntr_rids_0]));
7291                 }
7292                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
7293                 NDR_PULL_ALLOC(ndr, r->out.names);
7294                 ZERO_STRUCTP(r->out.names);
7295                 NDR_PULL_ALLOC(ndr, r->out.types);
7296                 ZERO_STRUCTP(r->out.types);
7297                 if (r->in.rids) {
7298                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.rids, 1000));
7299                 }
7300                 if (r->in.rids) {
7301                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.rids, r->in.num_rids));
7302                 }
7303         }
7304         if (flags & NDR_OUT) {
7305                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7306                         NDR_PULL_ALLOC(ndr, r->out.names);
7307                 }
7308                 _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
7309                 NDR_PULL_SET_MEM_CTX(ndr, r->out.names, LIBNDR_FLAG_REF_ALLOC);
7310                 NDR_CHECK(ndr_pull_lsa_Strings(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.names));
7311                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, LIBNDR_FLAG_REF_ALLOC);
7312                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7313                         NDR_PULL_ALLOC(ndr, r->out.types);
7314                 }
7315                 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
7316                 NDR_PULL_SET_MEM_CTX(ndr, r->out.types, LIBNDR_FLAG_REF_ALLOC);
7317                 NDR_CHECK(ndr_pull_samr_Ids(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.types));
7318                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, LIBNDR_FLAG_REF_ALLOC);
7319                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7320         }
7321         return NDR_ERR_SUCCESS;
7322 }
7323
7324 _PUBLIC_ void ndr_print_samr_LookupRids(struct ndr_print *ndr, const char *name, int flags, const struct samr_LookupRids *r)
7325 {
7326         uint32_t cntr_rids_0;
7327         ndr_print_struct(ndr, name, "samr_LookupRids");
7328         ndr->depth++;
7329         if (flags & NDR_SET_VALUES) {
7330                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7331         }
7332         if (flags & NDR_IN) {
7333                 ndr_print_struct(ndr, "in", "samr_LookupRids");
7334                 ndr->depth++;
7335                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
7336                 ndr->depth++;
7337                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
7338                 ndr->depth--;
7339                 ndr_print_uint32(ndr, "num_rids", r->in.num_rids);
7340                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->in.num_rids);
7341                 ndr->depth++;
7342                 for (cntr_rids_0=0;cntr_rids_0<r->in.num_rids;cntr_rids_0++) {
7343                         char *idx_0=NULL;
7344                         if (asprintf(&idx_0, "[%d]", cntr_rids_0) != -1) {
7345                                 ndr_print_uint32(ndr, "rids", r->in.rids[cntr_rids_0]);
7346                                 free(idx_0);
7347                         }
7348                 }
7349                 ndr->depth--;
7350                 ndr->depth--;
7351         }
7352         if (flags & NDR_OUT) {
7353                 ndr_print_struct(ndr, "out", "samr_LookupRids");
7354                 ndr->depth++;
7355                 ndr_print_ptr(ndr, "names", r->out.names);
7356                 ndr->depth++;
7357                 ndr_print_lsa_Strings(ndr, "names", r->out.names);
7358                 ndr->depth--;
7359                 ndr_print_ptr(ndr, "types", r->out.types);
7360                 ndr->depth++;
7361                 ndr_print_samr_Ids(ndr, "types", r->out.types);
7362                 ndr->depth--;
7363                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
7364                 ndr->depth--;
7365         }
7366         ndr->depth--;
7367 }
7368
7369 static enum ndr_err_code ndr_push_samr_OpenGroup(struct ndr_push *ndr, int flags, const struct samr_OpenGroup *r)
7370 {
7371         if (flags & NDR_IN) {
7372                 if (r->in.domain_handle == NULL) {
7373                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7374                 }
7375                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7376                 NDR_CHECK(ndr_push_samr_GroupAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
7377                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.rid));
7378         }
7379         if (flags & NDR_OUT) {
7380                 if (r->out.group_handle == NULL) {
7381                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7382                 }
7383                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.group_handle));
7384                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7385         }
7386         return NDR_ERR_SUCCESS;
7387 }
7388
7389 static enum ndr_err_code ndr_pull_samr_OpenGroup(struct ndr_pull *ndr, int flags, struct samr_OpenGroup *r)
7390 {
7391         TALLOC_CTX *_mem_save_domain_handle_0;
7392         TALLOC_CTX *_mem_save_group_handle_0;
7393         if (flags & NDR_IN) {
7394                 ZERO_STRUCT(r->out);
7395
7396                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7397                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
7398                 }
7399                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7400                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
7401                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
7402                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
7403                 NDR_CHECK(ndr_pull_samr_GroupAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
7404                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rid));
7405                 NDR_PULL_ALLOC(ndr, r->out.group_handle);
7406                 ZERO_STRUCTP(r->out.group_handle);
7407         }
7408         if (flags & NDR_OUT) {
7409                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7410                         NDR_PULL_ALLOC(ndr, r->out.group_handle);
7411                 }
7412                 _mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7413                 NDR_PULL_SET_MEM_CTX(ndr, r->out.group_handle, LIBNDR_FLAG_REF_ALLOC);
7414                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.group_handle));
7415                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
7416                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7417         }
7418         return NDR_ERR_SUCCESS;
7419 }
7420
7421 _PUBLIC_ void ndr_print_samr_OpenGroup(struct ndr_print *ndr, const char *name, int flags, const struct samr_OpenGroup *r)
7422 {
7423         ndr_print_struct(ndr, name, "samr_OpenGroup");
7424         ndr->depth++;
7425         if (flags & NDR_SET_VALUES) {
7426                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7427         }
7428         if (flags & NDR_IN) {
7429                 ndr_print_struct(ndr, "in", "samr_OpenGroup");
7430                 ndr->depth++;
7431                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
7432                 ndr->depth++;
7433                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
7434                 ndr->depth--;
7435                 ndr_print_samr_GroupAccessMask(ndr, "access_mask", r->in.access_mask);
7436                 ndr_print_uint32(ndr, "rid", r->in.rid);
7437                 ndr->depth--;
7438         }
7439         if (flags & NDR_OUT) {
7440                 ndr_print_struct(ndr, "out", "samr_OpenGroup");
7441                 ndr->depth++;
7442                 ndr_print_ptr(ndr, "group_handle", r->out.group_handle);
7443                 ndr->depth++;
7444                 ndr_print_policy_handle(ndr, "group_handle", r->out.group_handle);
7445                 ndr->depth--;
7446                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
7447                 ndr->depth--;
7448         }
7449         ndr->depth--;
7450 }
7451
7452 static enum ndr_err_code ndr_push_samr_QueryGroupInfo(struct ndr_push *ndr, int flags, const struct samr_QueryGroupInfo *r)
7453 {
7454         if (flags & NDR_IN) {
7455                 if (r->in.group_handle == NULL) {
7456                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7457                 }
7458                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7459                 NDR_CHECK(ndr_push_samr_GroupInfoEnum(ndr, NDR_SCALARS, r->in.level));
7460         }
7461         if (flags & NDR_OUT) {
7462                 if (r->out.info == NULL) {
7463                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7464                 }
7465                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
7466                 if (*r->out.info) {
7467                         NDR_CHECK(ndr_push_set_switch_value(ndr, *r->out.info, r->in.level));
7468                         NDR_CHECK(ndr_push_samr_GroupInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
7469                 }
7470                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7471         }
7472         return NDR_ERR_SUCCESS;
7473 }
7474
7475 static enum ndr_err_code ndr_pull_samr_QueryGroupInfo(struct ndr_pull *ndr, int flags, struct samr_QueryGroupInfo *r)
7476 {
7477         uint32_t _ptr_info;
7478         TALLOC_CTX *_mem_save_group_handle_0;
7479         TALLOC_CTX *_mem_save_info_0;
7480         TALLOC_CTX *_mem_save_info_1;
7481         if (flags & NDR_IN) {
7482                 ZERO_STRUCT(r->out);
7483
7484                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7485                         NDR_PULL_ALLOC(ndr, r->in.group_handle);
7486                 }
7487                 _mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7488                 NDR_PULL_SET_MEM_CTX(ndr, r->in.group_handle, LIBNDR_FLAG_REF_ALLOC);
7489                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7490                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
7491                 NDR_CHECK(ndr_pull_samr_GroupInfoEnum(ndr, NDR_SCALARS, &r->in.level));
7492                 NDR_PULL_ALLOC(ndr, r->out.info);
7493                 ZERO_STRUCTP(r->out.info);
7494         }
7495         if (flags & NDR_OUT) {
7496                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7497                         NDR_PULL_ALLOC(ndr, r->out.info);
7498                 }
7499                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7500                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
7501                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
7502                 if (_ptr_info) {
7503                         NDR_PULL_ALLOC(ndr, *r->out.info);
7504                 } else {
7505                         *r->out.info = NULL;
7506                 }
7507                 if (*r->out.info) {
7508                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
7509                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
7510                         NDR_CHECK(ndr_pull_set_switch_value(ndr, *r->out.info, r->in.level));
7511                         NDR_CHECK(ndr_pull_samr_GroupInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
7512                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
7513                 }
7514                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
7515                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7516         }
7517         return NDR_ERR_SUCCESS;
7518 }
7519
7520 _PUBLIC_ void ndr_print_samr_QueryGroupInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryGroupInfo *r)
7521 {
7522         ndr_print_struct(ndr, name, "samr_QueryGroupInfo");
7523         ndr->depth++;
7524         if (flags & NDR_SET_VALUES) {
7525                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7526         }
7527         if (flags & NDR_IN) {
7528                 ndr_print_struct(ndr, "in", "samr_QueryGroupInfo");
7529                 ndr->depth++;
7530                 ndr_print_ptr(ndr, "group_handle", r->in.group_handle);
7531                 ndr->depth++;
7532                 ndr_print_policy_handle(ndr, "group_handle", r->in.group_handle);
7533                 ndr->depth--;
7534                 ndr_print_samr_GroupInfoEnum(ndr, "level", r->in.level);
7535                 ndr->depth--;
7536         }
7537         if (flags & NDR_OUT) {
7538                 ndr_print_struct(ndr, "out", "samr_QueryGroupInfo");
7539                 ndr->depth++;
7540                 ndr_print_ptr(ndr, "info", r->out.info);
7541                 ndr->depth++;
7542                 ndr_print_ptr(ndr, "info", *r->out.info);
7543                 ndr->depth++;
7544                 if (*r->out.info) {
7545                         ndr_print_set_switch_value(ndr, *r->out.info, r->in.level);
7546                         ndr_print_samr_GroupInfo(ndr, "info", *r->out.info);
7547                 }
7548                 ndr->depth--;
7549                 ndr->depth--;
7550                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
7551                 ndr->depth--;
7552         }
7553         ndr->depth--;
7554 }
7555
7556 static enum ndr_err_code ndr_push_samr_SetGroupInfo(struct ndr_push *ndr, int flags, const struct samr_SetGroupInfo *r)
7557 {
7558         if (flags & NDR_IN) {
7559                 if (r->in.group_handle == NULL) {
7560                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7561                 }
7562                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7563                 NDR_CHECK(ndr_push_samr_GroupInfoEnum(ndr, NDR_SCALARS, r->in.level));
7564                 if (r->in.info == NULL) {
7565                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7566                 }
7567                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level));
7568                 NDR_CHECK(ndr_push_samr_GroupInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
7569         }
7570         if (flags & NDR_OUT) {
7571                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7572         }
7573         return NDR_ERR_SUCCESS;
7574 }
7575
7576 static enum ndr_err_code ndr_pull_samr_SetGroupInfo(struct ndr_pull *ndr, int flags, struct samr_SetGroupInfo *r)
7577 {
7578         TALLOC_CTX *_mem_save_group_handle_0;
7579         TALLOC_CTX *_mem_save_info_0;
7580         if (flags & NDR_IN) {
7581                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7582                         NDR_PULL_ALLOC(ndr, r->in.group_handle);
7583                 }
7584                 _mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7585                 NDR_PULL_SET_MEM_CTX(ndr, r->in.group_handle, LIBNDR_FLAG_REF_ALLOC);
7586                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7587                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
7588                 NDR_CHECK(ndr_pull_samr_GroupInfoEnum(ndr, NDR_SCALARS, &r->in.level));
7589                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7590                         NDR_PULL_ALLOC(ndr, r->in.info);
7591                 }
7592                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7593                 NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC);
7594                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level));
7595                 NDR_CHECK(ndr_pull_samr_GroupInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
7596                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
7597         }
7598         if (flags & NDR_OUT) {
7599                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7600         }
7601         return NDR_ERR_SUCCESS;
7602 }
7603
7604 _PUBLIC_ void ndr_print_samr_SetGroupInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetGroupInfo *r)
7605 {
7606         ndr_print_struct(ndr, name, "samr_SetGroupInfo");
7607         ndr->depth++;
7608         if (flags & NDR_SET_VALUES) {
7609                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7610         }
7611         if (flags & NDR_IN) {
7612                 ndr_print_struct(ndr, "in", "samr_SetGroupInfo");
7613                 ndr->depth++;
7614                 ndr_print_ptr(ndr, "group_handle", r->in.group_handle);
7615                 ndr->depth++;
7616                 ndr_print_policy_handle(ndr, "group_handle", r->in.group_handle);
7617                 ndr->depth--;
7618                 ndr_print_samr_GroupInfoEnum(ndr, "level", r->in.level);
7619                 ndr_print_ptr(ndr, "info", r->in.info);
7620                 ndr->depth++;
7621                 ndr_print_set_switch_value(ndr, r->in.info, r->in.level);
7622                 ndr_print_samr_GroupInfo(ndr, "info", r->in.info);
7623                 ndr->depth--;
7624                 ndr->depth--;
7625         }
7626         if (flags & NDR_OUT) {
7627                 ndr_print_struct(ndr, "out", "samr_SetGroupInfo");
7628                 ndr->depth++;
7629                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
7630                 ndr->depth--;
7631         }
7632         ndr->depth--;
7633 }
7634
7635 static enum ndr_err_code ndr_push_samr_AddGroupMember(struct ndr_push *ndr, int flags, const struct samr_AddGroupMember *r)
7636 {
7637         if (flags & NDR_IN) {
7638                 if (r->in.group_handle == NULL) {
7639                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7640                 }
7641                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7642                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.rid));
7643                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
7644         }
7645         if (flags & NDR_OUT) {
7646                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7647         }
7648         return NDR_ERR_SUCCESS;
7649 }
7650
7651 static enum ndr_err_code ndr_pull_samr_AddGroupMember(struct ndr_pull *ndr, int flags, struct samr_AddGroupMember *r)
7652 {
7653         TALLOC_CTX *_mem_save_group_handle_0;
7654         if (flags & NDR_IN) {
7655                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7656                         NDR_PULL_ALLOC(ndr, r->in.group_handle);
7657                 }
7658                 _mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7659                 NDR_PULL_SET_MEM_CTX(ndr, r->in.group_handle, LIBNDR_FLAG_REF_ALLOC);
7660                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7661                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
7662                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rid));
7663                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
7664         }
7665         if (flags & NDR_OUT) {
7666                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7667         }
7668         return NDR_ERR_SUCCESS;
7669 }
7670
7671 _PUBLIC_ void ndr_print_samr_AddGroupMember(struct ndr_print *ndr, const char *name, int flags, const struct samr_AddGroupMember *r)
7672 {
7673         ndr_print_struct(ndr, name, "samr_AddGroupMember");
7674         ndr->depth++;
7675         if (flags & NDR_SET_VALUES) {
7676                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7677         }
7678         if (flags & NDR_IN) {
7679                 ndr_print_struct(ndr, "in", "samr_AddGroupMember");
7680                 ndr->depth++;
7681                 ndr_print_ptr(ndr, "group_handle", r->in.group_handle);
7682                 ndr->depth++;
7683                 ndr_print_policy_handle(ndr, "group_handle", r->in.group_handle);
7684                 ndr->depth--;
7685                 ndr_print_uint32(ndr, "rid", r->in.rid);
7686                 ndr_print_uint32(ndr, "flags", r->in.flags);
7687                 ndr->depth--;
7688         }
7689         if (flags & NDR_OUT) {
7690                 ndr_print_struct(ndr, "out", "samr_AddGroupMember");
7691                 ndr->depth++;
7692                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
7693                 ndr->depth--;
7694         }
7695         ndr->depth--;
7696 }
7697
7698 static enum ndr_err_code ndr_push_samr_DeleteDomainGroup(struct ndr_push *ndr, int flags, const struct samr_DeleteDomainGroup *r)
7699 {
7700         if (flags & NDR_IN) {
7701                 if (r->in.group_handle == NULL) {
7702                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7703                 }
7704                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7705         }
7706         if (flags & NDR_OUT) {
7707                 if (r->out.group_handle == NULL) {
7708                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7709                 }
7710                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.group_handle));
7711                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7712         }
7713         return NDR_ERR_SUCCESS;
7714 }
7715
7716 static enum ndr_err_code ndr_pull_samr_DeleteDomainGroup(struct ndr_pull *ndr, int flags, struct samr_DeleteDomainGroup *r)
7717 {
7718         TALLOC_CTX *_mem_save_group_handle_0;
7719         if (flags & NDR_IN) {
7720                 ZERO_STRUCT(r->out);
7721
7722                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7723                         NDR_PULL_ALLOC(ndr, r->in.group_handle);
7724                 }
7725                 _mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7726                 NDR_PULL_SET_MEM_CTX(ndr, r->in.group_handle, LIBNDR_FLAG_REF_ALLOC);
7727                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7728                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
7729                 NDR_PULL_ALLOC(ndr, r->out.group_handle);
7730                 *r->out.group_handle = *r->in.group_handle;
7731         }
7732         if (flags & NDR_OUT) {
7733                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7734                         NDR_PULL_ALLOC(ndr, r->out.group_handle);
7735                 }
7736                 _mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7737                 NDR_PULL_SET_MEM_CTX(ndr, r->out.group_handle, LIBNDR_FLAG_REF_ALLOC);
7738                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.group_handle));
7739                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
7740                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7741         }
7742         return NDR_ERR_SUCCESS;
7743 }
7744
7745 _PUBLIC_ void ndr_print_samr_DeleteDomainGroup(struct ndr_print *ndr, const char *name, int flags, const struct samr_DeleteDomainGroup *r)
7746 {
7747         ndr_print_struct(ndr, name, "samr_DeleteDomainGroup");
7748         ndr->depth++;
7749         if (flags & NDR_SET_VALUES) {
7750                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7751         }
7752         if (flags & NDR_IN) {
7753                 ndr_print_struct(ndr, "in", "samr_DeleteDomainGroup");
7754                 ndr->depth++;
7755                 ndr_print_ptr(ndr, "group_handle", r->in.group_handle);
7756                 ndr->depth++;
7757                 ndr_print_policy_handle(ndr, "group_handle", r->in.group_handle);
7758                 ndr->depth--;
7759                 ndr->depth--;
7760         }
7761         if (flags & NDR_OUT) {
7762                 ndr_print_struct(ndr, "out", "samr_DeleteDomainGroup");
7763                 ndr->depth++;
7764                 ndr_print_ptr(ndr, "group_handle", r->out.group_handle);
7765                 ndr->depth++;
7766                 ndr_print_policy_handle(ndr, "group_handle", r->out.group_handle);
7767                 ndr->depth--;
7768                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
7769                 ndr->depth--;
7770         }
7771         ndr->depth--;
7772 }
7773
7774 static enum ndr_err_code ndr_push_samr_DeleteGroupMember(struct ndr_push *ndr, int flags, const struct samr_DeleteGroupMember *r)
7775 {
7776         if (flags & NDR_IN) {
7777                 if (r->in.group_handle == NULL) {
7778                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7779                 }
7780                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7781                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.rid));
7782         }
7783         if (flags & NDR_OUT) {
7784                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7785         }
7786         return NDR_ERR_SUCCESS;
7787 }
7788
7789 static enum ndr_err_code ndr_pull_samr_DeleteGroupMember(struct ndr_pull *ndr, int flags, struct samr_DeleteGroupMember *r)
7790 {
7791         TALLOC_CTX *_mem_save_group_handle_0;
7792         if (flags & NDR_IN) {
7793                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7794                         NDR_PULL_ALLOC(ndr, r->in.group_handle);
7795                 }
7796                 _mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7797                 NDR_PULL_SET_MEM_CTX(ndr, r->in.group_handle, LIBNDR_FLAG_REF_ALLOC);
7798                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7799                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
7800                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rid));
7801         }
7802         if (flags & NDR_OUT) {
7803                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7804         }
7805         return NDR_ERR_SUCCESS;
7806 }
7807
7808 _PUBLIC_ void ndr_print_samr_DeleteGroupMember(struct ndr_print *ndr, const char *name, int flags, const struct samr_DeleteGroupMember *r)
7809 {
7810         ndr_print_struct(ndr, name, "samr_DeleteGroupMember");
7811         ndr->depth++;
7812         if (flags & NDR_SET_VALUES) {
7813                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7814         }
7815         if (flags & NDR_IN) {
7816                 ndr_print_struct(ndr, "in", "samr_DeleteGroupMember");
7817                 ndr->depth++;
7818                 ndr_print_ptr(ndr, "group_handle", r->in.group_handle);
7819                 ndr->depth++;
7820                 ndr_print_policy_handle(ndr, "group_handle", r->in.group_handle);
7821                 ndr->depth--;
7822                 ndr_print_uint32(ndr, "rid", r->in.rid);
7823                 ndr->depth--;
7824         }
7825         if (flags & NDR_OUT) {
7826                 ndr_print_struct(ndr, "out", "samr_DeleteGroupMember");
7827                 ndr->depth++;
7828                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
7829                 ndr->depth--;
7830         }
7831         ndr->depth--;
7832 }
7833
7834 static enum ndr_err_code ndr_push_samr_QueryGroupMember(struct ndr_push *ndr, int flags, const struct samr_QueryGroupMember *r)
7835 {
7836         if (flags & NDR_IN) {
7837                 if (r->in.group_handle == NULL) {
7838                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7839                 }
7840                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7841         }
7842         if (flags & NDR_OUT) {
7843                 if (r->out.rids == NULL) {
7844                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7845                 }
7846                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.rids));
7847                 if (*r->out.rids) {
7848                         NDR_CHECK(ndr_push_samr_RidTypeArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.rids));
7849                 }
7850                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7851         }
7852         return NDR_ERR_SUCCESS;
7853 }
7854
7855 static enum ndr_err_code ndr_pull_samr_QueryGroupMember(struct ndr_pull *ndr, int flags, struct samr_QueryGroupMember *r)
7856 {
7857         uint32_t _ptr_rids;
7858         TALLOC_CTX *_mem_save_group_handle_0;
7859         TALLOC_CTX *_mem_save_rids_0;
7860         TALLOC_CTX *_mem_save_rids_1;
7861         if (flags & NDR_IN) {
7862                 ZERO_STRUCT(r->out);
7863
7864                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7865                         NDR_PULL_ALLOC(ndr, r->in.group_handle);
7866                 }
7867                 _mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7868                 NDR_PULL_SET_MEM_CTX(ndr, r->in.group_handle, LIBNDR_FLAG_REF_ALLOC);
7869                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7870                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
7871                 NDR_PULL_ALLOC(ndr, r->out.rids);
7872                 ZERO_STRUCTP(r->out.rids);
7873         }
7874         if (flags & NDR_OUT) {
7875                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7876                         NDR_PULL_ALLOC(ndr, r->out.rids);
7877                 }
7878                 _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
7879                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rids, LIBNDR_FLAG_REF_ALLOC);
7880                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
7881                 if (_ptr_rids) {
7882                         NDR_PULL_ALLOC(ndr, *r->out.rids);
7883                 } else {
7884                         *r->out.rids = NULL;
7885                 }
7886                 if (*r->out.rids) {
7887                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
7888                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.rids, 0);
7889                         NDR_CHECK(ndr_pull_samr_RidTypeArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.rids));
7890                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
7891                 }
7892                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, LIBNDR_FLAG_REF_ALLOC);
7893                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7894         }
7895         return NDR_ERR_SUCCESS;
7896 }
7897
7898 _PUBLIC_ void ndr_print_samr_QueryGroupMember(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryGroupMember *r)
7899 {
7900         ndr_print_struct(ndr, name, "samr_QueryGroupMember");
7901         ndr->depth++;
7902         if (flags & NDR_SET_VALUES) {
7903                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7904         }
7905         if (flags & NDR_IN) {
7906                 ndr_print_struct(ndr, "in", "samr_QueryGroupMember");
7907                 ndr->depth++;
7908                 ndr_print_ptr(ndr, "group_handle", r->in.group_handle);
7909                 ndr->depth++;
7910                 ndr_print_policy_handle(ndr, "group_handle", r->in.group_handle);
7911                 ndr->depth--;
7912                 ndr->depth--;
7913         }
7914         if (flags & NDR_OUT) {
7915                 ndr_print_struct(ndr, "out", "samr_QueryGroupMember");
7916                 ndr->depth++;
7917                 ndr_print_ptr(ndr, "rids", r->out.rids);
7918                 ndr->depth++;
7919                 ndr_print_ptr(ndr, "rids", *r->out.rids);
7920                 ndr->depth++;
7921                 if (*r->out.rids) {
7922                         ndr_print_samr_RidTypeArray(ndr, "rids", *r->out.rids);
7923                 }
7924                 ndr->depth--;
7925                 ndr->depth--;
7926                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
7927                 ndr->depth--;
7928         }
7929         ndr->depth--;
7930 }
7931
7932 static enum ndr_err_code ndr_push_samr_SetMemberAttributesOfGroup(struct ndr_push *ndr, int flags, const struct samr_SetMemberAttributesOfGroup *r)
7933 {
7934         if (flags & NDR_IN) {
7935                 if (r->in.group_handle == NULL) {
7936                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7937                 }
7938                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7939                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown1));
7940                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
7941         }
7942         if (flags & NDR_OUT) {
7943                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7944         }
7945         return NDR_ERR_SUCCESS;
7946 }
7947
7948 static enum ndr_err_code ndr_pull_samr_SetMemberAttributesOfGroup(struct ndr_pull *ndr, int flags, struct samr_SetMemberAttributesOfGroup *r)
7949 {
7950         TALLOC_CTX *_mem_save_group_handle_0;
7951         if (flags & NDR_IN) {
7952                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7953                         NDR_PULL_ALLOC(ndr, r->in.group_handle);
7954                 }
7955                 _mem_save_group_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
7956                 NDR_PULL_SET_MEM_CTX(ndr, r->in.group_handle, LIBNDR_FLAG_REF_ALLOC);
7957                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.group_handle));
7958                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_handle_0, LIBNDR_FLAG_REF_ALLOC);
7959                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown1));
7960                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
7961         }
7962         if (flags & NDR_OUT) {
7963                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7964         }
7965         return NDR_ERR_SUCCESS;
7966 }
7967
7968 _PUBLIC_ void ndr_print_samr_SetMemberAttributesOfGroup(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetMemberAttributesOfGroup *r)
7969 {
7970         ndr_print_struct(ndr, name, "samr_SetMemberAttributesOfGroup");
7971         ndr->depth++;
7972         if (flags & NDR_SET_VALUES) {
7973                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7974         }
7975         if (flags & NDR_IN) {
7976                 ndr_print_struct(ndr, "in", "samr_SetMemberAttributesOfGroup");
7977                 ndr->depth++;
7978                 ndr_print_ptr(ndr, "group_handle", r->in.group_handle);
7979                 ndr->depth++;
7980                 ndr_print_policy_handle(ndr, "group_handle", r->in.group_handle);
7981                 ndr->depth--;
7982                 ndr_print_uint32(ndr, "unknown1", r->in.unknown1);
7983                 ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
7984                 ndr->depth--;
7985         }
7986         if (flags & NDR_OUT) {
7987                 ndr_print_struct(ndr, "out", "samr_SetMemberAttributesOfGroup");
7988                 ndr->depth++;
7989                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
7990                 ndr->depth--;
7991         }
7992         ndr->depth--;
7993 }
7994
7995 static enum ndr_err_code ndr_push_samr_OpenAlias(struct ndr_push *ndr, int flags, const struct samr_OpenAlias *r)
7996 {
7997         if (flags & NDR_IN) {
7998                 if (r->in.domain_handle == NULL) {
7999                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8000                 }
8001                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
8002                 NDR_CHECK(ndr_push_samr_AliasAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
8003                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.rid));
8004         }
8005         if (flags & NDR_OUT) {
8006                 if (r->out.alias_handle == NULL) {
8007                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8008                 }
8009                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.alias_handle));
8010                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8011         }
8012         return NDR_ERR_SUCCESS;
8013 }
8014
8015 static enum ndr_err_code ndr_pull_samr_OpenAlias(struct ndr_pull *ndr, int flags, struct samr_OpenAlias *r)
8016 {
8017         TALLOC_CTX *_mem_save_domain_handle_0;
8018         TALLOC_CTX *_mem_save_alias_handle_0;
8019         if (flags & NDR_IN) {
8020                 ZERO_STRUCT(r->out);
8021
8022                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8023                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
8024                 }
8025                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8026                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
8027                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
8028                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
8029                 NDR_CHECK(ndr_pull_samr_AliasAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
8030                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rid));
8031                 NDR_PULL_ALLOC(ndr, r->out.alias_handle);
8032                 ZERO_STRUCTP(r->out.alias_handle);
8033         }
8034         if (flags & NDR_OUT) {
8035                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8036                         NDR_PULL_ALLOC(ndr, r->out.alias_handle);
8037                 }
8038                 _mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8039                 NDR_PULL_SET_MEM_CTX(ndr, r->out.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8040                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.alias_handle));
8041                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8042                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8043         }
8044         return NDR_ERR_SUCCESS;
8045 }
8046
8047 _PUBLIC_ void ndr_print_samr_OpenAlias(struct ndr_print *ndr, const char *name, int flags, const struct samr_OpenAlias *r)
8048 {
8049         ndr_print_struct(ndr, name, "samr_OpenAlias");
8050         ndr->depth++;
8051         if (flags & NDR_SET_VALUES) {
8052                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8053         }
8054         if (flags & NDR_IN) {
8055                 ndr_print_struct(ndr, "in", "samr_OpenAlias");
8056                 ndr->depth++;
8057                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
8058                 ndr->depth++;
8059                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
8060                 ndr->depth--;
8061                 ndr_print_samr_AliasAccessMask(ndr, "access_mask", r->in.access_mask);
8062                 ndr_print_uint32(ndr, "rid", r->in.rid);
8063                 ndr->depth--;
8064         }
8065         if (flags & NDR_OUT) {
8066                 ndr_print_struct(ndr, "out", "samr_OpenAlias");
8067                 ndr->depth++;
8068                 ndr_print_ptr(ndr, "alias_handle", r->out.alias_handle);
8069                 ndr->depth++;
8070                 ndr_print_policy_handle(ndr, "alias_handle", r->out.alias_handle);
8071                 ndr->depth--;
8072                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8073                 ndr->depth--;
8074         }
8075         ndr->depth--;
8076 }
8077
8078 static enum ndr_err_code ndr_push_samr_QueryAliasInfo(struct ndr_push *ndr, int flags, const struct samr_QueryAliasInfo *r)
8079 {
8080         if (flags & NDR_IN) {
8081                 if (r->in.alias_handle == NULL) {
8082                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8083                 }
8084                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8085                 NDR_CHECK(ndr_push_samr_AliasInfoEnum(ndr, NDR_SCALARS, r->in.level));
8086         }
8087         if (flags & NDR_OUT) {
8088                 if (r->out.info == NULL) {
8089                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8090                 }
8091                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
8092                 if (*r->out.info) {
8093                         NDR_CHECK(ndr_push_set_switch_value(ndr, *r->out.info, r->in.level));
8094                         NDR_CHECK(ndr_push_samr_AliasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
8095                 }
8096                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8097         }
8098         return NDR_ERR_SUCCESS;
8099 }
8100
8101 static enum ndr_err_code ndr_pull_samr_QueryAliasInfo(struct ndr_pull *ndr, int flags, struct samr_QueryAliasInfo *r)
8102 {
8103         uint32_t _ptr_info;
8104         TALLOC_CTX *_mem_save_alias_handle_0;
8105         TALLOC_CTX *_mem_save_info_0;
8106         TALLOC_CTX *_mem_save_info_1;
8107         if (flags & NDR_IN) {
8108                 ZERO_STRUCT(r->out);
8109
8110                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8111                         NDR_PULL_ALLOC(ndr, r->in.alias_handle);
8112                 }
8113                 _mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8114                 NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8115                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8116                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8117                 NDR_CHECK(ndr_pull_samr_AliasInfoEnum(ndr, NDR_SCALARS, &r->in.level));
8118                 NDR_PULL_ALLOC(ndr, r->out.info);
8119                 ZERO_STRUCTP(r->out.info);
8120         }
8121         if (flags & NDR_OUT) {
8122                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8123                         NDR_PULL_ALLOC(ndr, r->out.info);
8124                 }
8125                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8126                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8127                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
8128                 if (_ptr_info) {
8129                         NDR_PULL_ALLOC(ndr, *r->out.info);
8130                 } else {
8131                         *r->out.info = NULL;
8132                 }
8133                 if (*r->out.info) {
8134                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
8135                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
8136                         NDR_CHECK(ndr_pull_set_switch_value(ndr, *r->out.info, r->in.level));
8137                         NDR_CHECK(ndr_pull_samr_AliasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
8138                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
8139                 }
8140                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8141                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8142         }
8143         return NDR_ERR_SUCCESS;
8144 }
8145
8146 _PUBLIC_ void ndr_print_samr_QueryAliasInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryAliasInfo *r)
8147 {
8148         ndr_print_struct(ndr, name, "samr_QueryAliasInfo");
8149         ndr->depth++;
8150         if (flags & NDR_SET_VALUES) {
8151                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8152         }
8153         if (flags & NDR_IN) {
8154                 ndr_print_struct(ndr, "in", "samr_QueryAliasInfo");
8155                 ndr->depth++;
8156                 ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
8157                 ndr->depth++;
8158                 ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
8159                 ndr->depth--;
8160                 ndr_print_samr_AliasInfoEnum(ndr, "level", r->in.level);
8161                 ndr->depth--;
8162         }
8163         if (flags & NDR_OUT) {
8164                 ndr_print_struct(ndr, "out", "samr_QueryAliasInfo");
8165                 ndr->depth++;
8166                 ndr_print_ptr(ndr, "info", r->out.info);
8167                 ndr->depth++;
8168                 ndr_print_ptr(ndr, "info", *r->out.info);
8169                 ndr->depth++;
8170                 if (*r->out.info) {
8171                         ndr_print_set_switch_value(ndr, *r->out.info, r->in.level);
8172                         ndr_print_samr_AliasInfo(ndr, "info", *r->out.info);
8173                 }
8174                 ndr->depth--;
8175                 ndr->depth--;
8176                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8177                 ndr->depth--;
8178         }
8179         ndr->depth--;
8180 }
8181
8182 static enum ndr_err_code ndr_push_samr_SetAliasInfo(struct ndr_push *ndr, int flags, const struct samr_SetAliasInfo *r)
8183 {
8184         if (flags & NDR_IN) {
8185                 if (r->in.alias_handle == NULL) {
8186                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8187                 }
8188                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8189                 NDR_CHECK(ndr_push_samr_AliasInfoEnum(ndr, NDR_SCALARS, r->in.level));
8190                 if (r->in.info == NULL) {
8191                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8192                 }
8193                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level));
8194                 NDR_CHECK(ndr_push_samr_AliasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
8195         }
8196         if (flags & NDR_OUT) {
8197                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8198         }
8199         return NDR_ERR_SUCCESS;
8200 }
8201
8202 static enum ndr_err_code ndr_pull_samr_SetAliasInfo(struct ndr_pull *ndr, int flags, struct samr_SetAliasInfo *r)
8203 {
8204         TALLOC_CTX *_mem_save_alias_handle_0;
8205         TALLOC_CTX *_mem_save_info_0;
8206         if (flags & NDR_IN) {
8207                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8208                         NDR_PULL_ALLOC(ndr, r->in.alias_handle);
8209                 }
8210                 _mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8211                 NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8212                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8213                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8214                 NDR_CHECK(ndr_pull_samr_AliasInfoEnum(ndr, NDR_SCALARS, &r->in.level));
8215                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8216                         NDR_PULL_ALLOC(ndr, r->in.info);
8217                 }
8218                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8219                 NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC);
8220                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level));
8221                 NDR_CHECK(ndr_pull_samr_AliasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
8222                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8223         }
8224         if (flags & NDR_OUT) {
8225                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8226         }
8227         return NDR_ERR_SUCCESS;
8228 }
8229
8230 _PUBLIC_ void ndr_print_samr_SetAliasInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetAliasInfo *r)
8231 {
8232         ndr_print_struct(ndr, name, "samr_SetAliasInfo");
8233         ndr->depth++;
8234         if (flags & NDR_SET_VALUES) {
8235                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8236         }
8237         if (flags & NDR_IN) {
8238                 ndr_print_struct(ndr, "in", "samr_SetAliasInfo");
8239                 ndr->depth++;
8240                 ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
8241                 ndr->depth++;
8242                 ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
8243                 ndr->depth--;
8244                 ndr_print_samr_AliasInfoEnum(ndr, "level", r->in.level);
8245                 ndr_print_ptr(ndr, "info", r->in.info);
8246                 ndr->depth++;
8247                 ndr_print_set_switch_value(ndr, r->in.info, r->in.level);
8248                 ndr_print_samr_AliasInfo(ndr, "info", r->in.info);
8249                 ndr->depth--;
8250                 ndr->depth--;
8251         }
8252         if (flags & NDR_OUT) {
8253                 ndr_print_struct(ndr, "out", "samr_SetAliasInfo");
8254                 ndr->depth++;
8255                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8256                 ndr->depth--;
8257         }
8258         ndr->depth--;
8259 }
8260
8261 static enum ndr_err_code ndr_push_samr_DeleteDomAlias(struct ndr_push *ndr, int flags, const struct samr_DeleteDomAlias *r)
8262 {
8263         if (flags & NDR_IN) {
8264                 if (r->in.alias_handle == NULL) {
8265                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8266                 }
8267                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8268         }
8269         if (flags & NDR_OUT) {
8270                 if (r->out.alias_handle == NULL) {
8271                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8272                 }
8273                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.alias_handle));
8274                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8275         }
8276         return NDR_ERR_SUCCESS;
8277 }
8278
8279 static enum ndr_err_code ndr_pull_samr_DeleteDomAlias(struct ndr_pull *ndr, int flags, struct samr_DeleteDomAlias *r)
8280 {
8281         TALLOC_CTX *_mem_save_alias_handle_0;
8282         if (flags & NDR_IN) {
8283                 ZERO_STRUCT(r->out);
8284
8285                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8286                         NDR_PULL_ALLOC(ndr, r->in.alias_handle);
8287                 }
8288                 _mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8289                 NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8290                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8291                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8292                 NDR_PULL_ALLOC(ndr, r->out.alias_handle);
8293                 *r->out.alias_handle = *r->in.alias_handle;
8294         }
8295         if (flags & NDR_OUT) {
8296                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8297                         NDR_PULL_ALLOC(ndr, r->out.alias_handle);
8298                 }
8299                 _mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8300                 NDR_PULL_SET_MEM_CTX(ndr, r->out.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8301                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.alias_handle));
8302                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8303                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8304         }
8305         return NDR_ERR_SUCCESS;
8306 }
8307
8308 _PUBLIC_ void ndr_print_samr_DeleteDomAlias(struct ndr_print *ndr, const char *name, int flags, const struct samr_DeleteDomAlias *r)
8309 {
8310         ndr_print_struct(ndr, name, "samr_DeleteDomAlias");
8311         ndr->depth++;
8312         if (flags & NDR_SET_VALUES) {
8313                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8314         }
8315         if (flags & NDR_IN) {
8316                 ndr_print_struct(ndr, "in", "samr_DeleteDomAlias");
8317                 ndr->depth++;
8318                 ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
8319                 ndr->depth++;
8320                 ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
8321                 ndr->depth--;
8322                 ndr->depth--;
8323         }
8324         if (flags & NDR_OUT) {
8325                 ndr_print_struct(ndr, "out", "samr_DeleteDomAlias");
8326                 ndr->depth++;
8327                 ndr_print_ptr(ndr, "alias_handle", r->out.alias_handle);
8328                 ndr->depth++;
8329                 ndr_print_policy_handle(ndr, "alias_handle", r->out.alias_handle);
8330                 ndr->depth--;
8331                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8332                 ndr->depth--;
8333         }
8334         ndr->depth--;
8335 }
8336
8337 static enum ndr_err_code ndr_push_samr_AddAliasMember(struct ndr_push *ndr, int flags, const struct samr_AddAliasMember *r)
8338 {
8339         if (flags & NDR_IN) {
8340                 if (r->in.alias_handle == NULL) {
8341                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8342                 }
8343                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8344                 if (r->in.sid == NULL) {
8345                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8346                 }
8347                 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
8348         }
8349         if (flags & NDR_OUT) {
8350                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8351         }
8352         return NDR_ERR_SUCCESS;
8353 }
8354
8355 static enum ndr_err_code ndr_pull_samr_AddAliasMember(struct ndr_pull *ndr, int flags, struct samr_AddAliasMember *r)
8356 {
8357         TALLOC_CTX *_mem_save_alias_handle_0;
8358         TALLOC_CTX *_mem_save_sid_0;
8359         if (flags & NDR_IN) {
8360                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8361                         NDR_PULL_ALLOC(ndr, r->in.alias_handle);
8362                 }
8363                 _mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8364                 NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8365                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8366                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8367                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8368                         NDR_PULL_ALLOC(ndr, r->in.sid);
8369                 }
8370                 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8371                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
8372                 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
8373                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
8374         }
8375         if (flags & NDR_OUT) {
8376                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8377         }
8378         return NDR_ERR_SUCCESS;
8379 }
8380
8381 _PUBLIC_ void ndr_print_samr_AddAliasMember(struct ndr_print *ndr, const char *name, int flags, const struct samr_AddAliasMember *r)
8382 {
8383         ndr_print_struct(ndr, name, "samr_AddAliasMember");
8384         ndr->depth++;
8385         if (flags & NDR_SET_VALUES) {
8386                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8387         }
8388         if (flags & NDR_IN) {
8389                 ndr_print_struct(ndr, "in", "samr_AddAliasMember");
8390                 ndr->depth++;
8391                 ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
8392                 ndr->depth++;
8393                 ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
8394                 ndr->depth--;
8395                 ndr_print_ptr(ndr, "sid", r->in.sid);
8396                 ndr->depth++;
8397                 ndr_print_dom_sid2(ndr, "sid", r->in.sid);
8398                 ndr->depth--;
8399                 ndr->depth--;
8400         }
8401         if (flags & NDR_OUT) {
8402                 ndr_print_struct(ndr, "out", "samr_AddAliasMember");
8403                 ndr->depth++;
8404                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8405                 ndr->depth--;
8406         }
8407         ndr->depth--;
8408 }
8409
8410 static enum ndr_err_code ndr_push_samr_DeleteAliasMember(struct ndr_push *ndr, int flags, const struct samr_DeleteAliasMember *r)
8411 {
8412         if (flags & NDR_IN) {
8413                 if (r->in.alias_handle == NULL) {
8414                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8415                 }
8416                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8417                 if (r->in.sid == NULL) {
8418                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8419                 }
8420                 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
8421         }
8422         if (flags & NDR_OUT) {
8423                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8424         }
8425         return NDR_ERR_SUCCESS;
8426 }
8427
8428 static enum ndr_err_code ndr_pull_samr_DeleteAliasMember(struct ndr_pull *ndr, int flags, struct samr_DeleteAliasMember *r)
8429 {
8430         TALLOC_CTX *_mem_save_alias_handle_0;
8431         TALLOC_CTX *_mem_save_sid_0;
8432         if (flags & NDR_IN) {
8433                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8434                         NDR_PULL_ALLOC(ndr, r->in.alias_handle);
8435                 }
8436                 _mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8437                 NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8438                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8439                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8440                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8441                         NDR_PULL_ALLOC(ndr, r->in.sid);
8442                 }
8443                 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8444                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
8445                 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
8446                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
8447         }
8448         if (flags & NDR_OUT) {
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_DeleteAliasMember(struct ndr_print *ndr, const char *name, int flags, const struct samr_DeleteAliasMember *r)
8455 {
8456         ndr_print_struct(ndr, name, "samr_DeleteAliasMember");
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_DeleteAliasMember");
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_ptr(ndr, "sid", r->in.sid);
8469                 ndr->depth++;
8470                 ndr_print_dom_sid2(ndr, "sid", r->in.sid);
8471                 ndr->depth--;
8472                 ndr->depth--;
8473         }
8474         if (flags & NDR_OUT) {
8475                 ndr_print_struct(ndr, "out", "samr_DeleteAliasMember");
8476                 ndr->depth++;
8477                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8478                 ndr->depth--;
8479         }
8480         ndr->depth--;
8481 }
8482
8483 static enum ndr_err_code ndr_push_samr_GetMembersInAlias(struct ndr_push *ndr, int flags, const struct samr_GetMembersInAlias *r)
8484 {
8485         if (flags & NDR_IN) {
8486                 if (r->in.alias_handle == NULL) {
8487                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8488                 }
8489                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8490         }
8491         if (flags & NDR_OUT) {
8492                 if (r->out.sids == NULL) {
8493                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8494                 }
8495                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sids));
8496                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8497         }
8498         return NDR_ERR_SUCCESS;
8499 }
8500
8501 static enum ndr_err_code ndr_pull_samr_GetMembersInAlias(struct ndr_pull *ndr, int flags, struct samr_GetMembersInAlias *r)
8502 {
8503         TALLOC_CTX *_mem_save_alias_handle_0;
8504         TALLOC_CTX *_mem_save_sids_0;
8505         if (flags & NDR_IN) {
8506                 ZERO_STRUCT(r->out);
8507
8508                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8509                         NDR_PULL_ALLOC(ndr, r->in.alias_handle);
8510                 }
8511                 _mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8512                 NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
8513                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
8514                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
8515                 NDR_PULL_ALLOC(ndr, r->out.sids);
8516                 ZERO_STRUCTP(r->out.sids);
8517         }
8518         if (flags & NDR_OUT) {
8519                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8520                         NDR_PULL_ALLOC(ndr, r->out.sids);
8521                 }
8522                 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
8523                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sids, LIBNDR_FLAG_REF_ALLOC);
8524                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sids));
8525                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, LIBNDR_FLAG_REF_ALLOC);
8526                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8527         }
8528         return NDR_ERR_SUCCESS;
8529 }
8530
8531 _PUBLIC_ void ndr_print_samr_GetMembersInAlias(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetMembersInAlias *r)
8532 {
8533         ndr_print_struct(ndr, name, "samr_GetMembersInAlias");
8534         ndr->depth++;
8535         if (flags & NDR_SET_VALUES) {
8536                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8537         }
8538         if (flags & NDR_IN) {
8539                 ndr_print_struct(ndr, "in", "samr_GetMembersInAlias");
8540                 ndr->depth++;
8541                 ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
8542                 ndr->depth++;
8543                 ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
8544                 ndr->depth--;
8545                 ndr->depth--;
8546         }
8547         if (flags & NDR_OUT) {
8548                 ndr_print_struct(ndr, "out", "samr_GetMembersInAlias");
8549                 ndr->depth++;
8550                 ndr_print_ptr(ndr, "sids", r->out.sids);
8551                 ndr->depth++;
8552                 ndr_print_lsa_SidArray(ndr, "sids", r->out.sids);
8553                 ndr->depth--;
8554                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8555                 ndr->depth--;
8556         }
8557         ndr->depth--;
8558 }
8559
8560 _PUBLIC_ enum ndr_err_code ndr_push_samr_OpenUser(struct ndr_push *ndr, int flags, const struct samr_OpenUser *r)
8561 {
8562         if (flags & NDR_IN) {
8563                 if (r->in.domain_handle == NULL) {
8564                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8565                 }
8566                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
8567                 NDR_CHECK(ndr_push_samr_UserAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
8568                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.rid));
8569         }
8570         if (flags & NDR_OUT) {
8571                 if (r->out.user_handle == NULL) {
8572                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8573                 }
8574                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
8575                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8576         }
8577         return NDR_ERR_SUCCESS;
8578 }
8579
8580 _PUBLIC_ enum ndr_err_code ndr_pull_samr_OpenUser(struct ndr_pull *ndr, int flags, struct samr_OpenUser *r)
8581 {
8582         TALLOC_CTX *_mem_save_domain_handle_0;
8583         TALLOC_CTX *_mem_save_user_handle_0;
8584         if (flags & NDR_IN) {
8585                 ZERO_STRUCT(r->out);
8586
8587                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8588                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
8589                 }
8590                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8591                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
8592                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
8593                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
8594                 NDR_CHECK(ndr_pull_samr_UserAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
8595                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rid));
8596                 NDR_PULL_ALLOC(ndr, r->out.user_handle);
8597                 ZERO_STRUCTP(r->out.user_handle);
8598         }
8599         if (flags & NDR_OUT) {
8600                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8601                         NDR_PULL_ALLOC(ndr, r->out.user_handle);
8602                 }
8603                 _mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8604                 NDR_PULL_SET_MEM_CTX(ndr, r->out.user_handle, LIBNDR_FLAG_REF_ALLOC);
8605                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
8606                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
8607                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8608         }
8609         return NDR_ERR_SUCCESS;
8610 }
8611
8612 _PUBLIC_ void ndr_print_samr_OpenUser(struct ndr_print *ndr, const char *name, int flags, const struct samr_OpenUser *r)
8613 {
8614         ndr_print_struct(ndr, name, "samr_OpenUser");
8615         ndr->depth++;
8616         if (flags & NDR_SET_VALUES) {
8617                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8618         }
8619         if (flags & NDR_IN) {
8620                 ndr_print_struct(ndr, "in", "samr_OpenUser");
8621                 ndr->depth++;
8622                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
8623                 ndr->depth++;
8624                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
8625                 ndr->depth--;
8626                 ndr_print_samr_UserAccessMask(ndr, "access_mask", r->in.access_mask);
8627                 ndr_print_uint32(ndr, "rid", r->in.rid);
8628                 ndr->depth--;
8629         }
8630         if (flags & NDR_OUT) {
8631                 ndr_print_struct(ndr, "out", "samr_OpenUser");
8632                 ndr->depth++;
8633                 ndr_print_ptr(ndr, "user_handle", r->out.user_handle);
8634                 ndr->depth++;
8635                 ndr_print_policy_handle(ndr, "user_handle", r->out.user_handle);
8636                 ndr->depth--;
8637                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8638                 ndr->depth--;
8639         }
8640         ndr->depth--;
8641 }
8642
8643 static enum ndr_err_code ndr_push_samr_DeleteUser(struct ndr_push *ndr, int flags, const struct samr_DeleteUser *r)
8644 {
8645         if (flags & NDR_IN) {
8646                 if (r->in.user_handle == NULL) {
8647                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8648                 }
8649                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
8650         }
8651         if (flags & NDR_OUT) {
8652                 if (r->out.user_handle == NULL) {
8653                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8654                 }
8655                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
8656                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8657         }
8658         return NDR_ERR_SUCCESS;
8659 }
8660
8661 static enum ndr_err_code ndr_pull_samr_DeleteUser(struct ndr_pull *ndr, int flags, struct samr_DeleteUser *r)
8662 {
8663         TALLOC_CTX *_mem_save_user_handle_0;
8664         if (flags & NDR_IN) {
8665                 ZERO_STRUCT(r->out);
8666
8667                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8668                         NDR_PULL_ALLOC(ndr, r->in.user_handle);
8669                 }
8670                 _mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8671                 NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
8672                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
8673                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
8674                 NDR_PULL_ALLOC(ndr, r->out.user_handle);
8675                 *r->out.user_handle = *r->in.user_handle;
8676         }
8677         if (flags & NDR_OUT) {
8678                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8679                         NDR_PULL_ALLOC(ndr, r->out.user_handle);
8680                 }
8681                 _mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8682                 NDR_PULL_SET_MEM_CTX(ndr, r->out.user_handle, LIBNDR_FLAG_REF_ALLOC);
8683                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
8684                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
8685                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8686         }
8687         return NDR_ERR_SUCCESS;
8688 }
8689
8690 _PUBLIC_ void ndr_print_samr_DeleteUser(struct ndr_print *ndr, const char *name, int flags, const struct samr_DeleteUser *r)
8691 {
8692         ndr_print_struct(ndr, name, "samr_DeleteUser");
8693         ndr->depth++;
8694         if (flags & NDR_SET_VALUES) {
8695                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8696         }
8697         if (flags & NDR_IN) {
8698                 ndr_print_struct(ndr, "in", "samr_DeleteUser");
8699                 ndr->depth++;
8700                 ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
8701                 ndr->depth++;
8702                 ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
8703                 ndr->depth--;
8704                 ndr->depth--;
8705         }
8706         if (flags & NDR_OUT) {
8707                 ndr_print_struct(ndr, "out", "samr_DeleteUser");
8708                 ndr->depth++;
8709                 ndr_print_ptr(ndr, "user_handle", r->out.user_handle);
8710                 ndr->depth++;
8711                 ndr_print_policy_handle(ndr, "user_handle", r->out.user_handle);
8712                 ndr->depth--;
8713                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8714                 ndr->depth--;
8715         }
8716         ndr->depth--;
8717 }
8718
8719 _PUBLIC_ enum ndr_err_code ndr_push_samr_QueryUserInfo(struct ndr_push *ndr, int flags, const struct samr_QueryUserInfo *r)
8720 {
8721         if (flags & NDR_IN) {
8722                 if (r->in.user_handle == NULL) {
8723                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8724                 }
8725                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
8726                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
8727         }
8728         if (flags & NDR_OUT) {
8729                 if (r->out.info == NULL) {
8730                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8731                 }
8732                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
8733                 if (*r->out.info) {
8734                         NDR_CHECK(ndr_push_set_switch_value(ndr, *r->out.info, r->in.level));
8735                         NDR_CHECK(ndr_push_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
8736                 }
8737                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8738         }
8739         return NDR_ERR_SUCCESS;
8740 }
8741
8742 _PUBLIC_ enum ndr_err_code ndr_pull_samr_QueryUserInfo(struct ndr_pull *ndr, int flags, struct samr_QueryUserInfo *r)
8743 {
8744         uint32_t _ptr_info;
8745         TALLOC_CTX *_mem_save_user_handle_0;
8746         TALLOC_CTX *_mem_save_info_0;
8747         TALLOC_CTX *_mem_save_info_1;
8748         if (flags & NDR_IN) {
8749                 ZERO_STRUCT(r->out);
8750
8751                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8752                         NDR_PULL_ALLOC(ndr, r->in.user_handle);
8753                 }
8754                 _mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8755                 NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
8756                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
8757                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
8758                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
8759                 NDR_PULL_ALLOC(ndr, r->out.info);
8760                 ZERO_STRUCTP(r->out.info);
8761         }
8762         if (flags & NDR_OUT) {
8763                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8764                         NDR_PULL_ALLOC(ndr, r->out.info);
8765                 }
8766                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8767                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8768                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
8769                 if (_ptr_info) {
8770                         NDR_PULL_ALLOC(ndr, *r->out.info);
8771                 } else {
8772                         *r->out.info = NULL;
8773                 }
8774                 if (*r->out.info) {
8775                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
8776                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
8777                         NDR_CHECK(ndr_pull_set_switch_value(ndr, *r->out.info, r->in.level));
8778                         NDR_CHECK(ndr_pull_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
8779                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
8780                 }
8781                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8782                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8783         }
8784         return NDR_ERR_SUCCESS;
8785 }
8786
8787 _PUBLIC_ void ndr_print_samr_QueryUserInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryUserInfo *r)
8788 {
8789         ndr_print_struct(ndr, name, "samr_QueryUserInfo");
8790         ndr->depth++;
8791         if (flags & NDR_SET_VALUES) {
8792                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8793         }
8794         if (flags & NDR_IN) {
8795                 ndr_print_struct(ndr, "in", "samr_QueryUserInfo");
8796                 ndr->depth++;
8797                 ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
8798                 ndr->depth++;
8799                 ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
8800                 ndr->depth--;
8801                 ndr_print_uint16(ndr, "level", r->in.level);
8802                 ndr->depth--;
8803         }
8804         if (flags & NDR_OUT) {
8805                 ndr_print_struct(ndr, "out", "samr_QueryUserInfo");
8806                 ndr->depth++;
8807                 ndr_print_ptr(ndr, "info", r->out.info);
8808                 ndr->depth++;
8809                 ndr_print_ptr(ndr, "info", *r->out.info);
8810                 ndr->depth++;
8811                 if (*r->out.info) {
8812                         ndr_print_set_switch_value(ndr, *r->out.info, r->in.level);
8813                         ndr_print_samr_UserInfo(ndr, "info", *r->out.info);
8814                 }
8815                 ndr->depth--;
8816                 ndr->depth--;
8817                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8818                 ndr->depth--;
8819         }
8820         ndr->depth--;
8821 }
8822
8823 _PUBLIC_ enum ndr_err_code ndr_push_samr_SetUserInfo(struct ndr_push *ndr, int flags, const struct samr_SetUserInfo *r)
8824 {
8825         if (flags & NDR_IN) {
8826                 if (r->in.user_handle == NULL) {
8827                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8828                 }
8829                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
8830                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
8831                 if (r->in.info == NULL) {
8832                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8833                 }
8834                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level));
8835                 NDR_CHECK(ndr_push_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
8836         }
8837         if (flags & NDR_OUT) {
8838                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8839         }
8840         return NDR_ERR_SUCCESS;
8841 }
8842
8843 _PUBLIC_ enum ndr_err_code ndr_pull_samr_SetUserInfo(struct ndr_pull *ndr, int flags, struct samr_SetUserInfo *r)
8844 {
8845         TALLOC_CTX *_mem_save_user_handle_0;
8846         TALLOC_CTX *_mem_save_info_0;
8847         if (flags & NDR_IN) {
8848                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8849                         NDR_PULL_ALLOC(ndr, r->in.user_handle);
8850                 }
8851                 _mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8852                 NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
8853                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
8854                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
8855                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
8856                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8857                         NDR_PULL_ALLOC(ndr, r->in.info);
8858                 }
8859                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8860                 NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC);
8861                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level));
8862                 NDR_CHECK(ndr_pull_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
8863                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8864         }
8865         if (flags & NDR_OUT) {
8866                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8867         }
8868         return NDR_ERR_SUCCESS;
8869 }
8870
8871 _PUBLIC_ void ndr_print_samr_SetUserInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetUserInfo *r)
8872 {
8873         ndr_print_struct(ndr, name, "samr_SetUserInfo");
8874         ndr->depth++;
8875         if (flags & NDR_SET_VALUES) {
8876                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8877         }
8878         if (flags & NDR_IN) {
8879                 ndr_print_struct(ndr, "in", "samr_SetUserInfo");
8880                 ndr->depth++;
8881                 ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
8882                 ndr->depth++;
8883                 ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
8884                 ndr->depth--;
8885                 ndr_print_uint16(ndr, "level", r->in.level);
8886                 ndr_print_ptr(ndr, "info", r->in.info);
8887                 ndr->depth++;
8888                 ndr_print_set_switch_value(ndr, r->in.info, r->in.level);
8889                 ndr_print_samr_UserInfo(ndr, "info", r->in.info);
8890                 ndr->depth--;
8891                 ndr->depth--;
8892         }
8893         if (flags & NDR_OUT) {
8894                 ndr_print_struct(ndr, "out", "samr_SetUserInfo");
8895                 ndr->depth++;
8896                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8897                 ndr->depth--;
8898         }
8899         ndr->depth--;
8900 }
8901
8902 static enum ndr_err_code ndr_push_samr_ChangePasswordUser(struct ndr_push *ndr, int flags, const struct samr_ChangePasswordUser *r)
8903 {
8904         if (flags & NDR_IN) {
8905                 if (r->in.user_handle == NULL) {
8906                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8907                 }
8908                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
8909                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.lm_present));
8910                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.old_lm_crypted));
8911                 if (r->in.old_lm_crypted) {
8912                         NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.old_lm_crypted));
8913                 }
8914                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.new_lm_crypted));
8915                 if (r->in.new_lm_crypted) {
8916                         NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.new_lm_crypted));
8917                 }
8918                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.nt_present));
8919                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.old_nt_crypted));
8920                 if (r->in.old_nt_crypted) {
8921                         NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.old_nt_crypted));
8922                 }
8923                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.new_nt_crypted));
8924                 if (r->in.new_nt_crypted) {
8925                         NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.new_nt_crypted));
8926                 }
8927                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.cross1_present));
8928                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.nt_cross));
8929                 if (r->in.nt_cross) {
8930                         NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.nt_cross));
8931                 }
8932                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.cross2_present));
8933                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.lm_cross));
8934                 if (r->in.lm_cross) {
8935                         NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.lm_cross));
8936                 }
8937         }
8938         if (flags & NDR_OUT) {
8939                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8940         }
8941         return NDR_ERR_SUCCESS;
8942 }
8943
8944 static enum ndr_err_code ndr_pull_samr_ChangePasswordUser(struct ndr_pull *ndr, int flags, struct samr_ChangePasswordUser *r)
8945 {
8946         uint32_t _ptr_old_lm_crypted;
8947         uint32_t _ptr_new_lm_crypted;
8948         uint32_t _ptr_old_nt_crypted;
8949         uint32_t _ptr_new_nt_crypted;
8950         uint32_t _ptr_nt_cross;
8951         uint32_t _ptr_lm_cross;
8952         TALLOC_CTX *_mem_save_user_handle_0;
8953         TALLOC_CTX *_mem_save_old_lm_crypted_0;
8954         TALLOC_CTX *_mem_save_new_lm_crypted_0;
8955         TALLOC_CTX *_mem_save_old_nt_crypted_0;
8956         TALLOC_CTX *_mem_save_new_nt_crypted_0;
8957         TALLOC_CTX *_mem_save_nt_cross_0;
8958         TALLOC_CTX *_mem_save_lm_cross_0;
8959         if (flags & NDR_IN) {
8960                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8961                         NDR_PULL_ALLOC(ndr, r->in.user_handle);
8962                 }
8963                 _mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
8964                 NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
8965                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
8966                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
8967                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.lm_present));
8968                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_old_lm_crypted));
8969                 if (_ptr_old_lm_crypted) {
8970                         NDR_PULL_ALLOC(ndr, r->in.old_lm_crypted);
8971                 } else {
8972                         r->in.old_lm_crypted = NULL;
8973                 }
8974                 if (r->in.old_lm_crypted) {
8975                         _mem_save_old_lm_crypted_0 = NDR_PULL_GET_MEM_CTX(ndr);
8976                         NDR_PULL_SET_MEM_CTX(ndr, r->in.old_lm_crypted, 0);
8977                         NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.old_lm_crypted));
8978                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_lm_crypted_0, 0);
8979                 }
8980                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_new_lm_crypted));
8981                 if (_ptr_new_lm_crypted) {
8982                         NDR_PULL_ALLOC(ndr, r->in.new_lm_crypted);
8983                 } else {
8984                         r->in.new_lm_crypted = NULL;
8985                 }
8986                 if (r->in.new_lm_crypted) {
8987                         _mem_save_new_lm_crypted_0 = NDR_PULL_GET_MEM_CTX(ndr);
8988                         NDR_PULL_SET_MEM_CTX(ndr, r->in.new_lm_crypted, 0);
8989                         NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.new_lm_crypted));
8990                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_lm_crypted_0, 0);
8991                 }
8992                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.nt_present));
8993                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_old_nt_crypted));
8994                 if (_ptr_old_nt_crypted) {
8995                         NDR_PULL_ALLOC(ndr, r->in.old_nt_crypted);
8996                 } else {
8997                         r->in.old_nt_crypted = NULL;
8998                 }
8999                 if (r->in.old_nt_crypted) {
9000                         _mem_save_old_nt_crypted_0 = NDR_PULL_GET_MEM_CTX(ndr);
9001                         NDR_PULL_SET_MEM_CTX(ndr, r->in.old_nt_crypted, 0);
9002                         NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.old_nt_crypted));
9003                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_nt_crypted_0, 0);
9004                 }
9005                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_new_nt_crypted));
9006                 if (_ptr_new_nt_crypted) {
9007                         NDR_PULL_ALLOC(ndr, r->in.new_nt_crypted);
9008                 } else {
9009                         r->in.new_nt_crypted = NULL;
9010                 }
9011                 if (r->in.new_nt_crypted) {
9012                         _mem_save_new_nt_crypted_0 = NDR_PULL_GET_MEM_CTX(ndr);
9013                         NDR_PULL_SET_MEM_CTX(ndr, r->in.new_nt_crypted, 0);
9014                         NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.new_nt_crypted));
9015                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_nt_crypted_0, 0);
9016                 }
9017                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.cross1_present));
9018                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nt_cross));
9019                 if (_ptr_nt_cross) {
9020                         NDR_PULL_ALLOC(ndr, r->in.nt_cross);
9021                 } else {
9022                         r->in.nt_cross = NULL;
9023                 }
9024                 if (r->in.nt_cross) {
9025                         _mem_save_nt_cross_0 = NDR_PULL_GET_MEM_CTX(ndr);
9026                         NDR_PULL_SET_MEM_CTX(ndr, r->in.nt_cross, 0);
9027                         NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.nt_cross));
9028                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nt_cross_0, 0);
9029                 }
9030                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.cross2_present));
9031                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lm_cross));
9032                 if (_ptr_lm_cross) {
9033                         NDR_PULL_ALLOC(ndr, r->in.lm_cross);
9034                 } else {
9035                         r->in.lm_cross = NULL;
9036                 }
9037                 if (r->in.lm_cross) {
9038                         _mem_save_lm_cross_0 = NDR_PULL_GET_MEM_CTX(ndr);
9039                         NDR_PULL_SET_MEM_CTX(ndr, r->in.lm_cross, 0);
9040                         NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.lm_cross));
9041                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lm_cross_0, 0);
9042                 }
9043         }
9044         if (flags & NDR_OUT) {
9045                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9046         }
9047         return NDR_ERR_SUCCESS;
9048 }
9049
9050 _PUBLIC_ void ndr_print_samr_ChangePasswordUser(struct ndr_print *ndr, const char *name, int flags, const struct samr_ChangePasswordUser *r)
9051 {
9052         ndr_print_struct(ndr, name, "samr_ChangePasswordUser");
9053         ndr->depth++;
9054         if (flags & NDR_SET_VALUES) {
9055                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9056         }
9057         if (flags & NDR_IN) {
9058                 ndr_print_struct(ndr, "in", "samr_ChangePasswordUser");
9059                 ndr->depth++;
9060                 ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
9061                 ndr->depth++;
9062                 ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
9063                 ndr->depth--;
9064                 ndr_print_uint8(ndr, "lm_present", r->in.lm_present);
9065                 ndr_print_ptr(ndr, "old_lm_crypted", r->in.old_lm_crypted);
9066                 ndr->depth++;
9067                 if (r->in.old_lm_crypted) {
9068                         ndr_print_samr_Password(ndr, "old_lm_crypted", r->in.old_lm_crypted);
9069                 }
9070                 ndr->depth--;
9071                 ndr_print_ptr(ndr, "new_lm_crypted", r->in.new_lm_crypted);
9072                 ndr->depth++;
9073                 if (r->in.new_lm_crypted) {
9074                         ndr_print_samr_Password(ndr, "new_lm_crypted", r->in.new_lm_crypted);
9075                 }
9076                 ndr->depth--;
9077                 ndr_print_uint8(ndr, "nt_present", r->in.nt_present);
9078                 ndr_print_ptr(ndr, "old_nt_crypted", r->in.old_nt_crypted);
9079                 ndr->depth++;
9080                 if (r->in.old_nt_crypted) {
9081                         ndr_print_samr_Password(ndr, "old_nt_crypted", r->in.old_nt_crypted);
9082                 }
9083                 ndr->depth--;
9084                 ndr_print_ptr(ndr, "new_nt_crypted", r->in.new_nt_crypted);
9085                 ndr->depth++;
9086                 if (r->in.new_nt_crypted) {
9087                         ndr_print_samr_Password(ndr, "new_nt_crypted", r->in.new_nt_crypted);
9088                 }
9089                 ndr->depth--;
9090                 ndr_print_uint8(ndr, "cross1_present", r->in.cross1_present);
9091                 ndr_print_ptr(ndr, "nt_cross", r->in.nt_cross);
9092                 ndr->depth++;
9093                 if (r->in.nt_cross) {
9094                         ndr_print_samr_Password(ndr, "nt_cross", r->in.nt_cross);
9095                 }
9096                 ndr->depth--;
9097                 ndr_print_uint8(ndr, "cross2_present", r->in.cross2_present);
9098                 ndr_print_ptr(ndr, "lm_cross", r->in.lm_cross);
9099                 ndr->depth++;
9100                 if (r->in.lm_cross) {
9101                         ndr_print_samr_Password(ndr, "lm_cross", r->in.lm_cross);
9102                 }
9103                 ndr->depth--;
9104                 ndr->depth--;
9105         }
9106         if (flags & NDR_OUT) {
9107                 ndr_print_struct(ndr, "out", "samr_ChangePasswordUser");
9108                 ndr->depth++;
9109                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9110                 ndr->depth--;
9111         }
9112         ndr->depth--;
9113 }
9114
9115 static enum ndr_err_code ndr_push_samr_GetGroupsForUser(struct ndr_push *ndr, int flags, const struct samr_GetGroupsForUser *r)
9116 {
9117         if (flags & NDR_IN) {
9118                 if (r->in.user_handle == NULL) {
9119                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9120                 }
9121                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9122         }
9123         if (flags & NDR_OUT) {
9124                 if (r->out.rids == NULL) {
9125                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9126                 }
9127                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.rids));
9128                 if (*r->out.rids) {
9129                         NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.rids));
9130                 }
9131                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9132         }
9133         return NDR_ERR_SUCCESS;
9134 }
9135
9136 static enum ndr_err_code ndr_pull_samr_GetGroupsForUser(struct ndr_pull *ndr, int flags, struct samr_GetGroupsForUser *r)
9137 {
9138         uint32_t _ptr_rids;
9139         TALLOC_CTX *_mem_save_user_handle_0;
9140         TALLOC_CTX *_mem_save_rids_0;
9141         TALLOC_CTX *_mem_save_rids_1;
9142         if (flags & NDR_IN) {
9143                 ZERO_STRUCT(r->out);
9144
9145                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9146                         NDR_PULL_ALLOC(ndr, r->in.user_handle);
9147                 }
9148                 _mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9149                 NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
9150                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9151                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
9152                 NDR_PULL_ALLOC(ndr, r->out.rids);
9153                 ZERO_STRUCTP(r->out.rids);
9154         }
9155         if (flags & NDR_OUT) {
9156                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9157                         NDR_PULL_ALLOC(ndr, r->out.rids);
9158                 }
9159                 _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
9160                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rids, LIBNDR_FLAG_REF_ALLOC);
9161                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
9162                 if (_ptr_rids) {
9163                         NDR_PULL_ALLOC(ndr, *r->out.rids);
9164                 } else {
9165                         *r->out.rids = NULL;
9166                 }
9167                 if (*r->out.rids) {
9168                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
9169                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.rids, 0);
9170                         NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.rids));
9171                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
9172                 }
9173                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, LIBNDR_FLAG_REF_ALLOC);
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_GetGroupsForUser(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetGroupsForUser *r)
9180 {
9181         ndr_print_struct(ndr, name, "samr_GetGroupsForUser");
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_GetGroupsForUser");
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->depth--;
9194         }
9195         if (flags & NDR_OUT) {
9196                 ndr_print_struct(ndr, "out", "samr_GetGroupsForUser");
9197                 ndr->depth++;
9198                 ndr_print_ptr(ndr, "rids", r->out.rids);
9199                 ndr->depth++;
9200                 ndr_print_ptr(ndr, "rids", *r->out.rids);
9201                 ndr->depth++;
9202                 if (*r->out.rids) {
9203                         ndr_print_samr_RidWithAttributeArray(ndr, "rids", *r->out.rids);
9204                 }
9205                 ndr->depth--;
9206                 ndr->depth--;
9207                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9208                 ndr->depth--;
9209         }
9210         ndr->depth--;
9211 }
9212
9213 static enum ndr_err_code ndr_push_samr_QueryDisplayInfo(struct ndr_push *ndr, int flags, const struct samr_QueryDisplayInfo *r)
9214 {
9215         if (flags & NDR_IN) {
9216                 if (r->in.domain_handle == NULL) {
9217                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9218                 }
9219                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9220                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
9221                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.start_idx));
9222                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_entries));
9223                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
9224         }
9225         if (flags & NDR_OUT) {
9226                 if (r->out.total_size == NULL) {
9227                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9228                 }
9229                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_size));
9230                 if (r->out.returned_size == NULL) {
9231                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9232                 }
9233                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.returned_size));
9234                 if (r->out.info == NULL) {
9235                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9236                 }
9237                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
9238                 NDR_CHECK(ndr_push_samr_DispInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9239                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9240         }
9241         return NDR_ERR_SUCCESS;
9242 }
9243
9244 static enum ndr_err_code ndr_pull_samr_QueryDisplayInfo(struct ndr_pull *ndr, int flags, struct samr_QueryDisplayInfo *r)
9245 {
9246         TALLOC_CTX *_mem_save_domain_handle_0;
9247         TALLOC_CTX *_mem_save_total_size_0;
9248         TALLOC_CTX *_mem_save_returned_size_0;
9249         TALLOC_CTX *_mem_save_info_0;
9250         if (flags & NDR_IN) {
9251                 ZERO_STRUCT(r->out);
9252
9253                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9254                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
9255                 }
9256                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9257                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
9258                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9259                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
9260                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
9261                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.start_idx));
9262                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_entries));
9263                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
9264                 NDR_PULL_ALLOC(ndr, r->out.total_size);
9265                 ZERO_STRUCTP(r->out.total_size);
9266                 NDR_PULL_ALLOC(ndr, r->out.returned_size);
9267                 ZERO_STRUCTP(r->out.returned_size);
9268                 NDR_PULL_ALLOC(ndr, r->out.info);
9269                 ZERO_STRUCTP(r->out.info);
9270         }
9271         if (flags & NDR_OUT) {
9272                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9273                         NDR_PULL_ALLOC(ndr, r->out.total_size);
9274                 }
9275                 _mem_save_total_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
9276                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_size, LIBNDR_FLAG_REF_ALLOC);
9277                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_size));
9278                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_size_0, LIBNDR_FLAG_REF_ALLOC);
9279                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9280                         NDR_PULL_ALLOC(ndr, r->out.returned_size);
9281                 }
9282                 _mem_save_returned_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
9283                 NDR_PULL_SET_MEM_CTX(ndr, r->out.returned_size, LIBNDR_FLAG_REF_ALLOC);
9284                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.returned_size));
9285                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_returned_size_0, LIBNDR_FLAG_REF_ALLOC);
9286                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9287                         NDR_PULL_ALLOC(ndr, r->out.info);
9288                 }
9289                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9290                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9291                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
9292                 NDR_CHECK(ndr_pull_samr_DispInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9293                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9294                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9295         }
9296         return NDR_ERR_SUCCESS;
9297 }
9298
9299 _PUBLIC_ void ndr_print_samr_QueryDisplayInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryDisplayInfo *r)
9300 {
9301         ndr_print_struct(ndr, name, "samr_QueryDisplayInfo");
9302         ndr->depth++;
9303         if (flags & NDR_SET_VALUES) {
9304                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9305         }
9306         if (flags & NDR_IN) {
9307                 ndr_print_struct(ndr, "in", "samr_QueryDisplayInfo");
9308                 ndr->depth++;
9309                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
9310                 ndr->depth++;
9311                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
9312                 ndr->depth--;
9313                 ndr_print_uint16(ndr, "level", r->in.level);
9314                 ndr_print_uint32(ndr, "start_idx", r->in.start_idx);
9315                 ndr_print_uint32(ndr, "max_entries", r->in.max_entries);
9316                 ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
9317                 ndr->depth--;
9318         }
9319         if (flags & NDR_OUT) {
9320                 ndr_print_struct(ndr, "out", "samr_QueryDisplayInfo");
9321                 ndr->depth++;
9322                 ndr_print_ptr(ndr, "total_size", r->out.total_size);
9323                 ndr->depth++;
9324                 ndr_print_uint32(ndr, "total_size", *r->out.total_size);
9325                 ndr->depth--;
9326                 ndr_print_ptr(ndr, "returned_size", r->out.returned_size);
9327                 ndr->depth++;
9328                 ndr_print_uint32(ndr, "returned_size", *r->out.returned_size);
9329                 ndr->depth--;
9330                 ndr_print_ptr(ndr, "info", r->out.info);
9331                 ndr->depth++;
9332                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
9333                 ndr_print_samr_DispInfo(ndr, "info", r->out.info);
9334                 ndr->depth--;
9335                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9336                 ndr->depth--;
9337         }
9338         ndr->depth--;
9339 }
9340
9341 static enum ndr_err_code ndr_push_samr_GetDisplayEnumerationIndex(struct ndr_push *ndr, int flags, const struct samr_GetDisplayEnumerationIndex *r)
9342 {
9343         if (flags & NDR_IN) {
9344                 if (r->in.domain_handle == NULL) {
9345                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9346                 }
9347                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9348                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
9349                 if (r->in.name == NULL) {
9350                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9351                 }
9352                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
9353         }
9354         if (flags & NDR_OUT) {
9355                 if (r->out.idx == NULL) {
9356                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9357                 }
9358                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.idx));
9359                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9360         }
9361         return NDR_ERR_SUCCESS;
9362 }
9363
9364 static enum ndr_err_code ndr_pull_samr_GetDisplayEnumerationIndex(struct ndr_pull *ndr, int flags, struct samr_GetDisplayEnumerationIndex *r)
9365 {
9366         TALLOC_CTX *_mem_save_domain_handle_0;
9367         TALLOC_CTX *_mem_save_name_0;
9368         TALLOC_CTX *_mem_save_idx_0;
9369         if (flags & NDR_IN) {
9370                 ZERO_STRUCT(r->out);
9371
9372                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9373                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
9374                 }
9375                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9376                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
9377                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9378                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
9379                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
9380                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9381                         NDR_PULL_ALLOC(ndr, r->in.name);
9382                 }
9383                 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9384                 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
9385                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
9386                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
9387                 NDR_PULL_ALLOC(ndr, r->out.idx);
9388                 ZERO_STRUCTP(r->out.idx);
9389         }
9390         if (flags & NDR_OUT) {
9391                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9392                         NDR_PULL_ALLOC(ndr, r->out.idx);
9393                 }
9394                 _mem_save_idx_0 = NDR_PULL_GET_MEM_CTX(ndr);
9395                 NDR_PULL_SET_MEM_CTX(ndr, r->out.idx, LIBNDR_FLAG_REF_ALLOC);
9396                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.idx));
9397                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_idx_0, LIBNDR_FLAG_REF_ALLOC);
9398                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9399         }
9400         return NDR_ERR_SUCCESS;
9401 }
9402
9403 _PUBLIC_ void ndr_print_samr_GetDisplayEnumerationIndex(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetDisplayEnumerationIndex *r)
9404 {
9405         ndr_print_struct(ndr, name, "samr_GetDisplayEnumerationIndex");
9406         ndr->depth++;
9407         if (flags & NDR_SET_VALUES) {
9408                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9409         }
9410         if (flags & NDR_IN) {
9411                 ndr_print_struct(ndr, "in", "samr_GetDisplayEnumerationIndex");
9412                 ndr->depth++;
9413                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
9414                 ndr->depth++;
9415                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
9416                 ndr->depth--;
9417                 ndr_print_uint16(ndr, "level", r->in.level);
9418                 ndr_print_ptr(ndr, "name", r->in.name);
9419                 ndr->depth++;
9420                 ndr_print_lsa_String(ndr, "name", r->in.name);
9421                 ndr->depth--;
9422                 ndr->depth--;
9423         }
9424         if (flags & NDR_OUT) {
9425                 ndr_print_struct(ndr, "out", "samr_GetDisplayEnumerationIndex");
9426                 ndr->depth++;
9427                 ndr_print_ptr(ndr, "idx", r->out.idx);
9428                 ndr->depth++;
9429                 ndr_print_uint32(ndr, "idx", *r->out.idx);
9430                 ndr->depth--;
9431                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9432                 ndr->depth--;
9433         }
9434         ndr->depth--;
9435 }
9436
9437 static enum ndr_err_code ndr_push_samr_TestPrivateFunctionsDomain(struct ndr_push *ndr, int flags, const struct samr_TestPrivateFunctionsDomain *r)
9438 {
9439         if (flags & NDR_IN) {
9440                 if (r->in.domain_handle == NULL) {
9441                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9442                 }
9443                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9444         }
9445         if (flags & NDR_OUT) {
9446                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9447         }
9448         return NDR_ERR_SUCCESS;
9449 }
9450
9451 static enum ndr_err_code ndr_pull_samr_TestPrivateFunctionsDomain(struct ndr_pull *ndr, int flags, struct samr_TestPrivateFunctionsDomain *r)
9452 {
9453         TALLOC_CTX *_mem_save_domain_handle_0;
9454         if (flags & NDR_IN) {
9455                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9456                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
9457                 }
9458                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9459                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
9460                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9461                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
9462         }
9463         if (flags & NDR_OUT) {
9464                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9465         }
9466         return NDR_ERR_SUCCESS;
9467 }
9468
9469 _PUBLIC_ void ndr_print_samr_TestPrivateFunctionsDomain(struct ndr_print *ndr, const char *name, int flags, const struct samr_TestPrivateFunctionsDomain *r)
9470 {
9471         ndr_print_struct(ndr, name, "samr_TestPrivateFunctionsDomain");
9472         ndr->depth++;
9473         if (flags & NDR_SET_VALUES) {
9474                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9475         }
9476         if (flags & NDR_IN) {
9477                 ndr_print_struct(ndr, "in", "samr_TestPrivateFunctionsDomain");
9478                 ndr->depth++;
9479                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
9480                 ndr->depth++;
9481                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
9482                 ndr->depth--;
9483                 ndr->depth--;
9484         }
9485         if (flags & NDR_OUT) {
9486                 ndr_print_struct(ndr, "out", "samr_TestPrivateFunctionsDomain");
9487                 ndr->depth++;
9488                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9489                 ndr->depth--;
9490         }
9491         ndr->depth--;
9492 }
9493
9494 static enum ndr_err_code ndr_push_samr_TestPrivateFunctionsUser(struct ndr_push *ndr, int flags, const struct samr_TestPrivateFunctionsUser *r)
9495 {
9496         if (flags & NDR_IN) {
9497                 if (r->in.user_handle == NULL) {
9498                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9499                 }
9500                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9501         }
9502         if (flags & NDR_OUT) {
9503                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9504         }
9505         return NDR_ERR_SUCCESS;
9506 }
9507
9508 static enum ndr_err_code ndr_pull_samr_TestPrivateFunctionsUser(struct ndr_pull *ndr, int flags, struct samr_TestPrivateFunctionsUser *r)
9509 {
9510         TALLOC_CTX *_mem_save_user_handle_0;
9511         if (flags & NDR_IN) {
9512                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9513                         NDR_PULL_ALLOC(ndr, r->in.user_handle);
9514                 }
9515                 _mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9516                 NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
9517                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9518                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
9519         }
9520         if (flags & NDR_OUT) {
9521                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9522         }
9523         return NDR_ERR_SUCCESS;
9524 }
9525
9526 _PUBLIC_ void ndr_print_samr_TestPrivateFunctionsUser(struct ndr_print *ndr, const char *name, int flags, const struct samr_TestPrivateFunctionsUser *r)
9527 {
9528         ndr_print_struct(ndr, name, "samr_TestPrivateFunctionsUser");
9529         ndr->depth++;
9530         if (flags & NDR_SET_VALUES) {
9531                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9532         }
9533         if (flags & NDR_IN) {
9534                 ndr_print_struct(ndr, "in", "samr_TestPrivateFunctionsUser");
9535                 ndr->depth++;
9536                 ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
9537                 ndr->depth++;
9538                 ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
9539                 ndr->depth--;
9540                 ndr->depth--;
9541         }
9542         if (flags & NDR_OUT) {
9543                 ndr_print_struct(ndr, "out", "samr_TestPrivateFunctionsUser");
9544                 ndr->depth++;
9545                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9546                 ndr->depth--;
9547         }
9548         ndr->depth--;
9549 }
9550
9551 _PUBLIC_ enum ndr_err_code ndr_push_samr_GetUserPwInfo(struct ndr_push *ndr, int flags, const struct samr_GetUserPwInfo *r)
9552 {
9553         if (flags & NDR_IN) {
9554                 if (r->in.user_handle == NULL) {
9555                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9556                 }
9557                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9558         }
9559         if (flags & NDR_OUT) {
9560                 if (r->out.info == NULL) {
9561                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9562                 }
9563                 NDR_CHECK(ndr_push_samr_PwInfo(ndr, NDR_SCALARS, r->out.info));
9564                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9565         }
9566         return NDR_ERR_SUCCESS;
9567 }
9568
9569 _PUBLIC_ enum ndr_err_code ndr_pull_samr_GetUserPwInfo(struct ndr_pull *ndr, int flags, struct samr_GetUserPwInfo *r)
9570 {
9571         TALLOC_CTX *_mem_save_user_handle_0;
9572         TALLOC_CTX *_mem_save_info_0;
9573         if (flags & NDR_IN) {
9574                 ZERO_STRUCT(r->out);
9575
9576                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9577                         NDR_PULL_ALLOC(ndr, r->in.user_handle);
9578                 }
9579                 _mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9580                 NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
9581                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9582                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
9583                 NDR_PULL_ALLOC(ndr, r->out.info);
9584                 ZERO_STRUCTP(r->out.info);
9585         }
9586         if (flags & NDR_OUT) {
9587                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9588                         NDR_PULL_ALLOC(ndr, r->out.info);
9589                 }
9590                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9591                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9592                 NDR_CHECK(ndr_pull_samr_PwInfo(ndr, NDR_SCALARS, r->out.info));
9593                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9594                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9595         }
9596         return NDR_ERR_SUCCESS;
9597 }
9598
9599 _PUBLIC_ void ndr_print_samr_GetUserPwInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetUserPwInfo *r)
9600 {
9601         ndr_print_struct(ndr, name, "samr_GetUserPwInfo");
9602         ndr->depth++;
9603         if (flags & NDR_SET_VALUES) {
9604                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9605         }
9606         if (flags & NDR_IN) {
9607                 ndr_print_struct(ndr, "in", "samr_GetUserPwInfo");
9608                 ndr->depth++;
9609                 ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
9610                 ndr->depth++;
9611                 ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
9612                 ndr->depth--;
9613                 ndr->depth--;
9614         }
9615         if (flags & NDR_OUT) {
9616                 ndr_print_struct(ndr, "out", "samr_GetUserPwInfo");
9617                 ndr->depth++;
9618                 ndr_print_ptr(ndr, "info", r->out.info);
9619                 ndr->depth++;
9620                 ndr_print_samr_PwInfo(ndr, "info", r->out.info);
9621                 ndr->depth--;
9622                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9623                 ndr->depth--;
9624         }
9625         ndr->depth--;
9626 }
9627
9628 static enum ndr_err_code ndr_push_samr_RemoveMemberFromForeignDomain(struct ndr_push *ndr, int flags, const struct samr_RemoveMemberFromForeignDomain *r)
9629 {
9630         if (flags & NDR_IN) {
9631                 if (r->in.domain_handle == NULL) {
9632                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9633                 }
9634                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9635                 if (r->in.sid == NULL) {
9636                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9637                 }
9638                 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
9639         }
9640         if (flags & NDR_OUT) {
9641                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9642         }
9643         return NDR_ERR_SUCCESS;
9644 }
9645
9646 static enum ndr_err_code ndr_pull_samr_RemoveMemberFromForeignDomain(struct ndr_pull *ndr, int flags, struct samr_RemoveMemberFromForeignDomain *r)
9647 {
9648         TALLOC_CTX *_mem_save_domain_handle_0;
9649         TALLOC_CTX *_mem_save_sid_0;
9650         if (flags & NDR_IN) {
9651                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9652                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
9653                 }
9654                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9655                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
9656                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9657                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
9658                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9659                         NDR_PULL_ALLOC(ndr, r->in.sid);
9660                 }
9661                 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9662                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
9663                 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sid));
9664                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
9665         }
9666         if (flags & NDR_OUT) {
9667                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9668         }
9669         return NDR_ERR_SUCCESS;
9670 }
9671
9672 _PUBLIC_ void ndr_print_samr_RemoveMemberFromForeignDomain(struct ndr_print *ndr, const char *name, int flags, const struct samr_RemoveMemberFromForeignDomain *r)
9673 {
9674         ndr_print_struct(ndr, name, "samr_RemoveMemberFromForeignDomain");
9675         ndr->depth++;
9676         if (flags & NDR_SET_VALUES) {
9677                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9678         }
9679         if (flags & NDR_IN) {
9680                 ndr_print_struct(ndr, "in", "samr_RemoveMemberFromForeignDomain");
9681                 ndr->depth++;
9682                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
9683                 ndr->depth++;
9684                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
9685                 ndr->depth--;
9686                 ndr_print_ptr(ndr, "sid", r->in.sid);
9687                 ndr->depth++;
9688                 ndr_print_dom_sid2(ndr, "sid", r->in.sid);
9689                 ndr->depth--;
9690                 ndr->depth--;
9691         }
9692         if (flags & NDR_OUT) {
9693                 ndr_print_struct(ndr, "out", "samr_RemoveMemberFromForeignDomain");
9694                 ndr->depth++;
9695                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9696                 ndr->depth--;
9697         }
9698         ndr->depth--;
9699 }
9700
9701 static enum ndr_err_code ndr_push_samr_QueryDomainInfo2(struct ndr_push *ndr, int flags, const struct samr_QueryDomainInfo2 *r)
9702 {
9703         if (flags & NDR_IN) {
9704                 if (r->in.domain_handle == NULL) {
9705                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9706                 }
9707                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9708                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
9709         }
9710         if (flags & NDR_OUT) {
9711                 if (r->out.info == NULL) {
9712                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9713                 }
9714                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
9715                 if (*r->out.info) {
9716                         NDR_CHECK(ndr_push_set_switch_value(ndr, *r->out.info, r->in.level));
9717                         NDR_CHECK(ndr_push_samr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
9718                 }
9719                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9720         }
9721         return NDR_ERR_SUCCESS;
9722 }
9723
9724 static enum ndr_err_code ndr_pull_samr_QueryDomainInfo2(struct ndr_pull *ndr, int flags, struct samr_QueryDomainInfo2 *r)
9725 {
9726         uint32_t _ptr_info;
9727         TALLOC_CTX *_mem_save_domain_handle_0;
9728         TALLOC_CTX *_mem_save_info_0;
9729         TALLOC_CTX *_mem_save_info_1;
9730         if (flags & NDR_IN) {
9731                 ZERO_STRUCT(r->out);
9732
9733                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9734                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
9735                 }
9736                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9737                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
9738                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9739                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
9740                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
9741                 NDR_PULL_ALLOC(ndr, r->out.info);
9742                 ZERO_STRUCTP(r->out.info);
9743         }
9744         if (flags & NDR_OUT) {
9745                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9746                         NDR_PULL_ALLOC(ndr, r->out.info);
9747                 }
9748                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9749                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9750                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
9751                 if (_ptr_info) {
9752                         NDR_PULL_ALLOC(ndr, *r->out.info);
9753                 } else {
9754                         *r->out.info = NULL;
9755                 }
9756                 if (*r->out.info) {
9757                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
9758                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
9759                         NDR_CHECK(ndr_pull_set_switch_value(ndr, *r->out.info, r->in.level));
9760                         NDR_CHECK(ndr_pull_samr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
9761                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
9762                 }
9763                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9764                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9765         }
9766         return NDR_ERR_SUCCESS;
9767 }
9768
9769 _PUBLIC_ void ndr_print_samr_QueryDomainInfo2(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryDomainInfo2 *r)
9770 {
9771         ndr_print_struct(ndr, name, "samr_QueryDomainInfo2");
9772         ndr->depth++;
9773         if (flags & NDR_SET_VALUES) {
9774                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9775         }
9776         if (flags & NDR_IN) {
9777                 ndr_print_struct(ndr, "in", "samr_QueryDomainInfo2");
9778                 ndr->depth++;
9779                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
9780                 ndr->depth++;
9781                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
9782                 ndr->depth--;
9783                 ndr_print_uint16(ndr, "level", r->in.level);
9784                 ndr->depth--;
9785         }
9786         if (flags & NDR_OUT) {
9787                 ndr_print_struct(ndr, "out", "samr_QueryDomainInfo2");
9788                 ndr->depth++;
9789                 ndr_print_ptr(ndr, "info", r->out.info);
9790                 ndr->depth++;
9791                 ndr_print_ptr(ndr, "info", *r->out.info);
9792                 ndr->depth++;
9793                 if (*r->out.info) {
9794                         ndr_print_set_switch_value(ndr, *r->out.info, r->in.level);
9795                         ndr_print_samr_DomainInfo(ndr, "info", *r->out.info);
9796                 }
9797                 ndr->depth--;
9798                 ndr->depth--;
9799                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9800                 ndr->depth--;
9801         }
9802         ndr->depth--;
9803 }
9804
9805 static enum ndr_err_code ndr_push_samr_QueryUserInfo2(struct ndr_push *ndr, int flags, const struct samr_QueryUserInfo2 *r)
9806 {
9807         if (flags & NDR_IN) {
9808                 if (r->in.user_handle == NULL) {
9809                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9810                 }
9811                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9812                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
9813         }
9814         if (flags & NDR_OUT) {
9815                 if (r->out.info == NULL) {
9816                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9817                 }
9818                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
9819                 NDR_CHECK(ndr_push_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9820                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9821         }
9822         return NDR_ERR_SUCCESS;
9823 }
9824
9825 static enum ndr_err_code ndr_pull_samr_QueryUserInfo2(struct ndr_pull *ndr, int flags, struct samr_QueryUserInfo2 *r)
9826 {
9827         TALLOC_CTX *_mem_save_user_handle_0;
9828         TALLOC_CTX *_mem_save_info_0;
9829         if (flags & NDR_IN) {
9830                 ZERO_STRUCT(r->out);
9831
9832                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9833                         NDR_PULL_ALLOC(ndr, r->in.user_handle);
9834                 }
9835                 _mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9836                 NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
9837                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
9838                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
9839                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
9840                 NDR_PULL_ALLOC(ndr, r->out.info);
9841                 ZERO_STRUCTP(r->out.info);
9842         }
9843         if (flags & NDR_OUT) {
9844                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9845                         NDR_PULL_ALLOC(ndr, r->out.info);
9846                 }
9847                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9848                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9849                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
9850                 NDR_CHECK(ndr_pull_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9851                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9852                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9853         }
9854         return NDR_ERR_SUCCESS;
9855 }
9856
9857 _PUBLIC_ void ndr_print_samr_QueryUserInfo2(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryUserInfo2 *r)
9858 {
9859         ndr_print_struct(ndr, name, "samr_QueryUserInfo2");
9860         ndr->depth++;
9861         if (flags & NDR_SET_VALUES) {
9862                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9863         }
9864         if (flags & NDR_IN) {
9865                 ndr_print_struct(ndr, "in", "samr_QueryUserInfo2");
9866                 ndr->depth++;
9867                 ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
9868                 ndr->depth++;
9869                 ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
9870                 ndr->depth--;
9871                 ndr_print_uint16(ndr, "level", r->in.level);
9872                 ndr->depth--;
9873         }
9874         if (flags & NDR_OUT) {
9875                 ndr_print_struct(ndr, "out", "samr_QueryUserInfo2");
9876                 ndr->depth++;
9877                 ndr_print_ptr(ndr, "info", r->out.info);
9878                 ndr->depth++;
9879                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
9880                 ndr_print_samr_UserInfo(ndr, "info", r->out.info);
9881                 ndr->depth--;
9882                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9883                 ndr->depth--;
9884         }
9885         ndr->depth--;
9886 }
9887
9888 static enum ndr_err_code ndr_push_samr_QueryDisplayInfo2(struct ndr_push *ndr, int flags, const struct samr_QueryDisplayInfo2 *r)
9889 {
9890         if (flags & NDR_IN) {
9891                 if (r->in.domain_handle == NULL) {
9892                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9893                 }
9894                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9895                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
9896                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.start_idx));
9897                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_entries));
9898                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
9899         }
9900         if (flags & NDR_OUT) {
9901                 if (r->out.total_size == NULL) {
9902                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9903                 }
9904                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_size));
9905                 if (r->out.returned_size == NULL) {
9906                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9907                 }
9908                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.returned_size));
9909                 if (r->out.info == NULL) {
9910                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9911                 }
9912                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
9913                 NDR_CHECK(ndr_push_samr_DispInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9914                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9915         }
9916         return NDR_ERR_SUCCESS;
9917 }
9918
9919 static enum ndr_err_code ndr_pull_samr_QueryDisplayInfo2(struct ndr_pull *ndr, int flags, struct samr_QueryDisplayInfo2 *r)
9920 {
9921         TALLOC_CTX *_mem_save_domain_handle_0;
9922         TALLOC_CTX *_mem_save_total_size_0;
9923         TALLOC_CTX *_mem_save_returned_size_0;
9924         TALLOC_CTX *_mem_save_info_0;
9925         if (flags & NDR_IN) {
9926                 ZERO_STRUCT(r->out);
9927
9928                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9929                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
9930                 }
9931                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9932                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
9933                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
9934                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
9935                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
9936                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.start_idx));
9937                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_entries));
9938                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
9939                 NDR_PULL_ALLOC(ndr, r->out.total_size);
9940                 ZERO_STRUCTP(r->out.total_size);
9941                 NDR_PULL_ALLOC(ndr, r->out.returned_size);
9942                 ZERO_STRUCTP(r->out.returned_size);
9943                 NDR_PULL_ALLOC(ndr, r->out.info);
9944                 ZERO_STRUCTP(r->out.info);
9945         }
9946         if (flags & NDR_OUT) {
9947                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9948                         NDR_PULL_ALLOC(ndr, r->out.total_size);
9949                 }
9950                 _mem_save_total_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
9951                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_size, LIBNDR_FLAG_REF_ALLOC);
9952                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_size));
9953                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_size_0, LIBNDR_FLAG_REF_ALLOC);
9954                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9955                         NDR_PULL_ALLOC(ndr, r->out.returned_size);
9956                 }
9957                 _mem_save_returned_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
9958                 NDR_PULL_SET_MEM_CTX(ndr, r->out.returned_size, LIBNDR_FLAG_REF_ALLOC);
9959                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.returned_size));
9960                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_returned_size_0, LIBNDR_FLAG_REF_ALLOC);
9961                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9962                         NDR_PULL_ALLOC(ndr, r->out.info);
9963                 }
9964                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9965                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9966                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
9967                 NDR_CHECK(ndr_pull_samr_DispInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9968                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9969                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9970         }
9971         return NDR_ERR_SUCCESS;
9972 }
9973
9974 _PUBLIC_ void ndr_print_samr_QueryDisplayInfo2(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryDisplayInfo2 *r)
9975 {
9976         ndr_print_struct(ndr, name, "samr_QueryDisplayInfo2");
9977         ndr->depth++;
9978         if (flags & NDR_SET_VALUES) {
9979                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9980         }
9981         if (flags & NDR_IN) {
9982                 ndr_print_struct(ndr, "in", "samr_QueryDisplayInfo2");
9983                 ndr->depth++;
9984                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
9985                 ndr->depth++;
9986                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
9987                 ndr->depth--;
9988                 ndr_print_uint16(ndr, "level", r->in.level);
9989                 ndr_print_uint32(ndr, "start_idx", r->in.start_idx);
9990                 ndr_print_uint32(ndr, "max_entries", r->in.max_entries);
9991                 ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
9992                 ndr->depth--;
9993         }
9994         if (flags & NDR_OUT) {
9995                 ndr_print_struct(ndr, "out", "samr_QueryDisplayInfo2");
9996                 ndr->depth++;
9997                 ndr_print_ptr(ndr, "total_size", r->out.total_size);
9998                 ndr->depth++;
9999                 ndr_print_uint32(ndr, "total_size", *r->out.total_size);
10000                 ndr->depth--;
10001                 ndr_print_ptr(ndr, "returned_size", r->out.returned_size);
10002                 ndr->depth++;
10003                 ndr_print_uint32(ndr, "returned_size", *r->out.returned_size);
10004                 ndr->depth--;
10005                 ndr_print_ptr(ndr, "info", r->out.info);
10006                 ndr->depth++;
10007                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10008                 ndr_print_samr_DispInfo(ndr, "info", r->out.info);
10009                 ndr->depth--;
10010                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10011                 ndr->depth--;
10012         }
10013         ndr->depth--;
10014 }
10015
10016 static enum ndr_err_code ndr_push_samr_GetDisplayEnumerationIndex2(struct ndr_push *ndr, int flags, const struct samr_GetDisplayEnumerationIndex2 *r)
10017 {
10018         if (flags & NDR_IN) {
10019                 if (r->in.domain_handle == NULL) {
10020                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10021                 }
10022                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10023                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
10024                 if (r->in.name == NULL) {
10025                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10026                 }
10027                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
10028         }
10029         if (flags & NDR_OUT) {
10030                 if (r->out.idx == NULL) {
10031                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10032                 }
10033                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.idx));
10034                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10035         }
10036         return NDR_ERR_SUCCESS;
10037 }
10038
10039 static enum ndr_err_code ndr_pull_samr_GetDisplayEnumerationIndex2(struct ndr_pull *ndr, int flags, struct samr_GetDisplayEnumerationIndex2 *r)
10040 {
10041         TALLOC_CTX *_mem_save_domain_handle_0;
10042         TALLOC_CTX *_mem_save_name_0;
10043         TALLOC_CTX *_mem_save_idx_0;
10044         if (flags & NDR_IN) {
10045                 ZERO_STRUCT(r->out);
10046
10047                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10048                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
10049                 }
10050                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10051                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
10052                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10053                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
10054                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
10055                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10056                         NDR_PULL_ALLOC(ndr, r->in.name);
10057                 }
10058                 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10059                 NDR_PULL_SET_MEM_CTX(ndr, r->in.name, LIBNDR_FLAG_REF_ALLOC);
10060                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
10061                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
10062                 NDR_PULL_ALLOC(ndr, r->out.idx);
10063                 ZERO_STRUCTP(r->out.idx);
10064         }
10065         if (flags & NDR_OUT) {
10066                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10067                         NDR_PULL_ALLOC(ndr, r->out.idx);
10068                 }
10069                 _mem_save_idx_0 = NDR_PULL_GET_MEM_CTX(ndr);
10070                 NDR_PULL_SET_MEM_CTX(ndr, r->out.idx, LIBNDR_FLAG_REF_ALLOC);
10071                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.idx));
10072                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_idx_0, LIBNDR_FLAG_REF_ALLOC);
10073                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10074         }
10075         return NDR_ERR_SUCCESS;
10076 }
10077
10078 _PUBLIC_ void ndr_print_samr_GetDisplayEnumerationIndex2(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetDisplayEnumerationIndex2 *r)
10079 {
10080         ndr_print_struct(ndr, name, "samr_GetDisplayEnumerationIndex2");
10081         ndr->depth++;
10082         if (flags & NDR_SET_VALUES) {
10083                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10084         }
10085         if (flags & NDR_IN) {
10086                 ndr_print_struct(ndr, "in", "samr_GetDisplayEnumerationIndex2");
10087                 ndr->depth++;
10088                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
10089                 ndr->depth++;
10090                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
10091                 ndr->depth--;
10092                 ndr_print_uint16(ndr, "level", r->in.level);
10093                 ndr_print_ptr(ndr, "name", r->in.name);
10094                 ndr->depth++;
10095                 ndr_print_lsa_String(ndr, "name", r->in.name);
10096                 ndr->depth--;
10097                 ndr->depth--;
10098         }
10099         if (flags & NDR_OUT) {
10100                 ndr_print_struct(ndr, "out", "samr_GetDisplayEnumerationIndex2");
10101                 ndr->depth++;
10102                 ndr_print_ptr(ndr, "idx", r->out.idx);
10103                 ndr->depth++;
10104                 ndr_print_uint32(ndr, "idx", *r->out.idx);
10105                 ndr->depth--;
10106                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10107                 ndr->depth--;
10108         }
10109         ndr->depth--;
10110 }
10111
10112 static enum ndr_err_code ndr_push_samr_CreateUser2(struct ndr_push *ndr, int flags, const struct samr_CreateUser2 *r)
10113 {
10114         if (flags & NDR_IN) {
10115                 if (r->in.domain_handle == NULL) {
10116                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10117                 }
10118                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10119                 if (r->in.account_name == NULL) {
10120                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10121                 }
10122                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account_name));
10123                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.acct_flags));
10124                 NDR_CHECK(ndr_push_samr_UserAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
10125         }
10126         if (flags & NDR_OUT) {
10127                 if (r->out.user_handle == NULL) {
10128                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10129                 }
10130                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
10131                 if (r->out.access_granted == NULL) {
10132                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10133                 }
10134                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.access_granted));
10135                 if (r->out.rid == NULL) {
10136                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10137                 }
10138                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
10139                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10140         }
10141         return NDR_ERR_SUCCESS;
10142 }
10143
10144 static enum ndr_err_code ndr_pull_samr_CreateUser2(struct ndr_pull *ndr, int flags, struct samr_CreateUser2 *r)
10145 {
10146         TALLOC_CTX *_mem_save_domain_handle_0;
10147         TALLOC_CTX *_mem_save_account_name_0;
10148         TALLOC_CTX *_mem_save_user_handle_0;
10149         TALLOC_CTX *_mem_save_access_granted_0;
10150         TALLOC_CTX *_mem_save_rid_0;
10151         if (flags & NDR_IN) {
10152                 ZERO_STRUCT(r->out);
10153
10154                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10155                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
10156                 }
10157                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10158                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
10159                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10160                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
10161                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10162                         NDR_PULL_ALLOC(ndr, r->in.account_name);
10163                 }
10164                 _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10165                 NDR_PULL_SET_MEM_CTX(ndr, r->in.account_name, LIBNDR_FLAG_REF_ALLOC);
10166                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account_name));
10167                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, LIBNDR_FLAG_REF_ALLOC);
10168                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.acct_flags));
10169                 NDR_CHECK(ndr_pull_samr_UserAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
10170                 NDR_PULL_ALLOC(ndr, r->out.user_handle);
10171                 ZERO_STRUCTP(r->out.user_handle);
10172                 NDR_PULL_ALLOC(ndr, r->out.access_granted);
10173                 ZERO_STRUCTP(r->out.access_granted);
10174                 NDR_PULL_ALLOC(ndr, r->out.rid);
10175                 ZERO_STRUCTP(r->out.rid);
10176         }
10177         if (flags & NDR_OUT) {
10178                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10179                         NDR_PULL_ALLOC(ndr, r->out.user_handle);
10180                 }
10181                 _mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10182                 NDR_PULL_SET_MEM_CTX(ndr, r->out.user_handle, LIBNDR_FLAG_REF_ALLOC);
10183                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.user_handle));
10184                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
10185                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10186                         NDR_PULL_ALLOC(ndr, r->out.access_granted);
10187                 }
10188                 _mem_save_access_granted_0 = NDR_PULL_GET_MEM_CTX(ndr);
10189                 NDR_PULL_SET_MEM_CTX(ndr, r->out.access_granted, LIBNDR_FLAG_REF_ALLOC);
10190                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.access_granted));
10191                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_access_granted_0, LIBNDR_FLAG_REF_ALLOC);
10192                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10193                         NDR_PULL_ALLOC(ndr, r->out.rid);
10194                 }
10195                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10196                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
10197                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
10198                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
10199                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10200         }
10201         return NDR_ERR_SUCCESS;
10202 }
10203
10204 _PUBLIC_ void ndr_print_samr_CreateUser2(struct ndr_print *ndr, const char *name, int flags, const struct samr_CreateUser2 *r)
10205 {
10206         ndr_print_struct(ndr, name, "samr_CreateUser2");
10207         ndr->depth++;
10208         if (flags & NDR_SET_VALUES) {
10209                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10210         }
10211         if (flags & NDR_IN) {
10212                 ndr_print_struct(ndr, "in", "samr_CreateUser2");
10213                 ndr->depth++;
10214                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
10215                 ndr->depth++;
10216                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
10217                 ndr->depth--;
10218                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
10219                 ndr->depth++;
10220                 ndr_print_lsa_String(ndr, "account_name", r->in.account_name);
10221                 ndr->depth--;
10222                 ndr_print_samr_AcctFlags(ndr, "acct_flags", r->in.acct_flags);
10223                 ndr_print_samr_UserAccessMask(ndr, "access_mask", r->in.access_mask);
10224                 ndr->depth--;
10225         }
10226         if (flags & NDR_OUT) {
10227                 ndr_print_struct(ndr, "out", "samr_CreateUser2");
10228                 ndr->depth++;
10229                 ndr_print_ptr(ndr, "user_handle", r->out.user_handle);
10230                 ndr->depth++;
10231                 ndr_print_policy_handle(ndr, "user_handle", r->out.user_handle);
10232                 ndr->depth--;
10233                 ndr_print_ptr(ndr, "access_granted", r->out.access_granted);
10234                 ndr->depth++;
10235                 ndr_print_uint32(ndr, "access_granted", *r->out.access_granted);
10236                 ndr->depth--;
10237                 ndr_print_ptr(ndr, "rid", r->out.rid);
10238                 ndr->depth++;
10239                 ndr_print_uint32(ndr, "rid", *r->out.rid);
10240                 ndr->depth--;
10241                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10242                 ndr->depth--;
10243         }
10244         ndr->depth--;
10245 }
10246
10247 static enum ndr_err_code ndr_push_samr_QueryDisplayInfo3(struct ndr_push *ndr, int flags, const struct samr_QueryDisplayInfo3 *r)
10248 {
10249         if (flags & NDR_IN) {
10250                 if (r->in.domain_handle == NULL) {
10251                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10252                 }
10253                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10254                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
10255                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.start_idx));
10256                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.max_entries));
10257                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buf_size));
10258         }
10259         if (flags & NDR_OUT) {
10260                 if (r->out.total_size == NULL) {
10261                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10262                 }
10263                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_size));
10264                 if (r->out.returned_size == NULL) {
10265                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10266                 }
10267                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.returned_size));
10268                 if (r->out.info == NULL) {
10269                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10270                 }
10271                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
10272                 NDR_CHECK(ndr_push_samr_DispInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10273                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10274         }
10275         return NDR_ERR_SUCCESS;
10276 }
10277
10278 static enum ndr_err_code ndr_pull_samr_QueryDisplayInfo3(struct ndr_pull *ndr, int flags, struct samr_QueryDisplayInfo3 *r)
10279 {
10280         TALLOC_CTX *_mem_save_domain_handle_0;
10281         TALLOC_CTX *_mem_save_total_size_0;
10282         TALLOC_CTX *_mem_save_returned_size_0;
10283         TALLOC_CTX *_mem_save_info_0;
10284         if (flags & NDR_IN) {
10285                 ZERO_STRUCT(r->out);
10286
10287                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10288                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
10289                 }
10290                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10291                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
10292                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
10293                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
10294                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
10295                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.start_idx));
10296                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.max_entries));
10297                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buf_size));
10298                 NDR_PULL_ALLOC(ndr, r->out.total_size);
10299                 ZERO_STRUCTP(r->out.total_size);
10300                 NDR_PULL_ALLOC(ndr, r->out.returned_size);
10301                 ZERO_STRUCTP(r->out.returned_size);
10302                 NDR_PULL_ALLOC(ndr, r->out.info);
10303                 ZERO_STRUCTP(r->out.info);
10304         }
10305         if (flags & NDR_OUT) {
10306                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10307                         NDR_PULL_ALLOC(ndr, r->out.total_size);
10308                 }
10309                 _mem_save_total_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
10310                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_size, LIBNDR_FLAG_REF_ALLOC);
10311                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_size));
10312                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_size_0, LIBNDR_FLAG_REF_ALLOC);
10313                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10314                         NDR_PULL_ALLOC(ndr, r->out.returned_size);
10315                 }
10316                 _mem_save_returned_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
10317                 NDR_PULL_SET_MEM_CTX(ndr, r->out.returned_size, LIBNDR_FLAG_REF_ALLOC);
10318                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.returned_size));
10319                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_returned_size_0, LIBNDR_FLAG_REF_ALLOC);
10320                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10321                         NDR_PULL_ALLOC(ndr, r->out.info);
10322                 }
10323                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10324                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10325                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
10326                 NDR_CHECK(ndr_pull_samr_DispInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10327                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10328                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10329         }
10330         return NDR_ERR_SUCCESS;
10331 }
10332
10333 _PUBLIC_ void ndr_print_samr_QueryDisplayInfo3(struct ndr_print *ndr, const char *name, int flags, const struct samr_QueryDisplayInfo3 *r)
10334 {
10335         ndr_print_struct(ndr, name, "samr_QueryDisplayInfo3");
10336         ndr->depth++;
10337         if (flags & NDR_SET_VALUES) {
10338                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10339         }
10340         if (flags & NDR_IN) {
10341                 ndr_print_struct(ndr, "in", "samr_QueryDisplayInfo3");
10342                 ndr->depth++;
10343                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
10344                 ndr->depth++;
10345                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
10346                 ndr->depth--;
10347                 ndr_print_uint16(ndr, "level", r->in.level);
10348                 ndr_print_uint32(ndr, "start_idx", r->in.start_idx);
10349                 ndr_print_uint32(ndr, "max_entries", r->in.max_entries);
10350                 ndr_print_uint32(ndr, "buf_size", r->in.buf_size);
10351                 ndr->depth--;
10352         }
10353         if (flags & NDR_OUT) {
10354                 ndr_print_struct(ndr, "out", "samr_QueryDisplayInfo3");
10355                 ndr->depth++;
10356                 ndr_print_ptr(ndr, "total_size", r->out.total_size);
10357                 ndr->depth++;
10358                 ndr_print_uint32(ndr, "total_size", *r->out.total_size);
10359                 ndr->depth--;
10360                 ndr_print_ptr(ndr, "returned_size", r->out.returned_size);
10361                 ndr->depth++;
10362                 ndr_print_uint32(ndr, "returned_size", *r->out.returned_size);
10363                 ndr->depth--;
10364                 ndr_print_ptr(ndr, "info", r->out.info);
10365                 ndr->depth++;
10366                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10367                 ndr_print_samr_DispInfo(ndr, "info", r->out.info);
10368                 ndr->depth--;
10369                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10370                 ndr->depth--;
10371         }
10372         ndr->depth--;
10373 }
10374
10375 static enum ndr_err_code ndr_push_samr_AddMultipleMembersToAlias(struct ndr_push *ndr, int flags, const struct samr_AddMultipleMembersToAlias *r)
10376 {
10377         if (flags & NDR_IN) {
10378                 if (r->in.alias_handle == NULL) {
10379                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10380                 }
10381                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
10382                 if (r->in.sids == NULL) {
10383                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10384                 }
10385                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
10386         }
10387         if (flags & NDR_OUT) {
10388                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10389         }
10390         return NDR_ERR_SUCCESS;
10391 }
10392
10393 static enum ndr_err_code ndr_pull_samr_AddMultipleMembersToAlias(struct ndr_pull *ndr, int flags, struct samr_AddMultipleMembersToAlias *r)
10394 {
10395         TALLOC_CTX *_mem_save_alias_handle_0;
10396         TALLOC_CTX *_mem_save_sids_0;
10397         if (flags & NDR_IN) {
10398                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10399                         NDR_PULL_ALLOC(ndr, r->in.alias_handle);
10400                 }
10401                 _mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10402                 NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
10403                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
10404                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
10405                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10406                         NDR_PULL_ALLOC(ndr, r->in.sids);
10407                 }
10408                 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
10409                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sids, LIBNDR_FLAG_REF_ALLOC);
10410                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
10411                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, LIBNDR_FLAG_REF_ALLOC);
10412         }
10413         if (flags & NDR_OUT) {
10414                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10415         }
10416         return NDR_ERR_SUCCESS;
10417 }
10418
10419 _PUBLIC_ void ndr_print_samr_AddMultipleMembersToAlias(struct ndr_print *ndr, const char *name, int flags, const struct samr_AddMultipleMembersToAlias *r)
10420 {
10421         ndr_print_struct(ndr, name, "samr_AddMultipleMembersToAlias");
10422         ndr->depth++;
10423         if (flags & NDR_SET_VALUES) {
10424                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10425         }
10426         if (flags & NDR_IN) {
10427                 ndr_print_struct(ndr, "in", "samr_AddMultipleMembersToAlias");
10428                 ndr->depth++;
10429                 ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
10430                 ndr->depth++;
10431                 ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
10432                 ndr->depth--;
10433                 ndr_print_ptr(ndr, "sids", r->in.sids);
10434                 ndr->depth++;
10435                 ndr_print_lsa_SidArray(ndr, "sids", r->in.sids);
10436                 ndr->depth--;
10437                 ndr->depth--;
10438         }
10439         if (flags & NDR_OUT) {
10440                 ndr_print_struct(ndr, "out", "samr_AddMultipleMembersToAlias");
10441                 ndr->depth++;
10442                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10443                 ndr->depth--;
10444         }
10445         ndr->depth--;
10446 }
10447
10448 static enum ndr_err_code ndr_push_samr_RemoveMultipleMembersFromAlias(struct ndr_push *ndr, int flags, const struct samr_RemoveMultipleMembersFromAlias *r)
10449 {
10450         if (flags & NDR_IN) {
10451                 if (r->in.alias_handle == NULL) {
10452                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10453                 }
10454                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
10455                 if (r->in.sids == NULL) {
10456                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10457                 }
10458                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
10459         }
10460         if (flags & NDR_OUT) {
10461                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10462         }
10463         return NDR_ERR_SUCCESS;
10464 }
10465
10466 static enum ndr_err_code ndr_pull_samr_RemoveMultipleMembersFromAlias(struct ndr_pull *ndr, int flags, struct samr_RemoveMultipleMembersFromAlias *r)
10467 {
10468         TALLOC_CTX *_mem_save_alias_handle_0;
10469         TALLOC_CTX *_mem_save_sids_0;
10470         if (flags & NDR_IN) {
10471                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10472                         NDR_PULL_ALLOC(ndr, r->in.alias_handle);
10473                 }
10474                 _mem_save_alias_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10475                 NDR_PULL_SET_MEM_CTX(ndr, r->in.alias_handle, LIBNDR_FLAG_REF_ALLOC);
10476                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.alias_handle));
10477                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_handle_0, LIBNDR_FLAG_REF_ALLOC);
10478                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10479                         NDR_PULL_ALLOC(ndr, r->in.sids);
10480                 }
10481                 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
10482                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sids, LIBNDR_FLAG_REF_ALLOC);
10483                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.sids));
10484                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, LIBNDR_FLAG_REF_ALLOC);
10485         }
10486         if (flags & NDR_OUT) {
10487                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10488         }
10489         return NDR_ERR_SUCCESS;
10490 }
10491
10492 _PUBLIC_ void ndr_print_samr_RemoveMultipleMembersFromAlias(struct ndr_print *ndr, const char *name, int flags, const struct samr_RemoveMultipleMembersFromAlias *r)
10493 {
10494         ndr_print_struct(ndr, name, "samr_RemoveMultipleMembersFromAlias");
10495         ndr->depth++;
10496         if (flags & NDR_SET_VALUES) {
10497                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10498         }
10499         if (flags & NDR_IN) {
10500                 ndr_print_struct(ndr, "in", "samr_RemoveMultipleMembersFromAlias");
10501                 ndr->depth++;
10502                 ndr_print_ptr(ndr, "alias_handle", r->in.alias_handle);
10503                 ndr->depth++;
10504                 ndr_print_policy_handle(ndr, "alias_handle", r->in.alias_handle);
10505                 ndr->depth--;
10506                 ndr_print_ptr(ndr, "sids", r->in.sids);
10507                 ndr->depth++;
10508                 ndr_print_lsa_SidArray(ndr, "sids", r->in.sids);
10509                 ndr->depth--;
10510                 ndr->depth--;
10511         }
10512         if (flags & NDR_OUT) {
10513                 ndr_print_struct(ndr, "out", "samr_RemoveMultipleMembersFromAlias");
10514                 ndr->depth++;
10515                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10516                 ndr->depth--;
10517         }
10518         ndr->depth--;
10519 }
10520
10521 static enum ndr_err_code ndr_push_samr_OemChangePasswordUser2(struct ndr_push *ndr, int flags, const struct samr_OemChangePasswordUser2 *r)
10522 {
10523         if (flags & NDR_IN) {
10524                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
10525                 if (r->in.server) {
10526                         NDR_CHECK(ndr_push_lsa_AsciiString(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.server));
10527                 }
10528                 if (r->in.account == NULL) {
10529                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10530                 }
10531                 NDR_CHECK(ndr_push_lsa_AsciiString(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account));
10532                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.password));
10533                 if (r->in.password) {
10534                         NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, r->in.password));
10535                 }
10536                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hash));
10537                 if (r->in.hash) {
10538                         NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.hash));
10539                 }
10540         }
10541         if (flags & NDR_OUT) {
10542                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10543         }
10544         return NDR_ERR_SUCCESS;
10545 }
10546
10547 static enum ndr_err_code ndr_pull_samr_OemChangePasswordUser2(struct ndr_pull *ndr, int flags, struct samr_OemChangePasswordUser2 *r)
10548 {
10549         uint32_t _ptr_server;
10550         uint32_t _ptr_password;
10551         uint32_t _ptr_hash;
10552         TALLOC_CTX *_mem_save_server_0;
10553         TALLOC_CTX *_mem_save_account_0;
10554         TALLOC_CTX *_mem_save_password_0;
10555         TALLOC_CTX *_mem_save_hash_0;
10556         if (flags & NDR_IN) {
10557                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
10558                 if (_ptr_server) {
10559                         NDR_PULL_ALLOC(ndr, r->in.server);
10560                 } else {
10561                         r->in.server = NULL;
10562                 }
10563                 if (r->in.server) {
10564                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10565                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
10566                         NDR_CHECK(ndr_pull_lsa_AsciiString(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.server));
10567                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
10568                 }
10569                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10570                         NDR_PULL_ALLOC(ndr, r->in.account);
10571                 }
10572                 _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
10573                 NDR_PULL_SET_MEM_CTX(ndr, r->in.account, LIBNDR_FLAG_REF_ALLOC);
10574                 NDR_CHECK(ndr_pull_lsa_AsciiString(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account));
10575                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, LIBNDR_FLAG_REF_ALLOC);
10576                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
10577                 if (_ptr_password) {
10578                         NDR_PULL_ALLOC(ndr, r->in.password);
10579                 } else {
10580                         r->in.password = NULL;
10581                 }
10582                 if (r->in.password) {
10583                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
10584                         NDR_PULL_SET_MEM_CTX(ndr, r->in.password, 0);
10585                         NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, r->in.password));
10586                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
10587                 }
10588                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hash));
10589                 if (_ptr_hash) {
10590                         NDR_PULL_ALLOC(ndr, r->in.hash);
10591                 } else {
10592                         r->in.hash = NULL;
10593                 }
10594                 if (r->in.hash) {
10595                         _mem_save_hash_0 = NDR_PULL_GET_MEM_CTX(ndr);
10596                         NDR_PULL_SET_MEM_CTX(ndr, r->in.hash, 0);
10597                         NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.hash));
10598                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hash_0, 0);
10599                 }
10600         }
10601         if (flags & NDR_OUT) {
10602                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10603         }
10604         return NDR_ERR_SUCCESS;
10605 }
10606
10607 _PUBLIC_ void ndr_print_samr_OemChangePasswordUser2(struct ndr_print *ndr, const char *name, int flags, const struct samr_OemChangePasswordUser2 *r)
10608 {
10609         ndr_print_struct(ndr, name, "samr_OemChangePasswordUser2");
10610         ndr->depth++;
10611         if (flags & NDR_SET_VALUES) {
10612                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10613         }
10614         if (flags & NDR_IN) {
10615                 ndr_print_struct(ndr, "in", "samr_OemChangePasswordUser2");
10616                 ndr->depth++;
10617                 ndr_print_ptr(ndr, "server", r->in.server);
10618                 ndr->depth++;
10619                 if (r->in.server) {
10620                         ndr_print_lsa_AsciiString(ndr, "server", r->in.server);
10621                 }
10622                 ndr->depth--;
10623                 ndr_print_ptr(ndr, "account", r->in.account);
10624                 ndr->depth++;
10625                 ndr_print_lsa_AsciiString(ndr, "account", r->in.account);
10626                 ndr->depth--;
10627                 ndr_print_ptr(ndr, "password", r->in.password);
10628                 ndr->depth++;
10629                 if (r->in.password) {
10630                         ndr_print_samr_CryptPassword(ndr, "password", r->in.password);
10631                 }
10632                 ndr->depth--;
10633                 ndr_print_ptr(ndr, "hash", r->in.hash);
10634                 ndr->depth++;
10635                 if (r->in.hash) {
10636                         ndr_print_samr_Password(ndr, "hash", r->in.hash);
10637                 }
10638                 ndr->depth--;
10639                 ndr->depth--;
10640         }
10641         if (flags & NDR_OUT) {
10642                 ndr_print_struct(ndr, "out", "samr_OemChangePasswordUser2");
10643                 ndr->depth++;
10644                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10645                 ndr->depth--;
10646         }
10647         ndr->depth--;
10648 }
10649
10650 static enum ndr_err_code ndr_push_samr_ChangePasswordUser2(struct ndr_push *ndr, int flags, const struct samr_ChangePasswordUser2 *r)
10651 {
10652         if (flags & NDR_IN) {
10653                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
10654                 if (r->in.server) {
10655                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.server));
10656                 }
10657                 if (r->in.account == NULL) {
10658                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10659                 }
10660                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account));
10661                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.nt_password));
10662                 if (r->in.nt_password) {
10663                         NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, r->in.nt_password));
10664                 }
10665                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.nt_verifier));
10666                 if (r->in.nt_verifier) {
10667                         NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.nt_verifier));
10668                 }
10669                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.lm_change));
10670                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.lm_password));
10671                 if (r->in.lm_password) {
10672                         NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, r->in.lm_password));
10673                 }
10674                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.lm_verifier));
10675                 if (r->in.lm_verifier) {
10676                         NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.lm_verifier));
10677                 }
10678         }
10679         if (flags & NDR_OUT) {
10680                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10681         }
10682         return NDR_ERR_SUCCESS;
10683 }
10684
10685 static enum ndr_err_code ndr_pull_samr_ChangePasswordUser2(struct ndr_pull *ndr, int flags, struct samr_ChangePasswordUser2 *r)
10686 {
10687         uint32_t _ptr_server;
10688         uint32_t _ptr_nt_password;
10689         uint32_t _ptr_nt_verifier;
10690         uint32_t _ptr_lm_password;
10691         uint32_t _ptr_lm_verifier;
10692         TALLOC_CTX *_mem_save_server_0;
10693         TALLOC_CTX *_mem_save_account_0;
10694         TALLOC_CTX *_mem_save_nt_password_0;
10695         TALLOC_CTX *_mem_save_nt_verifier_0;
10696         TALLOC_CTX *_mem_save_lm_password_0;
10697         TALLOC_CTX *_mem_save_lm_verifier_0;
10698         if (flags & NDR_IN) {
10699                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
10700                 if (_ptr_server) {
10701                         NDR_PULL_ALLOC(ndr, r->in.server);
10702                 } else {
10703                         r->in.server = NULL;
10704                 }
10705                 if (r->in.server) {
10706                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10707                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
10708                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.server));
10709                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
10710                 }
10711                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10712                         NDR_PULL_ALLOC(ndr, r->in.account);
10713                 }
10714                 _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
10715                 NDR_PULL_SET_MEM_CTX(ndr, r->in.account, LIBNDR_FLAG_REF_ALLOC);
10716                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account));
10717                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, LIBNDR_FLAG_REF_ALLOC);
10718                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nt_password));
10719                 if (_ptr_nt_password) {
10720                         NDR_PULL_ALLOC(ndr, r->in.nt_password);
10721                 } else {
10722                         r->in.nt_password = NULL;
10723                 }
10724                 if (r->in.nt_password) {
10725                         _mem_save_nt_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
10726                         NDR_PULL_SET_MEM_CTX(ndr, r->in.nt_password, 0);
10727                         NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, r->in.nt_password));
10728                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nt_password_0, 0);
10729                 }
10730                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nt_verifier));
10731                 if (_ptr_nt_verifier) {
10732                         NDR_PULL_ALLOC(ndr, r->in.nt_verifier);
10733                 } else {
10734                         r->in.nt_verifier = NULL;
10735                 }
10736                 if (r->in.nt_verifier) {
10737                         _mem_save_nt_verifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
10738                         NDR_PULL_SET_MEM_CTX(ndr, r->in.nt_verifier, 0);
10739                         NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.nt_verifier));
10740                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nt_verifier_0, 0);
10741                 }
10742                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.lm_change));
10743                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lm_password));
10744                 if (_ptr_lm_password) {
10745                         NDR_PULL_ALLOC(ndr, r->in.lm_password);
10746                 } else {
10747                         r->in.lm_password = NULL;
10748                 }
10749                 if (r->in.lm_password) {
10750                         _mem_save_lm_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
10751                         NDR_PULL_SET_MEM_CTX(ndr, r->in.lm_password, 0);
10752                         NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, r->in.lm_password));
10753                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lm_password_0, 0);
10754                 }
10755                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lm_verifier));
10756                 if (_ptr_lm_verifier) {
10757                         NDR_PULL_ALLOC(ndr, r->in.lm_verifier);
10758                 } else {
10759                         r->in.lm_verifier = NULL;
10760                 }
10761                 if (r->in.lm_verifier) {
10762                         _mem_save_lm_verifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
10763                         NDR_PULL_SET_MEM_CTX(ndr, r->in.lm_verifier, 0);
10764                         NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.lm_verifier));
10765                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lm_verifier_0, 0);
10766                 }
10767         }
10768         if (flags & NDR_OUT) {
10769                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10770         }
10771         return NDR_ERR_SUCCESS;
10772 }
10773
10774 _PUBLIC_ void ndr_print_samr_ChangePasswordUser2(struct ndr_print *ndr, const char *name, int flags, const struct samr_ChangePasswordUser2 *r)
10775 {
10776         ndr_print_struct(ndr, name, "samr_ChangePasswordUser2");
10777         ndr->depth++;
10778         if (flags & NDR_SET_VALUES) {
10779                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10780         }
10781         if (flags & NDR_IN) {
10782                 ndr_print_struct(ndr, "in", "samr_ChangePasswordUser2");
10783                 ndr->depth++;
10784                 ndr_print_ptr(ndr, "server", r->in.server);
10785                 ndr->depth++;
10786                 if (r->in.server) {
10787                         ndr_print_lsa_String(ndr, "server", r->in.server);
10788                 }
10789                 ndr->depth--;
10790                 ndr_print_ptr(ndr, "account", r->in.account);
10791                 ndr->depth++;
10792                 ndr_print_lsa_String(ndr, "account", r->in.account);
10793                 ndr->depth--;
10794                 ndr_print_ptr(ndr, "nt_password", r->in.nt_password);
10795                 ndr->depth++;
10796                 if (r->in.nt_password) {
10797                         ndr_print_samr_CryptPassword(ndr, "nt_password", r->in.nt_password);
10798                 }
10799                 ndr->depth--;
10800                 ndr_print_ptr(ndr, "nt_verifier", r->in.nt_verifier);
10801                 ndr->depth++;
10802                 if (r->in.nt_verifier) {
10803                         ndr_print_samr_Password(ndr, "nt_verifier", r->in.nt_verifier);
10804                 }
10805                 ndr->depth--;
10806                 ndr_print_uint8(ndr, "lm_change", r->in.lm_change);
10807                 ndr_print_ptr(ndr, "lm_password", r->in.lm_password);
10808                 ndr->depth++;
10809                 if (r->in.lm_password) {
10810                         ndr_print_samr_CryptPassword(ndr, "lm_password", r->in.lm_password);
10811                 }
10812                 ndr->depth--;
10813                 ndr_print_ptr(ndr, "lm_verifier", r->in.lm_verifier);
10814                 ndr->depth++;
10815                 if (r->in.lm_verifier) {
10816                         ndr_print_samr_Password(ndr, "lm_verifier", r->in.lm_verifier);
10817                 }
10818                 ndr->depth--;
10819                 ndr->depth--;
10820         }
10821         if (flags & NDR_OUT) {
10822                 ndr_print_struct(ndr, "out", "samr_ChangePasswordUser2");
10823                 ndr->depth++;
10824                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10825                 ndr->depth--;
10826         }
10827         ndr->depth--;
10828 }
10829
10830 static enum ndr_err_code ndr_push_samr_GetDomPwInfo(struct ndr_push *ndr, int flags, const struct samr_GetDomPwInfo *r)
10831 {
10832         if (flags & NDR_IN) {
10833                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
10834                 if (r->in.domain_name) {
10835                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_name));
10836                 }
10837         }
10838         if (flags & NDR_OUT) {
10839                 if (r->out.info == NULL) {
10840                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10841                 }
10842                 NDR_CHECK(ndr_push_samr_PwInfo(ndr, NDR_SCALARS, r->out.info));
10843                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10844         }
10845         return NDR_ERR_SUCCESS;
10846 }
10847
10848 static enum ndr_err_code ndr_pull_samr_GetDomPwInfo(struct ndr_pull *ndr, int flags, struct samr_GetDomPwInfo *r)
10849 {
10850         uint32_t _ptr_domain_name;
10851         TALLOC_CTX *_mem_save_domain_name_0;
10852         TALLOC_CTX *_mem_save_info_0;
10853         if (flags & NDR_IN) {
10854                 ZERO_STRUCT(r->out);
10855
10856                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
10857                 if (_ptr_domain_name) {
10858                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
10859                 } else {
10860                         r->in.domain_name = NULL;
10861                 }
10862                 if (r->in.domain_name) {
10863                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10864                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
10865                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_name));
10866                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
10867                 }
10868                 NDR_PULL_ALLOC(ndr, r->out.info);
10869                 ZERO_STRUCTP(r->out.info);
10870         }
10871         if (flags & NDR_OUT) {
10872                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10873                         NDR_PULL_ALLOC(ndr, r->out.info);
10874                 }
10875                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10876                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10877                 NDR_CHECK(ndr_pull_samr_PwInfo(ndr, NDR_SCALARS, r->out.info));
10878                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10879                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10880         }
10881         return NDR_ERR_SUCCESS;
10882 }
10883
10884 _PUBLIC_ void ndr_print_samr_GetDomPwInfo(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetDomPwInfo *r)
10885 {
10886         ndr_print_struct(ndr, name, "samr_GetDomPwInfo");
10887         ndr->depth++;
10888         if (flags & NDR_SET_VALUES) {
10889                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10890         }
10891         if (flags & NDR_IN) {
10892                 ndr_print_struct(ndr, "in", "samr_GetDomPwInfo");
10893                 ndr->depth++;
10894                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
10895                 ndr->depth++;
10896                 if (r->in.domain_name) {
10897                         ndr_print_lsa_String(ndr, "domain_name", r->in.domain_name);
10898                 }
10899                 ndr->depth--;
10900                 ndr->depth--;
10901         }
10902         if (flags & NDR_OUT) {
10903                 ndr_print_struct(ndr, "out", "samr_GetDomPwInfo");
10904                 ndr->depth++;
10905                 ndr_print_ptr(ndr, "info", r->out.info);
10906                 ndr->depth++;
10907                 ndr_print_samr_PwInfo(ndr, "info", r->out.info);
10908                 ndr->depth--;
10909                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10910                 ndr->depth--;
10911         }
10912         ndr->depth--;
10913 }
10914
10915 static enum ndr_err_code ndr_push_samr_Connect2(struct ndr_push *ndr, int flags, const struct samr_Connect2 *r)
10916 {
10917         if (flags & NDR_IN) {
10918                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
10919                 if (r->in.system_name) {
10920                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
10921                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10922                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
10923                         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));
10924                 }
10925                 NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
10926         }
10927         if (flags & NDR_OUT) {
10928                 if (r->out.connect_handle == NULL) {
10929                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10930                 }
10931                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
10932                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10933         }
10934         return NDR_ERR_SUCCESS;
10935 }
10936
10937 static enum ndr_err_code ndr_pull_samr_Connect2(struct ndr_pull *ndr, int flags, struct samr_Connect2 *r)
10938 {
10939         uint32_t _ptr_system_name;
10940         TALLOC_CTX *_mem_save_system_name_0;
10941         TALLOC_CTX *_mem_save_connect_handle_0;
10942         if (flags & NDR_IN) {
10943                 ZERO_STRUCT(r->out);
10944
10945                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
10946                 if (_ptr_system_name) {
10947                         NDR_PULL_ALLOC(ndr, r->in.system_name);
10948                 } else {
10949                         r->in.system_name = NULL;
10950                 }
10951                 if (r->in.system_name) {
10952                         _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10953                         NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
10954                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.system_name));
10955                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.system_name));
10956                         if (ndr_get_array_length(ndr, &r->in.system_name) > ndr_get_array_size(ndr, &r->in.system_name)) {
10957                                 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));
10958                         }
10959                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t)));
10960                         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));
10961                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
10962                 }
10963                 NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
10964                 NDR_PULL_ALLOC(ndr, r->out.connect_handle);
10965                 ZERO_STRUCTP(r->out.connect_handle);
10966         }
10967         if (flags & NDR_OUT) {
10968                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10969                         NDR_PULL_ALLOC(ndr, r->out.connect_handle);
10970                 }
10971                 _mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10972                 NDR_PULL_SET_MEM_CTX(ndr, r->out.connect_handle, LIBNDR_FLAG_REF_ALLOC);
10973                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
10974                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
10975                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10976         }
10977         return NDR_ERR_SUCCESS;
10978 }
10979
10980 _PUBLIC_ void ndr_print_samr_Connect2(struct ndr_print *ndr, const char *name, int flags, const struct samr_Connect2 *r)
10981 {
10982         ndr_print_struct(ndr, name, "samr_Connect2");
10983         ndr->depth++;
10984         if (flags & NDR_SET_VALUES) {
10985                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10986         }
10987         if (flags & NDR_IN) {
10988                 ndr_print_struct(ndr, "in", "samr_Connect2");
10989                 ndr->depth++;
10990                 ndr_print_ptr(ndr, "system_name", r->in.system_name);
10991                 ndr->depth++;
10992                 if (r->in.system_name) {
10993                         ndr_print_string(ndr, "system_name", r->in.system_name);
10994                 }
10995                 ndr->depth--;
10996                 ndr_print_samr_ConnectAccessMask(ndr, "access_mask", r->in.access_mask);
10997                 ndr->depth--;
10998         }
10999         if (flags & NDR_OUT) {
11000                 ndr_print_struct(ndr, "out", "samr_Connect2");
11001                 ndr->depth++;
11002                 ndr_print_ptr(ndr, "connect_handle", r->out.connect_handle);
11003                 ndr->depth++;
11004                 ndr_print_policy_handle(ndr, "connect_handle", r->out.connect_handle);
11005                 ndr->depth--;
11006                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11007                 ndr->depth--;
11008         }
11009         ndr->depth--;
11010 }
11011
11012 _PUBLIC_ enum ndr_err_code ndr_push_samr_SetUserInfo2(struct ndr_push *ndr, int flags, const struct samr_SetUserInfo2 *r)
11013 {
11014         if (flags & NDR_IN) {
11015                 if (r->in.user_handle == NULL) {
11016                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11017                 }
11018                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
11019                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.level));
11020                 if (r->in.info == NULL) {
11021                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11022                 }
11023                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level));
11024                 NDR_CHECK(ndr_push_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
11025         }
11026         if (flags & NDR_OUT) {
11027                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11028         }
11029         return NDR_ERR_SUCCESS;
11030 }
11031
11032 _PUBLIC_ enum ndr_err_code ndr_pull_samr_SetUserInfo2(struct ndr_pull *ndr, int flags, struct samr_SetUserInfo2 *r)
11033 {
11034         TALLOC_CTX *_mem_save_user_handle_0;
11035         TALLOC_CTX *_mem_save_info_0;
11036         if (flags & NDR_IN) {
11037                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11038                         NDR_PULL_ALLOC(ndr, r->in.user_handle);
11039                 }
11040                 _mem_save_user_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11041                 NDR_PULL_SET_MEM_CTX(ndr, r->in.user_handle, LIBNDR_FLAG_REF_ALLOC);
11042                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.user_handle));
11043                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_handle_0, LIBNDR_FLAG_REF_ALLOC);
11044                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.level));
11045                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11046                         NDR_PULL_ALLOC(ndr, r->in.info);
11047                 }
11048                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11049                 NDR_PULL_SET_MEM_CTX(ndr, r->in.info, LIBNDR_FLAG_REF_ALLOC);
11050                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level));
11051                 NDR_CHECK(ndr_pull_samr_UserInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
11052                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11053         }
11054         if (flags & NDR_OUT) {
11055                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11056         }
11057         return NDR_ERR_SUCCESS;
11058 }
11059
11060 _PUBLIC_ void ndr_print_samr_SetUserInfo2(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetUserInfo2 *r)
11061 {
11062         ndr_print_struct(ndr, name, "samr_SetUserInfo2");
11063         ndr->depth++;
11064         if (flags & NDR_SET_VALUES) {
11065                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11066         }
11067         if (flags & NDR_IN) {
11068                 ndr_print_struct(ndr, "in", "samr_SetUserInfo2");
11069                 ndr->depth++;
11070                 ndr_print_ptr(ndr, "user_handle", r->in.user_handle);
11071                 ndr->depth++;
11072                 ndr_print_policy_handle(ndr, "user_handle", r->in.user_handle);
11073                 ndr->depth--;
11074                 ndr_print_uint16(ndr, "level", r->in.level);
11075                 ndr_print_ptr(ndr, "info", r->in.info);
11076                 ndr->depth++;
11077                 ndr_print_set_switch_value(ndr, r->in.info, r->in.level);
11078                 ndr_print_samr_UserInfo(ndr, "info", r->in.info);
11079                 ndr->depth--;
11080                 ndr->depth--;
11081         }
11082         if (flags & NDR_OUT) {
11083                 ndr_print_struct(ndr, "out", "samr_SetUserInfo2");
11084                 ndr->depth++;
11085                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11086                 ndr->depth--;
11087         }
11088         ndr->depth--;
11089 }
11090
11091 static enum ndr_err_code ndr_push_samr_SetBootKeyInformation(struct ndr_push *ndr, int flags, const struct samr_SetBootKeyInformation *r)
11092 {
11093         if (flags & NDR_IN) {
11094                 if (r->in.connect_handle == NULL) {
11095                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11096                 }
11097                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
11098                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown1));
11099                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
11100                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown3));
11101         }
11102         if (flags & NDR_OUT) {
11103                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11104         }
11105         return NDR_ERR_SUCCESS;
11106 }
11107
11108 static enum ndr_err_code ndr_pull_samr_SetBootKeyInformation(struct ndr_pull *ndr, int flags, struct samr_SetBootKeyInformation *r)
11109 {
11110         TALLOC_CTX *_mem_save_connect_handle_0;
11111         if (flags & NDR_IN) {
11112                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11113                         NDR_PULL_ALLOC(ndr, r->in.connect_handle);
11114                 }
11115                 _mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11116                 NDR_PULL_SET_MEM_CTX(ndr, r->in.connect_handle, LIBNDR_FLAG_REF_ALLOC);
11117                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.connect_handle));
11118                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
11119                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown1));
11120                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
11121                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown3));
11122         }
11123         if (flags & NDR_OUT) {
11124                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11125         }
11126         return NDR_ERR_SUCCESS;
11127 }
11128
11129 _PUBLIC_ void ndr_print_samr_SetBootKeyInformation(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetBootKeyInformation *r)
11130 {
11131         ndr_print_struct(ndr, name, "samr_SetBootKeyInformation");
11132         ndr->depth++;
11133         if (flags & NDR_SET_VALUES) {
11134                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11135         }
11136         if (flags & NDR_IN) {
11137                 ndr_print_struct(ndr, "in", "samr_SetBootKeyInformation");
11138                 ndr->depth++;
11139                 ndr_print_ptr(ndr, "connect_handle", r->in.connect_handle);
11140                 ndr->depth++;
11141                 ndr_print_policy_handle(ndr, "connect_handle", r->in.connect_handle);
11142                 ndr->depth--;
11143                 ndr_print_uint32(ndr, "unknown1", r->in.unknown1);
11144                 ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
11145                 ndr_print_uint32(ndr, "unknown3", r->in.unknown3);
11146                 ndr->depth--;
11147         }
11148         if (flags & NDR_OUT) {
11149                 ndr_print_struct(ndr, "out", "samr_SetBootKeyInformation");
11150                 ndr->depth++;
11151                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11152                 ndr->depth--;
11153         }
11154         ndr->depth--;
11155 }
11156
11157 static enum ndr_err_code ndr_push_samr_GetBootKeyInformation(struct ndr_push *ndr, int flags, const struct samr_GetBootKeyInformation *r)
11158 {
11159         if (flags & NDR_IN) {
11160                 if (r->in.domain_handle == NULL) {
11161                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11162                 }
11163                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
11164         }
11165         if (flags & NDR_OUT) {
11166                 if (r->out.unknown == NULL) {
11167                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11168                 }
11169                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.unknown));
11170                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11171         }
11172         return NDR_ERR_SUCCESS;
11173 }
11174
11175 static enum ndr_err_code ndr_pull_samr_GetBootKeyInformation(struct ndr_pull *ndr, int flags, struct samr_GetBootKeyInformation *r)
11176 {
11177         TALLOC_CTX *_mem_save_domain_handle_0;
11178         TALLOC_CTX *_mem_save_unknown_0;
11179         if (flags & NDR_IN) {
11180                 ZERO_STRUCT(r->out);
11181
11182                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11183                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
11184                 }
11185                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11186                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
11187                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
11188                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
11189                 NDR_PULL_ALLOC(ndr, r->out.unknown);
11190                 ZERO_STRUCTP(r->out.unknown);
11191         }
11192         if (flags & NDR_OUT) {
11193                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11194                         NDR_PULL_ALLOC(ndr, r->out.unknown);
11195                 }
11196                 _mem_save_unknown_0 = NDR_PULL_GET_MEM_CTX(ndr);
11197                 NDR_PULL_SET_MEM_CTX(ndr, r->out.unknown, LIBNDR_FLAG_REF_ALLOC);
11198                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.unknown));
11199                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown_0, LIBNDR_FLAG_REF_ALLOC);
11200                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11201         }
11202         return NDR_ERR_SUCCESS;
11203 }
11204
11205 _PUBLIC_ void ndr_print_samr_GetBootKeyInformation(struct ndr_print *ndr, const char *name, int flags, const struct samr_GetBootKeyInformation *r)
11206 {
11207         ndr_print_struct(ndr, name, "samr_GetBootKeyInformation");
11208         ndr->depth++;
11209         if (flags & NDR_SET_VALUES) {
11210                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11211         }
11212         if (flags & NDR_IN) {
11213                 ndr_print_struct(ndr, "in", "samr_GetBootKeyInformation");
11214                 ndr->depth++;
11215                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
11216                 ndr->depth++;
11217                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
11218                 ndr->depth--;
11219                 ndr->depth--;
11220         }
11221         if (flags & NDR_OUT) {
11222                 ndr_print_struct(ndr, "out", "samr_GetBootKeyInformation");
11223                 ndr->depth++;
11224                 ndr_print_ptr(ndr, "unknown", r->out.unknown);
11225                 ndr->depth++;
11226                 ndr_print_uint32(ndr, "unknown", *r->out.unknown);
11227                 ndr->depth--;
11228                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11229                 ndr->depth--;
11230         }
11231         ndr->depth--;
11232 }
11233
11234 static enum ndr_err_code ndr_push_samr_Connect3(struct ndr_push *ndr, int flags, const struct samr_Connect3 *r)
11235 {
11236         if (flags & NDR_IN) {
11237                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
11238                 if (r->in.system_name) {
11239                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
11240                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11241                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
11242                         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));
11243                 }
11244                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
11245                 NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
11246         }
11247         if (flags & NDR_OUT) {
11248                 if (r->out.connect_handle == NULL) {
11249                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11250                 }
11251                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
11252                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11253         }
11254         return NDR_ERR_SUCCESS;
11255 }
11256
11257 static enum ndr_err_code ndr_pull_samr_Connect3(struct ndr_pull *ndr, int flags, struct samr_Connect3 *r)
11258 {
11259         uint32_t _ptr_system_name;
11260         TALLOC_CTX *_mem_save_system_name_0;
11261         TALLOC_CTX *_mem_save_connect_handle_0;
11262         if (flags & NDR_IN) {
11263                 ZERO_STRUCT(r->out);
11264
11265                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
11266                 if (_ptr_system_name) {
11267                         NDR_PULL_ALLOC(ndr, r->in.system_name);
11268                 } else {
11269                         r->in.system_name = NULL;
11270                 }
11271                 if (r->in.system_name) {
11272                         _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11273                         NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
11274                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.system_name));
11275                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.system_name));
11276                         if (ndr_get_array_length(ndr, &r->in.system_name) > ndr_get_array_size(ndr, &r->in.system_name)) {
11277                                 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));
11278                         }
11279                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t)));
11280                         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));
11281                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
11282                 }
11283                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
11284                 NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
11285                 NDR_PULL_ALLOC(ndr, r->out.connect_handle);
11286                 ZERO_STRUCTP(r->out.connect_handle);
11287         }
11288         if (flags & NDR_OUT) {
11289                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11290                         NDR_PULL_ALLOC(ndr, r->out.connect_handle);
11291                 }
11292                 _mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11293                 NDR_PULL_SET_MEM_CTX(ndr, r->out.connect_handle, LIBNDR_FLAG_REF_ALLOC);
11294                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
11295                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
11296                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11297         }
11298         return NDR_ERR_SUCCESS;
11299 }
11300
11301 _PUBLIC_ void ndr_print_samr_Connect3(struct ndr_print *ndr, const char *name, int flags, const struct samr_Connect3 *r)
11302 {
11303         ndr_print_struct(ndr, name, "samr_Connect3");
11304         ndr->depth++;
11305         if (flags & NDR_SET_VALUES) {
11306                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11307         }
11308         if (flags & NDR_IN) {
11309                 ndr_print_struct(ndr, "in", "samr_Connect3");
11310                 ndr->depth++;
11311                 ndr_print_ptr(ndr, "system_name", r->in.system_name);
11312                 ndr->depth++;
11313                 if (r->in.system_name) {
11314                         ndr_print_string(ndr, "system_name", r->in.system_name);
11315                 }
11316                 ndr->depth--;
11317                 ndr_print_uint32(ndr, "unknown", r->in.unknown);
11318                 ndr_print_samr_ConnectAccessMask(ndr, "access_mask", r->in.access_mask);
11319                 ndr->depth--;
11320         }
11321         if (flags & NDR_OUT) {
11322                 ndr_print_struct(ndr, "out", "samr_Connect3");
11323                 ndr->depth++;
11324                 ndr_print_ptr(ndr, "connect_handle", r->out.connect_handle);
11325                 ndr->depth++;
11326                 ndr_print_policy_handle(ndr, "connect_handle", r->out.connect_handle);
11327                 ndr->depth--;
11328                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11329                 ndr->depth--;
11330         }
11331         ndr->depth--;
11332 }
11333
11334 static enum ndr_err_code ndr_push_samr_Connect4(struct ndr_push *ndr, int flags, const struct samr_Connect4 *r)
11335 {
11336         if (flags & NDR_IN) {
11337                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
11338                 if (r->in.system_name) {
11339                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
11340                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11341                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
11342                         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));
11343                 }
11344                 NDR_CHECK(ndr_push_samr_ConnectVersion(ndr, NDR_SCALARS, r->in.client_version));
11345                 NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
11346         }
11347         if (flags & NDR_OUT) {
11348                 if (r->out.connect_handle == NULL) {
11349                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11350                 }
11351                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
11352                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11353         }
11354         return NDR_ERR_SUCCESS;
11355 }
11356
11357 static enum ndr_err_code ndr_pull_samr_Connect4(struct ndr_pull *ndr, int flags, struct samr_Connect4 *r)
11358 {
11359         uint32_t _ptr_system_name;
11360         TALLOC_CTX *_mem_save_system_name_0;
11361         TALLOC_CTX *_mem_save_connect_handle_0;
11362         if (flags & NDR_IN) {
11363                 ZERO_STRUCT(r->out);
11364
11365                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
11366                 if (_ptr_system_name) {
11367                         NDR_PULL_ALLOC(ndr, r->in.system_name);
11368                 } else {
11369                         r->in.system_name = NULL;
11370                 }
11371                 if (r->in.system_name) {
11372                         _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11373                         NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
11374                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.system_name));
11375                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.system_name));
11376                         if (ndr_get_array_length(ndr, &r->in.system_name) > ndr_get_array_size(ndr, &r->in.system_name)) {
11377                                 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));
11378                         }
11379                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t)));
11380                         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));
11381                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
11382                 }
11383                 NDR_CHECK(ndr_pull_samr_ConnectVersion(ndr, NDR_SCALARS, &r->in.client_version));
11384                 NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
11385                 NDR_PULL_ALLOC(ndr, r->out.connect_handle);
11386                 ZERO_STRUCTP(r->out.connect_handle);
11387         }
11388         if (flags & NDR_OUT) {
11389                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11390                         NDR_PULL_ALLOC(ndr, r->out.connect_handle);
11391                 }
11392                 _mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11393                 NDR_PULL_SET_MEM_CTX(ndr, r->out.connect_handle, LIBNDR_FLAG_REF_ALLOC);
11394                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
11395                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
11396                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11397         }
11398         return NDR_ERR_SUCCESS;
11399 }
11400
11401 _PUBLIC_ void ndr_print_samr_Connect4(struct ndr_print *ndr, const char *name, int flags, const struct samr_Connect4 *r)
11402 {
11403         ndr_print_struct(ndr, name, "samr_Connect4");
11404         ndr->depth++;
11405         if (flags & NDR_SET_VALUES) {
11406                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11407         }
11408         if (flags & NDR_IN) {
11409                 ndr_print_struct(ndr, "in", "samr_Connect4");
11410                 ndr->depth++;
11411                 ndr_print_ptr(ndr, "system_name", r->in.system_name);
11412                 ndr->depth++;
11413                 if (r->in.system_name) {
11414                         ndr_print_string(ndr, "system_name", r->in.system_name);
11415                 }
11416                 ndr->depth--;
11417                 ndr_print_samr_ConnectVersion(ndr, "client_version", r->in.client_version);
11418                 ndr_print_samr_ConnectAccessMask(ndr, "access_mask", r->in.access_mask);
11419                 ndr->depth--;
11420         }
11421         if (flags & NDR_OUT) {
11422                 ndr_print_struct(ndr, "out", "samr_Connect4");
11423                 ndr->depth++;
11424                 ndr_print_ptr(ndr, "connect_handle", r->out.connect_handle);
11425                 ndr->depth++;
11426                 ndr_print_policy_handle(ndr, "connect_handle", r->out.connect_handle);
11427                 ndr->depth--;
11428                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11429                 ndr->depth--;
11430         }
11431         ndr->depth--;
11432 }
11433
11434 static enum ndr_err_code ndr_push_samr_ChangePasswordUser3(struct ndr_push *ndr, int flags, const struct samr_ChangePasswordUser3 *r)
11435 {
11436         if (flags & NDR_IN) {
11437                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
11438                 if (r->in.server) {
11439                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.server));
11440                 }
11441                 if (r->in.account == NULL) {
11442                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11443                 }
11444                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account));
11445                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.nt_password));
11446                 if (r->in.nt_password) {
11447                         NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, r->in.nt_password));
11448                 }
11449                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.nt_verifier));
11450                 if (r->in.nt_verifier) {
11451                         NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.nt_verifier));
11452                 }
11453                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->in.lm_change));
11454                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.lm_password));
11455                 if (r->in.lm_password) {
11456                         NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, r->in.lm_password));
11457                 }
11458                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.lm_verifier));
11459                 if (r->in.lm_verifier) {
11460                         NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.lm_verifier));
11461                 }
11462                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.password3));
11463                 if (r->in.password3) {
11464                         NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, r->in.password3));
11465                 }
11466         }
11467         if (flags & NDR_OUT) {
11468                 if (r->out.dominfo == NULL) {
11469                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11470                 }
11471                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dominfo));
11472                 if (*r->out.dominfo) {
11473                         NDR_CHECK(ndr_push_samr_DomInfo1(ndr, NDR_SCALARS, *r->out.dominfo));
11474                 }
11475                 if (r->out.reject == NULL) {
11476                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11477                 }
11478                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.reject));
11479                 if (*r->out.reject) {
11480                         NDR_CHECK(ndr_push_samr_ChangeReject(ndr, NDR_SCALARS, *r->out.reject));
11481                 }
11482                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11483         }
11484         return NDR_ERR_SUCCESS;
11485 }
11486
11487 static enum ndr_err_code ndr_pull_samr_ChangePasswordUser3(struct ndr_pull *ndr, int flags, struct samr_ChangePasswordUser3 *r)
11488 {
11489         uint32_t _ptr_server;
11490         uint32_t _ptr_nt_password;
11491         uint32_t _ptr_nt_verifier;
11492         uint32_t _ptr_lm_password;
11493         uint32_t _ptr_lm_verifier;
11494         uint32_t _ptr_password3;
11495         uint32_t _ptr_dominfo;
11496         uint32_t _ptr_reject;
11497         TALLOC_CTX *_mem_save_server_0;
11498         TALLOC_CTX *_mem_save_account_0;
11499         TALLOC_CTX *_mem_save_nt_password_0;
11500         TALLOC_CTX *_mem_save_nt_verifier_0;
11501         TALLOC_CTX *_mem_save_lm_password_0;
11502         TALLOC_CTX *_mem_save_lm_verifier_0;
11503         TALLOC_CTX *_mem_save_password3_0;
11504         TALLOC_CTX *_mem_save_dominfo_0;
11505         TALLOC_CTX *_mem_save_dominfo_1;
11506         TALLOC_CTX *_mem_save_reject_0;
11507         TALLOC_CTX *_mem_save_reject_1;
11508         if (flags & NDR_IN) {
11509                 ZERO_STRUCT(r->out);
11510
11511                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
11512                 if (_ptr_server) {
11513                         NDR_PULL_ALLOC(ndr, r->in.server);
11514                 } else {
11515                         r->in.server = NULL;
11516                 }
11517                 if (r->in.server) {
11518                         _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11519                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
11520                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.server));
11521                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
11522                 }
11523                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11524                         NDR_PULL_ALLOC(ndr, r->in.account);
11525                 }
11526                 _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
11527                 NDR_PULL_SET_MEM_CTX(ndr, r->in.account, LIBNDR_FLAG_REF_ALLOC);
11528                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.account));
11529                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, LIBNDR_FLAG_REF_ALLOC);
11530                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nt_password));
11531                 if (_ptr_nt_password) {
11532                         NDR_PULL_ALLOC(ndr, r->in.nt_password);
11533                 } else {
11534                         r->in.nt_password = NULL;
11535                 }
11536                 if (r->in.nt_password) {
11537                         _mem_save_nt_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
11538                         NDR_PULL_SET_MEM_CTX(ndr, r->in.nt_password, 0);
11539                         NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, r->in.nt_password));
11540                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nt_password_0, 0);
11541                 }
11542                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nt_verifier));
11543                 if (_ptr_nt_verifier) {
11544                         NDR_PULL_ALLOC(ndr, r->in.nt_verifier);
11545                 } else {
11546                         r->in.nt_verifier = NULL;
11547                 }
11548                 if (r->in.nt_verifier) {
11549                         _mem_save_nt_verifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
11550                         NDR_PULL_SET_MEM_CTX(ndr, r->in.nt_verifier, 0);
11551                         NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.nt_verifier));
11552                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nt_verifier_0, 0);
11553                 }
11554                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->in.lm_change));
11555                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lm_password));
11556                 if (_ptr_lm_password) {
11557                         NDR_PULL_ALLOC(ndr, r->in.lm_password);
11558                 } else {
11559                         r->in.lm_password = NULL;
11560                 }
11561                 if (r->in.lm_password) {
11562                         _mem_save_lm_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
11563                         NDR_PULL_SET_MEM_CTX(ndr, r->in.lm_password, 0);
11564                         NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, r->in.lm_password));
11565                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lm_password_0, 0);
11566                 }
11567                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lm_verifier));
11568                 if (_ptr_lm_verifier) {
11569                         NDR_PULL_ALLOC(ndr, r->in.lm_verifier);
11570                 } else {
11571                         r->in.lm_verifier = NULL;
11572                 }
11573                 if (r->in.lm_verifier) {
11574                         _mem_save_lm_verifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
11575                         NDR_PULL_SET_MEM_CTX(ndr, r->in.lm_verifier, 0);
11576                         NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.lm_verifier));
11577                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lm_verifier_0, 0);
11578                 }
11579                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password3));
11580                 if (_ptr_password3) {
11581                         NDR_PULL_ALLOC(ndr, r->in.password3);
11582                 } else {
11583                         r->in.password3 = NULL;
11584                 }
11585                 if (r->in.password3) {
11586                         _mem_save_password3_0 = NDR_PULL_GET_MEM_CTX(ndr);
11587                         NDR_PULL_SET_MEM_CTX(ndr, r->in.password3, 0);
11588                         NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, r->in.password3));
11589                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password3_0, 0);
11590                 }
11591                 NDR_PULL_ALLOC(ndr, r->out.dominfo);
11592                 ZERO_STRUCTP(r->out.dominfo);
11593                 NDR_PULL_ALLOC(ndr, r->out.reject);
11594                 ZERO_STRUCTP(r->out.reject);
11595         }
11596         if (flags & NDR_OUT) {
11597                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11598                         NDR_PULL_ALLOC(ndr, r->out.dominfo);
11599                 }
11600                 _mem_save_dominfo_0 = NDR_PULL_GET_MEM_CTX(ndr);
11601                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dominfo, LIBNDR_FLAG_REF_ALLOC);
11602                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dominfo));
11603                 if (_ptr_dominfo) {
11604                         NDR_PULL_ALLOC(ndr, *r->out.dominfo);
11605                 } else {
11606                         *r->out.dominfo = NULL;
11607                 }
11608                 if (*r->out.dominfo) {
11609                         _mem_save_dominfo_1 = NDR_PULL_GET_MEM_CTX(ndr);
11610                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dominfo, 0);
11611                         NDR_CHECK(ndr_pull_samr_DomInfo1(ndr, NDR_SCALARS, *r->out.dominfo));
11612                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dominfo_1, 0);
11613                 }
11614                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dominfo_0, LIBNDR_FLAG_REF_ALLOC);
11615                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11616                         NDR_PULL_ALLOC(ndr, r->out.reject);
11617                 }
11618                 _mem_save_reject_0 = NDR_PULL_GET_MEM_CTX(ndr);
11619                 NDR_PULL_SET_MEM_CTX(ndr, r->out.reject, LIBNDR_FLAG_REF_ALLOC);
11620                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_reject));
11621                 if (_ptr_reject) {
11622                         NDR_PULL_ALLOC(ndr, *r->out.reject);
11623                 } else {
11624                         *r->out.reject = NULL;
11625                 }
11626                 if (*r->out.reject) {
11627                         _mem_save_reject_1 = NDR_PULL_GET_MEM_CTX(ndr);
11628                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.reject, 0);
11629                         NDR_CHECK(ndr_pull_samr_ChangeReject(ndr, NDR_SCALARS, *r->out.reject));
11630                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reject_1, 0);
11631                 }
11632                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reject_0, LIBNDR_FLAG_REF_ALLOC);
11633                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11634         }
11635         return NDR_ERR_SUCCESS;
11636 }
11637
11638 _PUBLIC_ void ndr_print_samr_ChangePasswordUser3(struct ndr_print *ndr, const char *name, int flags, const struct samr_ChangePasswordUser3 *r)
11639 {
11640         ndr_print_struct(ndr, name, "samr_ChangePasswordUser3");
11641         ndr->depth++;
11642         if (flags & NDR_SET_VALUES) {
11643                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11644         }
11645         if (flags & NDR_IN) {
11646                 ndr_print_struct(ndr, "in", "samr_ChangePasswordUser3");
11647                 ndr->depth++;
11648                 ndr_print_ptr(ndr, "server", r->in.server);
11649                 ndr->depth++;
11650                 if (r->in.server) {
11651                         ndr_print_lsa_String(ndr, "server", r->in.server);
11652                 }
11653                 ndr->depth--;
11654                 ndr_print_ptr(ndr, "account", r->in.account);
11655                 ndr->depth++;
11656                 ndr_print_lsa_String(ndr, "account", r->in.account);
11657                 ndr->depth--;
11658                 ndr_print_ptr(ndr, "nt_password", r->in.nt_password);
11659                 ndr->depth++;
11660                 if (r->in.nt_password) {
11661                         ndr_print_samr_CryptPassword(ndr, "nt_password", r->in.nt_password);
11662                 }
11663                 ndr->depth--;
11664                 ndr_print_ptr(ndr, "nt_verifier", r->in.nt_verifier);
11665                 ndr->depth++;
11666                 if (r->in.nt_verifier) {
11667                         ndr_print_samr_Password(ndr, "nt_verifier", r->in.nt_verifier);
11668                 }
11669                 ndr->depth--;
11670                 ndr_print_uint8(ndr, "lm_change", r->in.lm_change);
11671                 ndr_print_ptr(ndr, "lm_password", r->in.lm_password);
11672                 ndr->depth++;
11673                 if (r->in.lm_password) {
11674                         ndr_print_samr_CryptPassword(ndr, "lm_password", r->in.lm_password);
11675                 }
11676                 ndr->depth--;
11677                 ndr_print_ptr(ndr, "lm_verifier", r->in.lm_verifier);
11678                 ndr->depth++;
11679                 if (r->in.lm_verifier) {
11680                         ndr_print_samr_Password(ndr, "lm_verifier", r->in.lm_verifier);
11681                 }
11682                 ndr->depth--;
11683                 ndr_print_ptr(ndr, "password3", r->in.password3);
11684                 ndr->depth++;
11685                 if (r->in.password3) {
11686                         ndr_print_samr_CryptPassword(ndr, "password3", r->in.password3);
11687                 }
11688                 ndr->depth--;
11689                 ndr->depth--;
11690         }
11691         if (flags & NDR_OUT) {
11692                 ndr_print_struct(ndr, "out", "samr_ChangePasswordUser3");
11693                 ndr->depth++;
11694                 ndr_print_ptr(ndr, "dominfo", r->out.dominfo);
11695                 ndr->depth++;
11696                 ndr_print_ptr(ndr, "dominfo", *r->out.dominfo);
11697                 ndr->depth++;
11698                 if (*r->out.dominfo) {
11699                         ndr_print_samr_DomInfo1(ndr, "dominfo", *r->out.dominfo);
11700                 }
11701                 ndr->depth--;
11702                 ndr->depth--;
11703                 ndr_print_ptr(ndr, "reject", r->out.reject);
11704                 ndr->depth++;
11705                 ndr_print_ptr(ndr, "reject", *r->out.reject);
11706                 ndr->depth++;
11707                 if (*r->out.reject) {
11708                         ndr_print_samr_ChangeReject(ndr, "reject", *r->out.reject);
11709                 }
11710                 ndr->depth--;
11711                 ndr->depth--;
11712                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11713                 ndr->depth--;
11714         }
11715         ndr->depth--;
11716 }
11717
11718 _PUBLIC_ enum ndr_err_code ndr_push_samr_Connect5(struct ndr_push *ndr, int flags, const struct samr_Connect5 *r)
11719 {
11720         if (flags & NDR_IN) {
11721                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.system_name));
11722                 if (r->in.system_name) {
11723                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
11724                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11725                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.system_name, CH_UTF16)));
11726                         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));
11727                 }
11728                 NDR_CHECK(ndr_push_samr_ConnectAccessMask(ndr, NDR_SCALARS, r->in.access_mask));
11729                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level_in));
11730                 if (r->in.info_in == NULL) {
11731                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11732                 }
11733                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info_in, r->in.level_in));
11734                 NDR_CHECK(ndr_push_samr_ConnectInfo(ndr, NDR_SCALARS, r->in.info_in));
11735         }
11736         if (flags & NDR_OUT) {
11737                 if (r->out.level_out == NULL) {
11738                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11739                 }
11740                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
11741                 if (r->out.info_out == NULL) {
11742                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11743                 }
11744                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info_out, *r->out.level_out));
11745                 NDR_CHECK(ndr_push_samr_ConnectInfo(ndr, NDR_SCALARS, r->out.info_out));
11746                 if (r->out.connect_handle == NULL) {
11747                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11748                 }
11749                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
11750                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11751         }
11752         return NDR_ERR_SUCCESS;
11753 }
11754
11755 _PUBLIC_ enum ndr_err_code ndr_pull_samr_Connect5(struct ndr_pull *ndr, int flags, struct samr_Connect5 *r)
11756 {
11757         uint32_t _ptr_system_name;
11758         TALLOC_CTX *_mem_save_system_name_0;
11759         TALLOC_CTX *_mem_save_info_in_0;
11760         TALLOC_CTX *_mem_save_level_out_0;
11761         TALLOC_CTX *_mem_save_info_out_0;
11762         TALLOC_CTX *_mem_save_connect_handle_0;
11763         if (flags & NDR_IN) {
11764                 ZERO_STRUCT(r->out);
11765
11766                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_system_name));
11767                 if (_ptr_system_name) {
11768                         NDR_PULL_ALLOC(ndr, r->in.system_name);
11769                 } else {
11770                         r->in.system_name = NULL;
11771                 }
11772                 if (r->in.system_name) {
11773                         _mem_save_system_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11774                         NDR_PULL_SET_MEM_CTX(ndr, r->in.system_name, 0);
11775                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.system_name));
11776                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.system_name));
11777                         if (ndr_get_array_length(ndr, &r->in.system_name) > ndr_get_array_size(ndr, &r->in.system_name)) {
11778                                 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));
11779                         }
11780                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.system_name), sizeof(uint16_t)));
11781                         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));
11782                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_system_name_0, 0);
11783                 }
11784                 NDR_CHECK(ndr_pull_samr_ConnectAccessMask(ndr, NDR_SCALARS, &r->in.access_mask));
11785                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level_in));
11786                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11787                         NDR_PULL_ALLOC(ndr, r->in.info_in);
11788                 }
11789                 _mem_save_info_in_0 = NDR_PULL_GET_MEM_CTX(ndr);
11790                 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_in, LIBNDR_FLAG_REF_ALLOC);
11791                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info_in, r->in.level_in));
11792                 NDR_CHECK(ndr_pull_samr_ConnectInfo(ndr, NDR_SCALARS, r->in.info_in));
11793                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_in_0, LIBNDR_FLAG_REF_ALLOC);
11794                 NDR_PULL_ALLOC(ndr, r->out.level_out);
11795                 ZERO_STRUCTP(r->out.level_out);
11796                 NDR_PULL_ALLOC(ndr, r->out.info_out);
11797                 ZERO_STRUCTP(r->out.info_out);
11798                 NDR_PULL_ALLOC(ndr, r->out.connect_handle);
11799                 ZERO_STRUCTP(r->out.connect_handle);
11800         }
11801         if (flags & NDR_OUT) {
11802                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11803                         NDR_PULL_ALLOC(ndr, r->out.level_out);
11804                 }
11805                 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
11806                 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
11807                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
11808                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
11809                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11810                         NDR_PULL_ALLOC(ndr, r->out.info_out);
11811                 }
11812                 _mem_save_info_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
11813                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info_out, LIBNDR_FLAG_REF_ALLOC);
11814                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info_out, *r->out.level_out));
11815                 NDR_CHECK(ndr_pull_samr_ConnectInfo(ndr, NDR_SCALARS, r->out.info_out));
11816                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_out_0, LIBNDR_FLAG_REF_ALLOC);
11817                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11818                         NDR_PULL_ALLOC(ndr, r->out.connect_handle);
11819                 }
11820                 _mem_save_connect_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11821                 NDR_PULL_SET_MEM_CTX(ndr, r->out.connect_handle, LIBNDR_FLAG_REF_ALLOC);
11822                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.connect_handle));
11823                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connect_handle_0, LIBNDR_FLAG_REF_ALLOC);
11824                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11825         }
11826         return NDR_ERR_SUCCESS;
11827 }
11828
11829 _PUBLIC_ void ndr_print_samr_Connect5(struct ndr_print *ndr, const char *name, int flags, const struct samr_Connect5 *r)
11830 {
11831         ndr_print_struct(ndr, name, "samr_Connect5");
11832         ndr->depth++;
11833         if (flags & NDR_SET_VALUES) {
11834                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11835         }
11836         if (flags & NDR_IN) {
11837                 ndr_print_struct(ndr, "in", "samr_Connect5");
11838                 ndr->depth++;
11839                 ndr_print_ptr(ndr, "system_name", r->in.system_name);
11840                 ndr->depth++;
11841                 if (r->in.system_name) {
11842                         ndr_print_string(ndr, "system_name", r->in.system_name);
11843                 }
11844                 ndr->depth--;
11845                 ndr_print_samr_ConnectAccessMask(ndr, "access_mask", r->in.access_mask);
11846                 ndr_print_uint32(ndr, "level_in", r->in.level_in);
11847                 ndr_print_ptr(ndr, "info_in", r->in.info_in);
11848                 ndr->depth++;
11849                 ndr_print_set_switch_value(ndr, r->in.info_in, r->in.level_in);
11850                 ndr_print_samr_ConnectInfo(ndr, "info_in", r->in.info_in);
11851                 ndr->depth--;
11852                 ndr->depth--;
11853         }
11854         if (flags & NDR_OUT) {
11855                 ndr_print_struct(ndr, "out", "samr_Connect5");
11856                 ndr->depth++;
11857                 ndr_print_ptr(ndr, "level_out", r->out.level_out);
11858                 ndr->depth++;
11859                 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
11860                 ndr->depth--;
11861                 ndr_print_ptr(ndr, "info_out", r->out.info_out);
11862                 ndr->depth++;
11863                 ndr_print_set_switch_value(ndr, r->out.info_out, *r->out.level_out);
11864                 ndr_print_samr_ConnectInfo(ndr, "info_out", r->out.info_out);
11865                 ndr->depth--;
11866                 ndr_print_ptr(ndr, "connect_handle", r->out.connect_handle);
11867                 ndr->depth++;
11868                 ndr_print_policy_handle(ndr, "connect_handle", r->out.connect_handle);
11869                 ndr->depth--;
11870                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11871                 ndr->depth--;
11872         }
11873         ndr->depth--;
11874 }
11875
11876 static enum ndr_err_code ndr_push_samr_RidToSid(struct ndr_push *ndr, int flags, const struct samr_RidToSid *r)
11877 {
11878         if (flags & NDR_IN) {
11879                 if (r->in.domain_handle == NULL) {
11880                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11881                 }
11882                 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
11883                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.rid));
11884         }
11885         if (flags & NDR_OUT) {
11886                 if (r->out.sid == NULL) {
11887                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11888                 }
11889                 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sid));
11890                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11891         }
11892         return NDR_ERR_SUCCESS;
11893 }
11894
11895 static enum ndr_err_code ndr_pull_samr_RidToSid(struct ndr_pull *ndr, int flags, struct samr_RidToSid *r)
11896 {
11897         TALLOC_CTX *_mem_save_domain_handle_0;
11898         TALLOC_CTX *_mem_save_sid_0;
11899         if (flags & NDR_IN) {
11900                 ZERO_STRUCT(r->out);
11901
11902                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11903                         NDR_PULL_ALLOC(ndr, r->in.domain_handle);
11904                 }
11905                 _mem_save_domain_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11906                 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_handle, LIBNDR_FLAG_REF_ALLOC);
11907                 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.domain_handle));
11908                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_handle_0, LIBNDR_FLAG_REF_ALLOC);
11909                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.rid));
11910                 NDR_PULL_ALLOC(ndr, r->out.sid);
11911                 ZERO_STRUCTP(r->out.sid);
11912         }
11913         if (flags & NDR_OUT) {
11914                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11915                         NDR_PULL_ALLOC(ndr, r->out.sid);
11916                 }
11917                 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11918                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sid, LIBNDR_FLAG_REF_ALLOC);
11919                 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sid));
11920                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
11921                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11922         }
11923         return NDR_ERR_SUCCESS;
11924 }
11925
11926 _PUBLIC_ void ndr_print_samr_RidToSid(struct ndr_print *ndr, const char *name, int flags, const struct samr_RidToSid *r)
11927 {
11928         ndr_print_struct(ndr, name, "samr_RidToSid");
11929         ndr->depth++;
11930         if (flags & NDR_SET_VALUES) {
11931                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11932         }
11933         if (flags & NDR_IN) {
11934                 ndr_print_struct(ndr, "in", "samr_RidToSid");
11935                 ndr->depth++;
11936                 ndr_print_ptr(ndr, "domain_handle", r->in.domain_handle);
11937                 ndr->depth++;
11938                 ndr_print_policy_handle(ndr, "domain_handle", r->in.domain_handle);
11939                 ndr->depth--;
11940                 ndr_print_uint32(ndr, "rid", r->in.rid);
11941                 ndr->depth--;
11942         }
11943         if (flags & NDR_OUT) {
11944                 ndr_print_struct(ndr, "out", "samr_RidToSid");
11945                 ndr->depth++;
11946                 ndr_print_ptr(ndr, "sid", r->out.sid);
11947                 ndr->depth++;
11948                 ndr_print_dom_sid2(ndr, "sid", r->out.sid);
11949                 ndr->depth--;
11950                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11951                 ndr->depth--;
11952         }
11953         ndr->depth--;
11954 }
11955
11956 static enum ndr_err_code ndr_push_samr_SetDsrmPassword(struct ndr_push *ndr, int flags, const struct samr_SetDsrmPassword *r)
11957 {
11958         if (flags & NDR_IN) {
11959                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.name));
11960                 if (r->in.name) {
11961                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
11962                 }
11963                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
11964                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.hash));
11965                 if (r->in.hash) {
11966                         NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.hash));
11967                 }
11968         }
11969         if (flags & NDR_OUT) {
11970                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11971         }
11972         return NDR_ERR_SUCCESS;
11973 }
11974
11975 static enum ndr_err_code ndr_pull_samr_SetDsrmPassword(struct ndr_pull *ndr, int flags, struct samr_SetDsrmPassword *r)
11976 {
11977         uint32_t _ptr_name;
11978         uint32_t _ptr_hash;
11979         TALLOC_CTX *_mem_save_name_0;
11980         TALLOC_CTX *_mem_save_hash_0;
11981         if (flags & NDR_IN) {
11982                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
11983                 if (_ptr_name) {
11984                         NDR_PULL_ALLOC(ndr, r->in.name);
11985                 } else {
11986                         r->in.name = NULL;
11987                 }
11988                 if (r->in.name) {
11989                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11990                         NDR_PULL_SET_MEM_CTX(ndr, r->in.name, 0);
11991                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.name));
11992                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
11993                 }
11994                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
11995                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hash));
11996                 if (_ptr_hash) {
11997                         NDR_PULL_ALLOC(ndr, r->in.hash);
11998                 } else {
11999                         r->in.hash = NULL;
12000                 }
12001                 if (r->in.hash) {
12002                         _mem_save_hash_0 = NDR_PULL_GET_MEM_CTX(ndr);
12003                         NDR_PULL_SET_MEM_CTX(ndr, r->in.hash, 0);
12004                         NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.hash));
12005                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hash_0, 0);
12006                 }
12007         }
12008         if (flags & NDR_OUT) {
12009                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12010         }
12011         return NDR_ERR_SUCCESS;
12012 }
12013
12014 _PUBLIC_ void ndr_print_samr_SetDsrmPassword(struct ndr_print *ndr, const char *name, int flags, const struct samr_SetDsrmPassword *r)
12015 {
12016         ndr_print_struct(ndr, name, "samr_SetDsrmPassword");
12017         ndr->depth++;
12018         if (flags & NDR_SET_VALUES) {
12019                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12020         }
12021         if (flags & NDR_IN) {
12022                 ndr_print_struct(ndr, "in", "samr_SetDsrmPassword");
12023                 ndr->depth++;
12024                 ndr_print_ptr(ndr, "name", r->in.name);
12025                 ndr->depth++;
12026                 if (r->in.name) {
12027                         ndr_print_lsa_String(ndr, "name", r->in.name);
12028                 }
12029                 ndr->depth--;
12030                 ndr_print_uint32(ndr, "unknown", r->in.unknown);
12031                 ndr_print_ptr(ndr, "hash", r->in.hash);
12032                 ndr->depth++;
12033                 if (r->in.hash) {
12034                         ndr_print_samr_Password(ndr, "hash", r->in.hash);
12035                 }
12036                 ndr->depth--;
12037                 ndr->depth--;
12038         }
12039         if (flags & NDR_OUT) {
12040                 ndr_print_struct(ndr, "out", "samr_SetDsrmPassword");
12041                 ndr->depth++;
12042                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12043                 ndr->depth--;
12044         }
12045         ndr->depth--;
12046 }
12047
12048 static enum ndr_err_code ndr_push_samr_ValidatePassword(struct ndr_push *ndr, int flags, const struct samr_ValidatePassword *r)
12049 {
12050         if (flags & NDR_IN) {
12051                 NDR_CHECK(ndr_push_samr_ValidatePasswordLevel(ndr, NDR_SCALARS, r->in.level));
12052                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
12053                 NDR_CHECK(ndr_push_samr_ValidatePasswordReq(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
12054         }
12055         if (flags & NDR_OUT) {
12056                 if (r->out.rep == NULL) {
12057                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12058                 }
12059                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.rep, r->in.level));
12060                 NDR_CHECK(ndr_push_samr_ValidatePasswordRep(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rep));
12061                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12062         }
12063         return NDR_ERR_SUCCESS;
12064 }
12065
12066 static enum ndr_err_code ndr_pull_samr_ValidatePassword(struct ndr_pull *ndr, int flags, struct samr_ValidatePassword *r)
12067 {
12068         TALLOC_CTX *_mem_save_rep_0;
12069         if (flags & NDR_IN) {
12070                 ZERO_STRUCT(r->out);
12071
12072                 NDR_CHECK(ndr_pull_samr_ValidatePasswordLevel(ndr, NDR_SCALARS, &r->in.level));
12073                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
12074                 NDR_CHECK(ndr_pull_samr_ValidatePasswordReq(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
12075                 NDR_PULL_ALLOC(ndr, r->out.rep);
12076                 ZERO_STRUCTP(r->out.rep);
12077         }
12078         if (flags & NDR_OUT) {
12079                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12080                         NDR_PULL_ALLOC(ndr, r->out.rep);
12081                 }
12082                 _mem_save_rep_0 = NDR_PULL_GET_MEM_CTX(ndr);
12083                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rep, LIBNDR_FLAG_REF_ALLOC);
12084                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.rep, r->in.level));
12085                 NDR_CHECK(ndr_pull_samr_ValidatePasswordRep(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rep));
12086                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rep_0, LIBNDR_FLAG_REF_ALLOC);
12087                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12088         }
12089         return NDR_ERR_SUCCESS;
12090 }
12091
12092 _PUBLIC_ void ndr_print_samr_ValidatePassword(struct ndr_print *ndr, const char *name, int flags, const struct samr_ValidatePassword *r)
12093 {
12094         ndr_print_struct(ndr, name, "samr_ValidatePassword");
12095         ndr->depth++;
12096         if (flags & NDR_SET_VALUES) {
12097                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12098         }
12099         if (flags & NDR_IN) {
12100                 ndr_print_struct(ndr, "in", "samr_ValidatePassword");
12101                 ndr->depth++;
12102                 ndr_print_samr_ValidatePasswordLevel(ndr, "level", r->in.level);
12103                 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
12104                 ndr_print_samr_ValidatePasswordReq(ndr, "req", &r->in.req);
12105                 ndr->depth--;
12106         }
12107         if (flags & NDR_OUT) {
12108                 ndr_print_struct(ndr, "out", "samr_ValidatePassword");
12109                 ndr->depth++;
12110                 ndr_print_ptr(ndr, "rep", r->out.rep);
12111                 ndr->depth++;
12112                 ndr_print_set_switch_value(ndr, r->out.rep, r->in.level);
12113                 ndr_print_samr_ValidatePasswordRep(ndr, "rep", r->out.rep);
12114                 ndr->depth--;
12115                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12116                 ndr->depth--;
12117         }
12118         ndr->depth--;
12119 }
12120
12121 static const struct ndr_interface_call samr_calls[] = {
12122         {
12123                 "samr_Connect",
12124                 sizeof(struct samr_Connect),
12125                 (ndr_push_flags_fn_t) ndr_push_samr_Connect,
12126                 (ndr_pull_flags_fn_t) ndr_pull_samr_Connect,
12127                 (ndr_print_function_t) ndr_print_samr_Connect,
12128                 false,
12129         },
12130         {
12131                 "samr_Close",
12132                 sizeof(struct samr_Close),
12133                 (ndr_push_flags_fn_t) ndr_push_samr_Close,
12134                 (ndr_pull_flags_fn_t) ndr_pull_samr_Close,
12135                 (ndr_print_function_t) ndr_print_samr_Close,
12136                 false,
12137         },
12138         {
12139                 "samr_SetSecurity",
12140                 sizeof(struct samr_SetSecurity),
12141                 (ndr_push_flags_fn_t) ndr_push_samr_SetSecurity,
12142                 (ndr_pull_flags_fn_t) ndr_pull_samr_SetSecurity,
12143                 (ndr_print_function_t) ndr_print_samr_SetSecurity,
12144                 false,
12145         },
12146         {
12147                 "samr_QuerySecurity",
12148                 sizeof(struct samr_QuerySecurity),
12149                 (ndr_push_flags_fn_t) ndr_push_samr_QuerySecurity,
12150                 (ndr_pull_flags_fn_t) ndr_pull_samr_QuerySecurity,
12151                 (ndr_print_function_t) ndr_print_samr_QuerySecurity,
12152                 false,
12153         },
12154         {
12155                 "samr_Shutdown",
12156                 sizeof(struct samr_Shutdown),
12157                 (ndr_push_flags_fn_t) ndr_push_samr_Shutdown,
12158                 (ndr_pull_flags_fn_t) ndr_pull_samr_Shutdown,
12159                 (ndr_print_function_t) ndr_print_samr_Shutdown,
12160                 false,
12161         },
12162         {
12163                 "samr_LookupDomain",
12164                 sizeof(struct samr_LookupDomain),
12165                 (ndr_push_flags_fn_t) ndr_push_samr_LookupDomain,
12166                 (ndr_pull_flags_fn_t) ndr_pull_samr_LookupDomain,
12167                 (ndr_print_function_t) ndr_print_samr_LookupDomain,
12168                 false,
12169         },
12170         {
12171                 "samr_EnumDomains",
12172                 sizeof(struct samr_EnumDomains),
12173                 (ndr_push_flags_fn_t) ndr_push_samr_EnumDomains,
12174                 (ndr_pull_flags_fn_t) ndr_pull_samr_EnumDomains,
12175                 (ndr_print_function_t) ndr_print_samr_EnumDomains,
12176                 false,
12177         },
12178         {
12179                 "samr_OpenDomain",
12180                 sizeof(struct samr_OpenDomain),
12181                 (ndr_push_flags_fn_t) ndr_push_samr_OpenDomain,
12182                 (ndr_pull_flags_fn_t) ndr_pull_samr_OpenDomain,
12183                 (ndr_print_function_t) ndr_print_samr_OpenDomain,
12184                 false,
12185         },
12186         {
12187                 "samr_QueryDomainInfo",
12188                 sizeof(struct samr_QueryDomainInfo),
12189                 (ndr_push_flags_fn_t) ndr_push_samr_QueryDomainInfo,
12190                 (ndr_pull_flags_fn_t) ndr_pull_samr_QueryDomainInfo,
12191                 (ndr_print_function_t) ndr_print_samr_QueryDomainInfo,
12192                 false,
12193         },
12194         {
12195                 "samr_SetDomainInfo",
12196                 sizeof(struct samr_SetDomainInfo),
12197                 (ndr_push_flags_fn_t) ndr_push_samr_SetDomainInfo,
12198                 (ndr_pull_flags_fn_t) ndr_pull_samr_SetDomainInfo,
12199                 (ndr_print_function_t) ndr_print_samr_SetDomainInfo,
12200                 false,
12201         },
12202         {
12203                 "samr_CreateDomainGroup",
12204                 sizeof(struct samr_CreateDomainGroup),
12205                 (ndr_push_flags_fn_t) ndr_push_samr_CreateDomainGroup,
12206                 (ndr_pull_flags_fn_t) ndr_pull_samr_CreateDomainGroup,
12207                 (ndr_print_function_t) ndr_print_samr_CreateDomainGroup,
12208                 false,
12209         },
12210         {
12211                 "samr_EnumDomainGroups",
12212                 sizeof(struct samr_EnumDomainGroups),
12213                 (ndr_push_flags_fn_t) ndr_push_samr_EnumDomainGroups,
12214                 (ndr_pull_flags_fn_t) ndr_pull_samr_EnumDomainGroups,
12215                 (ndr_print_function_t) ndr_print_samr_EnumDomainGroups,
12216                 false,
12217         },
12218         {
12219                 "samr_CreateUser",
12220                 sizeof(struct samr_CreateUser),
12221                 (ndr_push_flags_fn_t) ndr_push_samr_CreateUser,
12222                 (ndr_pull_flags_fn_t) ndr_pull_samr_CreateUser,
12223                 (ndr_print_function_t) ndr_print_samr_CreateUser,
12224                 false,
12225         },
12226         {
12227                 "samr_EnumDomainUsers",
12228                 sizeof(struct samr_EnumDomainUsers),
12229                 (ndr_push_flags_fn_t) ndr_push_samr_EnumDomainUsers,
12230                 (ndr_pull_flags_fn_t) ndr_pull_samr_EnumDomainUsers,
12231                 (ndr_print_function_t) ndr_print_samr_EnumDomainUsers,
12232                 false,
12233         },
12234         {
12235                 "samr_CreateDomAlias",
12236                 sizeof(struct samr_CreateDomAlias),
12237                 (ndr_push_flags_fn_t) ndr_push_samr_CreateDomAlias,
12238                 (ndr_pull_flags_fn_t) ndr_pull_samr_CreateDomAlias,
12239                 (ndr_print_function_t) ndr_print_samr_CreateDomAlias,
12240                 false,
12241         },
12242         {
12243                 "samr_EnumDomainAliases",
12244                 sizeof(struct samr_EnumDomainAliases),
12245                 (ndr_push_flags_fn_t) ndr_push_samr_EnumDomainAliases,
12246                 (ndr_pull_flags_fn_t) ndr_pull_samr_EnumDomainAliases,
12247                 (ndr_print_function_t) ndr_print_samr_EnumDomainAliases,
12248                 false,
12249         },
12250         {
12251                 "samr_GetAliasMembership",
12252                 sizeof(struct samr_GetAliasMembership),
12253                 (ndr_push_flags_fn_t) ndr_push_samr_GetAliasMembership,
12254                 (ndr_pull_flags_fn_t) ndr_pull_samr_GetAliasMembership,
12255                 (ndr_print_function_t) ndr_print_samr_GetAliasMembership,
12256                 false,
12257         },
12258         {
12259                 "samr_LookupNames",
12260                 sizeof(struct samr_LookupNames),
12261                 (ndr_push_flags_fn_t) ndr_push_samr_LookupNames,
12262                 (ndr_pull_flags_fn_t) ndr_pull_samr_LookupNames,
12263                 (ndr_print_function_t) ndr_print_samr_LookupNames,
12264                 false,
12265         },
12266         {
12267                 "samr_LookupRids",
12268                 sizeof(struct samr_LookupRids),
12269                 (ndr_push_flags_fn_t) ndr_push_samr_LookupRids,
12270                 (ndr_pull_flags_fn_t) ndr_pull_samr_LookupRids,
12271                 (ndr_print_function_t) ndr_print_samr_LookupRids,
12272                 false,
12273         },
12274         {
12275                 "samr_OpenGroup",
12276                 sizeof(struct samr_OpenGroup),
12277                 (ndr_push_flags_fn_t) ndr_push_samr_OpenGroup,
12278                 (ndr_pull_flags_fn_t) ndr_pull_samr_OpenGroup,
12279                 (ndr_print_function_t) ndr_print_samr_OpenGroup,
12280                 false,
12281         },
12282         {
12283                 "samr_QueryGroupInfo",
12284                 sizeof(struct samr_QueryGroupInfo),
12285                 (ndr_push_flags_fn_t) ndr_push_samr_QueryGroupInfo,
12286                 (ndr_pull_flags_fn_t) ndr_pull_samr_QueryGroupInfo,
12287                 (ndr_print_function_t) ndr_print_samr_QueryGroupInfo,
12288                 false,
12289         },
12290         {
12291                 "samr_SetGroupInfo",
12292                 sizeof(struct samr_SetGroupInfo),
12293                 (ndr_push_flags_fn_t) ndr_push_samr_SetGroupInfo,
12294                 (ndr_pull_flags_fn_t) ndr_pull_samr_SetGroupInfo,
12295                 (ndr_print_function_t) ndr_print_samr_SetGroupInfo,
12296                 false,
12297         },
12298         {
12299                 "samr_AddGroupMember",
12300                 sizeof(struct samr_AddGroupMember),
12301                 (ndr_push_flags_fn_t) ndr_push_samr_AddGroupMember,
12302                 (ndr_pull_flags_fn_t) ndr_pull_samr_AddGroupMember,
12303                 (ndr_print_function_t) ndr_print_samr_AddGroupMember,
12304                 false,
12305         },
12306         {
12307                 "samr_DeleteDomainGroup",
12308                 sizeof(struct samr_DeleteDomainGroup),
12309                 (ndr_push_flags_fn_t) ndr_push_samr_DeleteDomainGroup,
12310                 (ndr_pull_flags_fn_t) ndr_pull_samr_DeleteDomainGroup,
12311                 (ndr_print_function_t) ndr_print_samr_DeleteDomainGroup,
12312                 false,
12313         },
12314         {
12315                 "samr_DeleteGroupMember",
12316                 sizeof(struct samr_DeleteGroupMember),
12317                 (ndr_push_flags_fn_t) ndr_push_samr_DeleteGroupMember,
12318                 (ndr_pull_flags_fn_t) ndr_pull_samr_DeleteGroupMember,
12319                 (ndr_print_function_t) ndr_print_samr_DeleteGroupMember,
12320                 false,
12321         },
12322         {
12323                 "samr_QueryGroupMember",
12324                 sizeof(struct samr_QueryGroupMember),
12325                 (ndr_push_flags_fn_t) ndr_push_samr_QueryGroupMember,
12326                 (ndr_pull_flags_fn_t) ndr_pull_samr_QueryGroupMember,
12327                 (ndr_print_function_t) ndr_print_samr_QueryGroupMember,
12328                 false,
12329         },
12330         {
12331                 "samr_SetMemberAttributesOfGroup",
12332                 sizeof(struct samr_SetMemberAttributesOfGroup),
12333                 (ndr_push_flags_fn_t) ndr_push_samr_SetMemberAttributesOfGroup,
12334                 (ndr_pull_flags_fn_t) ndr_pull_samr_SetMemberAttributesOfGroup,
12335                 (ndr_print_function_t) ndr_print_samr_SetMemberAttributesOfGroup,
12336                 false,
12337         },
12338         {
12339                 "samr_OpenAlias",
12340                 sizeof(struct samr_OpenAlias),
12341                 (ndr_push_flags_fn_t) ndr_push_samr_OpenAlias,
12342                 (ndr_pull_flags_fn_t) ndr_pull_samr_OpenAlias,
12343                 (ndr_print_function_t) ndr_print_samr_OpenAlias,
12344                 false,
12345         },
12346         {
12347                 "samr_QueryAliasInfo",
12348                 sizeof(struct samr_QueryAliasInfo),
12349                 (ndr_push_flags_fn_t) ndr_push_samr_QueryAliasInfo,
12350                 (ndr_pull_flags_fn_t) ndr_pull_samr_QueryAliasInfo,
12351                 (ndr_print_function_t) ndr_print_samr_QueryAliasInfo,
12352                 false,
12353         },
12354         {
12355                 "samr_SetAliasInfo",
12356                 sizeof(struct samr_SetAliasInfo),
12357                 (ndr_push_flags_fn_t) ndr_push_samr_SetAliasInfo,
12358                 (ndr_pull_flags_fn_t) ndr_pull_samr_SetAliasInfo,
12359                 (ndr_print_function_t) ndr_print_samr_SetAliasInfo,
12360                 false,
12361         },
12362         {
12363                 "samr_DeleteDomAlias",
12364                 sizeof(struct samr_DeleteDomAlias),
12365                 (ndr_push_flags_fn_t) ndr_push_samr_DeleteDomAlias,
12366                 (ndr_pull_flags_fn_t) ndr_pull_samr_DeleteDomAlias,
12367                 (ndr_print_function_t) ndr_print_samr_DeleteDomAlias,
12368                 false,
12369         },
12370         {
12371                 "samr_AddAliasMember",
12372                 sizeof(struct samr_AddAliasMember),
12373                 (ndr_push_flags_fn_t) ndr_push_samr_AddAliasMember,
12374                 (ndr_pull_flags_fn_t) ndr_pull_samr_AddAliasMember,
12375                 (ndr_print_function_t) ndr_print_samr_AddAliasMember,
12376                 false,
12377         },
12378         {
12379                 "samr_DeleteAliasMember",
12380                 sizeof(struct samr_DeleteAliasMember),
12381                 (ndr_push_flags_fn_t) ndr_push_samr_DeleteAliasMember,
12382                 (ndr_pull_flags_fn_t) ndr_pull_samr_DeleteAliasMember,
12383                 (ndr_print_function_t) ndr_print_samr_DeleteAliasMember,
12384                 false,
12385         },
12386         {
12387                 "samr_GetMembersInAlias",
12388                 sizeof(struct samr_GetMembersInAlias),
12389                 (ndr_push_flags_fn_t) ndr_push_samr_GetMembersInAlias,
12390                 (ndr_pull_flags_fn_t) ndr_pull_samr_GetMembersInAlias,
12391                 (ndr_print_function_t) ndr_print_samr_GetMembersInAlias,
12392                 false,
12393         },
12394         {
12395                 "samr_OpenUser",
12396                 sizeof(struct samr_OpenUser),
12397                 (ndr_push_flags_fn_t) ndr_push_samr_OpenUser,
12398                 (ndr_pull_flags_fn_t) ndr_pull_samr_OpenUser,
12399                 (ndr_print_function_t) ndr_print_samr_OpenUser,
12400                 false,
12401         },
12402         {
12403                 "samr_DeleteUser",
12404                 sizeof(struct samr_DeleteUser),
12405                 (ndr_push_flags_fn_t) ndr_push_samr_DeleteUser,
12406                 (ndr_pull_flags_fn_t) ndr_pull_samr_DeleteUser,
12407                 (ndr_print_function_t) ndr_print_samr_DeleteUser,
12408                 false,
12409         },
12410         {
12411                 "samr_QueryUserInfo",
12412                 sizeof(struct samr_QueryUserInfo),
12413                 (ndr_push_flags_fn_t) ndr_push_samr_QueryUserInfo,
12414                 (ndr_pull_flags_fn_t) ndr_pull_samr_QueryUserInfo,
12415                 (ndr_print_function_t) ndr_print_samr_QueryUserInfo,
12416                 false,
12417         },
12418         {
12419                 "samr_SetUserInfo",
12420                 sizeof(struct samr_SetUserInfo),
12421                 (ndr_push_flags_fn_t) ndr_push_samr_SetUserInfo,
12422                 (ndr_pull_flags_fn_t) ndr_pull_samr_SetUserInfo,
12423                 (ndr_print_function_t) ndr_print_samr_SetUserInfo,
12424                 false,
12425         },
12426         {
12427                 "samr_ChangePasswordUser",
12428                 sizeof(struct samr_ChangePasswordUser),
12429                 (ndr_push_flags_fn_t) ndr_push_samr_ChangePasswordUser,
12430                 (ndr_pull_flags_fn_t) ndr_pull_samr_ChangePasswordUser,
12431                 (ndr_print_function_t) ndr_print_samr_ChangePasswordUser,
12432                 false,
12433         },
12434         {
12435                 "samr_GetGroupsForUser",
12436                 sizeof(struct samr_GetGroupsForUser),
12437                 (ndr_push_flags_fn_t) ndr_push_samr_GetGroupsForUser,
12438                 (ndr_pull_flags_fn_t) ndr_pull_samr_GetGroupsForUser,
12439                 (ndr_print_function_t) ndr_print_samr_GetGroupsForUser,
12440                 false,
12441         },
12442         {
12443                 "samr_QueryDisplayInfo",
12444                 sizeof(struct samr_QueryDisplayInfo),
12445                 (ndr_push_flags_fn_t) ndr_push_samr_QueryDisplayInfo,
12446                 (ndr_pull_flags_fn_t) ndr_pull_samr_QueryDisplayInfo,
12447                 (ndr_print_function_t) ndr_print_samr_QueryDisplayInfo,
12448                 false,
12449         },
12450         {
12451                 "samr_GetDisplayEnumerationIndex",
12452                 sizeof(struct samr_GetDisplayEnumerationIndex),
12453                 (ndr_push_flags_fn_t) ndr_push_samr_GetDisplayEnumerationIndex,
12454                 (ndr_pull_flags_fn_t) ndr_pull_samr_GetDisplayEnumerationIndex,
12455                 (ndr_print_function_t) ndr_print_samr_GetDisplayEnumerationIndex,
12456                 false,
12457         },
12458         {
12459                 "samr_TestPrivateFunctionsDomain",
12460                 sizeof(struct samr_TestPrivateFunctionsDomain),
12461                 (ndr_push_flags_fn_t) ndr_push_samr_TestPrivateFunctionsDomain,
12462                 (ndr_pull_flags_fn_t) ndr_pull_samr_TestPrivateFunctionsDomain,
12463                 (ndr_print_function_t) ndr_print_samr_TestPrivateFunctionsDomain,
12464                 false,
12465         },
12466         {
12467                 "samr_TestPrivateFunctionsUser",
12468                 sizeof(struct samr_TestPrivateFunctionsUser),
12469                 (ndr_push_flags_fn_t) ndr_push_samr_TestPrivateFunctionsUser,
12470                 (ndr_pull_flags_fn_t) ndr_pull_samr_TestPrivateFunctionsUser,
12471                 (ndr_print_function_t) ndr_print_samr_TestPrivateFunctionsUser,
12472                 false,
12473         },
12474         {
12475                 "samr_GetUserPwInfo",
12476                 sizeof(struct samr_GetUserPwInfo),
12477                 (ndr_push_flags_fn_t) ndr_push_samr_GetUserPwInfo,
12478                 (ndr_pull_flags_fn_t) ndr_pull_samr_GetUserPwInfo,
12479                 (ndr_print_function_t) ndr_print_samr_GetUserPwInfo,
12480                 false,
12481         },
12482         {
12483                 "samr_RemoveMemberFromForeignDomain",
12484                 sizeof(struct samr_RemoveMemberFromForeignDomain),
12485                 (ndr_push_flags_fn_t) ndr_push_samr_RemoveMemberFromForeignDomain,
12486                 (ndr_pull_flags_fn_t) ndr_pull_samr_RemoveMemberFromForeignDomain,
12487                 (ndr_print_function_t) ndr_print_samr_RemoveMemberFromForeignDomain,
12488                 false,
12489         },
12490         {
12491                 "samr_QueryDomainInfo2",
12492                 sizeof(struct samr_QueryDomainInfo2),
12493                 (ndr_push_flags_fn_t) ndr_push_samr_QueryDomainInfo2,
12494                 (ndr_pull_flags_fn_t) ndr_pull_samr_QueryDomainInfo2,
12495                 (ndr_print_function_t) ndr_print_samr_QueryDomainInfo2,
12496                 false,
12497         },
12498         {
12499                 "samr_QueryUserInfo2",
12500                 sizeof(struct samr_QueryUserInfo2),
12501                 (ndr_push_flags_fn_t) ndr_push_samr_QueryUserInfo2,
12502                 (ndr_pull_flags_fn_t) ndr_pull_samr_QueryUserInfo2,
12503                 (ndr_print_function_t) ndr_print_samr_QueryUserInfo2,
12504                 false,
12505         },
12506         {
12507                 "samr_QueryDisplayInfo2",
12508                 sizeof(struct samr_QueryDisplayInfo2),
12509                 (ndr_push_flags_fn_t) ndr_push_samr_QueryDisplayInfo2,
12510                 (ndr_pull_flags_fn_t) ndr_pull_samr_QueryDisplayInfo2,
12511                 (ndr_print_function_t) ndr_print_samr_QueryDisplayInfo2,
12512                 false,
12513         },
12514         {
12515                 "samr_GetDisplayEnumerationIndex2",
12516                 sizeof(struct samr_GetDisplayEnumerationIndex2),
12517                 (ndr_push_flags_fn_t) ndr_push_samr_GetDisplayEnumerationIndex2,
12518                 (ndr_pull_flags_fn_t) ndr_pull_samr_GetDisplayEnumerationIndex2,
12519                 (ndr_print_function_t) ndr_print_samr_GetDisplayEnumerationIndex2,
12520                 false,
12521         },
12522         {
12523                 "samr_CreateUser2",
12524                 sizeof(struct samr_CreateUser2),
12525                 (ndr_push_flags_fn_t) ndr_push_samr_CreateUser2,
12526                 (ndr_pull_flags_fn_t) ndr_pull_samr_CreateUser2,
12527                 (ndr_print_function_t) ndr_print_samr_CreateUser2,
12528                 false,
12529         },
12530         {
12531                 "samr_QueryDisplayInfo3",
12532                 sizeof(struct samr_QueryDisplayInfo3),
12533                 (ndr_push_flags_fn_t) ndr_push_samr_QueryDisplayInfo3,
12534                 (ndr_pull_flags_fn_t) ndr_pull_samr_QueryDisplayInfo3,
12535                 (ndr_print_function_t) ndr_print_samr_QueryDisplayInfo3,
12536                 false,
12537         },
12538         {
12539                 "samr_AddMultipleMembersToAlias",
12540                 sizeof(struct samr_AddMultipleMembersToAlias),
12541                 (ndr_push_flags_fn_t) ndr_push_samr_AddMultipleMembersToAlias,
12542                 (ndr_pull_flags_fn_t) ndr_pull_samr_AddMultipleMembersToAlias,
12543                 (ndr_print_function_t) ndr_print_samr_AddMultipleMembersToAlias,
12544                 false,
12545         },
12546         {
12547                 "samr_RemoveMultipleMembersFromAlias",
12548                 sizeof(struct samr_RemoveMultipleMembersFromAlias),
12549                 (ndr_push_flags_fn_t) ndr_push_samr_RemoveMultipleMembersFromAlias,
12550                 (ndr_pull_flags_fn_t) ndr_pull_samr_RemoveMultipleMembersFromAlias,
12551                 (ndr_print_function_t) ndr_print_samr_RemoveMultipleMembersFromAlias,
12552                 false,
12553         },
12554         {
12555                 "samr_OemChangePasswordUser2",
12556                 sizeof(struct samr_OemChangePasswordUser2),
12557                 (ndr_push_flags_fn_t) ndr_push_samr_OemChangePasswordUser2,
12558                 (ndr_pull_flags_fn_t) ndr_pull_samr_OemChangePasswordUser2,
12559                 (ndr_print_function_t) ndr_print_samr_OemChangePasswordUser2,
12560                 false,
12561         },
12562         {
12563                 "samr_ChangePasswordUser2",
12564                 sizeof(struct samr_ChangePasswordUser2),
12565                 (ndr_push_flags_fn_t) ndr_push_samr_ChangePasswordUser2,
12566                 (ndr_pull_flags_fn_t) ndr_pull_samr_ChangePasswordUser2,
12567                 (ndr_print_function_t) ndr_print_samr_ChangePasswordUser2,
12568                 false,
12569         },
12570         {
12571                 "samr_GetDomPwInfo",
12572                 sizeof(struct samr_GetDomPwInfo),
12573                 (ndr_push_flags_fn_t) ndr_push_samr_GetDomPwInfo,
12574                 (ndr_pull_flags_fn_t) ndr_pull_samr_GetDomPwInfo,
12575                 (ndr_print_function_t) ndr_print_samr_GetDomPwInfo,
12576                 false,
12577         },
12578         {
12579                 "samr_Connect2",
12580                 sizeof(struct samr_Connect2),
12581                 (ndr_push_flags_fn_t) ndr_push_samr_Connect2,
12582                 (ndr_pull_flags_fn_t) ndr_pull_samr_Connect2,
12583                 (ndr_print_function_t) ndr_print_samr_Connect2,
12584                 false,
12585         },
12586         {
12587                 "samr_SetUserInfo2",
12588                 sizeof(struct samr_SetUserInfo2),
12589                 (ndr_push_flags_fn_t) ndr_push_samr_SetUserInfo2,
12590                 (ndr_pull_flags_fn_t) ndr_pull_samr_SetUserInfo2,
12591                 (ndr_print_function_t) ndr_print_samr_SetUserInfo2,
12592                 false,
12593         },
12594         {
12595                 "samr_SetBootKeyInformation",
12596                 sizeof(struct samr_SetBootKeyInformation),
12597                 (ndr_push_flags_fn_t) ndr_push_samr_SetBootKeyInformation,
12598                 (ndr_pull_flags_fn_t) ndr_pull_samr_SetBootKeyInformation,
12599                 (ndr_print_function_t) ndr_print_samr_SetBootKeyInformation,
12600                 false,
12601         },
12602         {
12603                 "samr_GetBootKeyInformation",
12604                 sizeof(struct samr_GetBootKeyInformation),
12605                 (ndr_push_flags_fn_t) ndr_push_samr_GetBootKeyInformation,
12606                 (ndr_pull_flags_fn_t) ndr_pull_samr_GetBootKeyInformation,
12607                 (ndr_print_function_t) ndr_print_samr_GetBootKeyInformation,
12608                 false,
12609         },
12610         {
12611                 "samr_Connect3",
12612                 sizeof(struct samr_Connect3),
12613                 (ndr_push_flags_fn_t) ndr_push_samr_Connect3,
12614                 (ndr_pull_flags_fn_t) ndr_pull_samr_Connect3,
12615                 (ndr_print_function_t) ndr_print_samr_Connect3,
12616                 false,
12617         },
12618         {
12619                 "samr_Connect4",
12620                 sizeof(struct samr_Connect4),
12621                 (ndr_push_flags_fn_t) ndr_push_samr_Connect4,
12622                 (ndr_pull_flags_fn_t) ndr_pull_samr_Connect4,
12623                 (ndr_print_function_t) ndr_print_samr_Connect4,
12624                 false,
12625         },
12626         {
12627                 "samr_ChangePasswordUser3",
12628                 sizeof(struct samr_ChangePasswordUser3),
12629                 (ndr_push_flags_fn_t) ndr_push_samr_ChangePasswordUser3,
12630                 (ndr_pull_flags_fn_t) ndr_pull_samr_ChangePasswordUser3,
12631                 (ndr_print_function_t) ndr_print_samr_ChangePasswordUser3,
12632                 false,
12633         },
12634         {
12635                 "samr_Connect5",
12636                 sizeof(struct samr_Connect5),
12637                 (ndr_push_flags_fn_t) ndr_push_samr_Connect5,
12638                 (ndr_pull_flags_fn_t) ndr_pull_samr_Connect5,
12639                 (ndr_print_function_t) ndr_print_samr_Connect5,
12640                 false,
12641         },
12642         {
12643                 "samr_RidToSid",
12644                 sizeof(struct samr_RidToSid),
12645                 (ndr_push_flags_fn_t) ndr_push_samr_RidToSid,
12646                 (ndr_pull_flags_fn_t) ndr_pull_samr_RidToSid,
12647                 (ndr_print_function_t) ndr_print_samr_RidToSid,
12648                 false,
12649         },
12650         {
12651                 "samr_SetDsrmPassword",
12652                 sizeof(struct samr_SetDsrmPassword),
12653                 (ndr_push_flags_fn_t) ndr_push_samr_SetDsrmPassword,
12654                 (ndr_pull_flags_fn_t) ndr_pull_samr_SetDsrmPassword,
12655                 (ndr_print_function_t) ndr_print_samr_SetDsrmPassword,
12656                 false,
12657         },
12658         {
12659                 "samr_ValidatePassword",
12660                 sizeof(struct samr_ValidatePassword),
12661                 (ndr_push_flags_fn_t) ndr_push_samr_ValidatePassword,
12662                 (ndr_pull_flags_fn_t) ndr_pull_samr_ValidatePassword,
12663                 (ndr_print_function_t) ndr_print_samr_ValidatePassword,
12664                 false,
12665         },
12666         { NULL, 0, NULL, NULL, NULL, false }
12667 };
12668
12669 static const char * const samr_endpoint_strings[] = {
12670         "ncacn_np:[\\pipe\\samr]", 
12671         "ncacn_ip_tcp:", 
12672         "ncalrpc:", 
12673 };
12674
12675 static const struct ndr_interface_string_array samr_endpoints = {
12676         .count  = 3,
12677         .names  = samr_endpoint_strings
12678 };
12679
12680 static const char * const samr_authservice_strings[] = {
12681         "host", 
12682 };
12683
12684 static const struct ndr_interface_string_array samr_authservices = {
12685         .count  = 1,
12686         .names  = samr_authservice_strings
12687 };
12688
12689
12690 const struct ndr_interface_table ndr_table_samr = {
12691         .name           = "samr",
12692         .syntax_id      = {
12693                 {0x12345778,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xac}},
12694                 NDR_SAMR_VERSION
12695         },
12696         .helpstring     = NDR_SAMR_HELPSTRING,
12697         .num_calls      = 68,
12698         .calls          = samr_calls,
12699         .endpoints      = &samr_endpoints,
12700         .authservices   = &samr_authservices
12701 };
12702