Re-run make idl to regenerate netlogon output.
[sfrench/samba-autobuild/.git] / source3 / librpc / gen_ndr / ndr_netlogon.c
1 /* parser auto-generated by pidl */
2
3 #include "includes.h"
4 #include "librpc/gen_ndr/ndr_netlogon.h"
5
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 #include "librpc/gen_ndr/ndr_samr.h"
8 #include "librpc/gen_ndr/ndr_security.h"
9 static enum ndr_err_code ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r)
10 {
11         if (ndr_flags & NDR_SCALARS) {
12                 NDR_CHECK(ndr_push_align(ndr, 4));
13                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
14                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv));
15                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags));
16                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count));
17                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count));
18                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon));
19                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff));
20                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time));
21                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time));
22                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age));
23                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change));
24                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change));
25                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer));
26                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
27                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path));
28                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
29         }
30         if (ndr_flags & NDR_BUFFERS) {
31                 if (r->account_name) {
32                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
33                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
34                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
35                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
36                 }
37                 if (r->computer) {
38                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
39                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
40                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
41                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
42                 }
43                 if (r->domain) {
44                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
45                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
46                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
47                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
48                 }
49                 if (r->script_path) {
50                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
51                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
52                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
53                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
54                 }
55         }
56         return NDR_ERR_SUCCESS;
57 }
58
59 static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r)
60 {
61         uint32_t _ptr_account_name;
62         TALLOC_CTX *_mem_save_account_name_0;
63         uint32_t _ptr_computer;
64         TALLOC_CTX *_mem_save_computer_0;
65         uint32_t _ptr_domain;
66         TALLOC_CTX *_mem_save_domain_0;
67         uint32_t _ptr_script_path;
68         TALLOC_CTX *_mem_save_script_path_0;
69         if (ndr_flags & NDR_SCALARS) {
70                 NDR_CHECK(ndr_pull_align(ndr, 4));
71                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
72                 if (_ptr_account_name) {
73                         NDR_PULL_ALLOC(ndr, r->account_name);
74                 } else {
75                         r->account_name = NULL;
76                 }
77                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv));
78                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags));
79                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count));
80                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count));
81                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon));
82                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff));
83                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time));
84                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time));
85                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age));
86                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change));
87                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change));
88                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer));
89                 if (_ptr_computer) {
90                         NDR_PULL_ALLOC(ndr, r->computer);
91                 } else {
92                         r->computer = NULL;
93                 }
94                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
95                 if (_ptr_domain) {
96                         NDR_PULL_ALLOC(ndr, r->domain);
97                 } else {
98                         r->domain = NULL;
99                 }
100                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path));
101                 if (_ptr_script_path) {
102                         NDR_PULL_ALLOC(ndr, r->script_path);
103                 } else {
104                         r->script_path = NULL;
105                 }
106                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
107         }
108         if (ndr_flags & NDR_BUFFERS) {
109                 if (r->account_name) {
110                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
111                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
112                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
113                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
114                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
115                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
116                         }
117                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
118                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
119                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
120                 }
121                 if (r->computer) {
122                         _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr);
123                         NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0);
124                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer));
125                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer));
126                         if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) {
127                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer), ndr_get_array_length(ndr, &r->computer));
128                         }
129                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t)));
130                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16));
131                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0);
132                 }
133                 if (r->domain) {
134                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
135                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
136                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
137                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
138                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
139                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
140                         }
141                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
142                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
143                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
144                 }
145                 if (r->script_path) {
146                         _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
147                         NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0);
148                         NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path));
149                         NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path));
150                         if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) {
151                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->script_path), ndr_get_array_length(ndr, &r->script_path));
152                         }
153                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t)));
154                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16));
155                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0);
156                 }
157         }
158         return NDR_ERR_SUCCESS;
159 }
160
161 _PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r)
162 {
163         ndr_print_struct(ndr, name, "netr_UasInfo");
164         ndr->depth++;
165         ndr_print_ptr(ndr, "account_name", r->account_name);
166         ndr->depth++;
167         if (r->account_name) {
168                 ndr_print_string(ndr, "account_name", r->account_name);
169         }
170         ndr->depth--;
171         ndr_print_uint32(ndr, "priv", r->priv);
172         ndr_print_uint32(ndr, "auth_flags", r->auth_flags);
173         ndr_print_uint32(ndr, "logon_count", r->logon_count);
174         ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count);
175         ndr_print_time_t(ndr, "last_logon", r->last_logon);
176         ndr_print_time_t(ndr, "last_logoff", r->last_logoff);
177         ndr_print_time_t(ndr, "logoff_time", r->logoff_time);
178         ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time);
179         ndr_print_uint32(ndr, "password_age", r->password_age);
180         ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change);
181         ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change);
182         ndr_print_ptr(ndr, "computer", r->computer);
183         ndr->depth++;
184         if (r->computer) {
185                 ndr_print_string(ndr, "computer", r->computer);
186         }
187         ndr->depth--;
188         ndr_print_ptr(ndr, "domain", r->domain);
189         ndr->depth++;
190         if (r->domain) {
191                 ndr_print_string(ndr, "domain", r->domain);
192         }
193         ndr->depth--;
194         ndr_print_ptr(ndr, "script_path", r->script_path);
195         ndr->depth++;
196         if (r->script_path) {
197                 ndr_print_string(ndr, "script_path", r->script_path);
198         }
199         ndr->depth--;
200         ndr_print_uint32(ndr, "unknown", r->unknown);
201         ndr->depth--;
202 }
203
204 static enum ndr_err_code ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r)
205 {
206         if (ndr_flags & NDR_SCALARS) {
207                 NDR_CHECK(ndr_push_align(ndr, 4));
208                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration));
209                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
210         }
211         if (ndr_flags & NDR_BUFFERS) {
212         }
213         return NDR_ERR_SUCCESS;
214 }
215
216 static enum ndr_err_code ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r)
217 {
218         if (ndr_flags & NDR_SCALARS) {
219                 NDR_CHECK(ndr_pull_align(ndr, 4));
220                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration));
221                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
222         }
223         if (ndr_flags & NDR_BUFFERS) {
224         }
225         return NDR_ERR_SUCCESS;
226 }
227
228 _PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r)
229 {
230         ndr_print_struct(ndr, name, "netr_UasLogoffInfo");
231         ndr->depth++;
232         ndr_print_uint32(ndr, "duration", r->duration);
233         ndr_print_uint16(ndr, "logon_count", r->logon_count);
234         ndr->depth--;
235 }
236
237 static enum ndr_err_code ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r)
238 {
239         uint32_t cntr_bindata_1;
240         if (ndr_flags & NDR_SCALARS) {
241                 NDR_CHECK(ndr_push_align(ndr, 4));
242                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
243                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
244                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->bindata));
245         }
246         if (ndr_flags & NDR_BUFFERS) {
247                 if (r->bindata) {
248                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
249                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
250                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
251                         for (cntr_bindata_1 = 0; cntr_bindata_1 < r->length / 2; cntr_bindata_1++) {
252                                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bindata[cntr_bindata_1]));
253                         }
254                 }
255         }
256         return NDR_ERR_SUCCESS;
257 }
258
259 static enum ndr_err_code ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r)
260 {
261         uint32_t _ptr_bindata;
262         uint32_t cntr_bindata_1;
263         TALLOC_CTX *_mem_save_bindata_0;
264         TALLOC_CTX *_mem_save_bindata_1;
265         if (ndr_flags & NDR_SCALARS) {
266                 NDR_CHECK(ndr_pull_align(ndr, 4));
267                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
268                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
269                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bindata));
270                 if (_ptr_bindata) {
271                         NDR_PULL_ALLOC(ndr, r->bindata);
272                 } else {
273                         r->bindata = NULL;
274                 }
275         }
276         if (ndr_flags & NDR_BUFFERS) {
277                 if (r->bindata) {
278                         _mem_save_bindata_0 = NDR_PULL_GET_MEM_CTX(ndr);
279                         NDR_PULL_SET_MEM_CTX(ndr, r->bindata, 0);
280                         NDR_CHECK(ndr_pull_array_size(ndr, &r->bindata));
281                         NDR_CHECK(ndr_pull_array_length(ndr, &r->bindata));
282                         if (ndr_get_array_length(ndr, &r->bindata) > ndr_get_array_size(ndr, &r->bindata)) {
283                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->bindata), ndr_get_array_length(ndr, &r->bindata));
284                         }
285                         NDR_PULL_ALLOC_N(ndr, r->bindata, ndr_get_array_size(ndr, &r->bindata));
286                         _mem_save_bindata_1 = NDR_PULL_GET_MEM_CTX(ndr);
287                         NDR_PULL_SET_MEM_CTX(ndr, r->bindata, 0);
288                         for (cntr_bindata_1 = 0; cntr_bindata_1 < r->length / 2; cntr_bindata_1++) {
289                                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bindata[cntr_bindata_1]));
290                         }
291                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bindata_1, 0);
292                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bindata_0, 0);
293                 }
294                 if (r->bindata) {
295                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->bindata, r->size / 2));
296                 }
297                 if (r->bindata) {
298                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->bindata, r->length / 2));
299                 }
300         }
301         return NDR_ERR_SUCCESS;
302 }
303
304 _PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r)
305 {
306         uint32_t cntr_bindata_1;
307         ndr_print_struct(ndr, name, "netr_AcctLockStr");
308         ndr->depth++;
309         ndr_print_uint16(ndr, "size", r->size);
310         ndr_print_uint16(ndr, "length", r->length);
311         ndr_print_ptr(ndr, "bindata", r->bindata);
312         ndr->depth++;
313         if (r->bindata) {
314                 ndr->print(ndr, "%s: ARRAY(%d)", "bindata", r->length / 2);
315                 ndr->depth++;
316                 for (cntr_bindata_1=0;cntr_bindata_1<r->length / 2;cntr_bindata_1++) {
317                         char *idx_1=NULL;
318                         asprintf(&idx_1, "[%d]", cntr_bindata_1);
319                         if (idx_1) {
320                                 ndr_print_uint16(ndr, "bindata", r->bindata[cntr_bindata_1]);
321                                 free(idx_1);
322                         }
323                 }
324                 ndr->depth--;
325         }
326         ndr->depth--;
327         ndr->depth--;
328 }
329
330 static enum ndr_err_code ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
331 {
332         if (ndr_flags & NDR_SCALARS) {
333                 NDR_CHECK(ndr_push_align(ndr, 4));
334                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
335                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parameter_control));
336                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
337                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
338                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
339                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
340         }
341         if (ndr_flags & NDR_BUFFERS) {
342                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
343                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
344                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
345         }
346         return NDR_ERR_SUCCESS;
347 }
348
349 static enum ndr_err_code ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
350 {
351         if (ndr_flags & NDR_SCALARS) {
352                 NDR_CHECK(ndr_pull_align(ndr, 4));
353                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
354                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parameter_control));
355                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
356                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
357                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
358                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
359         }
360         if (ndr_flags & NDR_BUFFERS) {
361                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
362                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
363                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
364         }
365         return NDR_ERR_SUCCESS;
366 }
367
368 _PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
369 {
370         ndr_print_struct(ndr, name, "netr_IdentityInfo");
371         ndr->depth++;
372         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
373         ndr_print_uint32(ndr, "parameter_control", r->parameter_control);
374         ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
375         ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
376         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
377         ndr_print_lsa_String(ndr, "workstation", &r->workstation);
378         ndr->depth--;
379 }
380
381 static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
382 {
383         if (ndr_flags & NDR_SCALARS) {
384                 NDR_CHECK(ndr_push_align(ndr, 4));
385                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
386                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
387                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
388         }
389         if (ndr_flags & NDR_BUFFERS) {
390                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
391                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
392                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
393         }
394         return NDR_ERR_SUCCESS;
395 }
396
397 static enum ndr_err_code ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r)
398 {
399         if (ndr_flags & NDR_SCALARS) {
400                 NDR_CHECK(ndr_pull_align(ndr, 4));
401                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
402                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
403                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
404         }
405         if (ndr_flags & NDR_BUFFERS) {
406                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
407                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
408                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
409         }
410         return NDR_ERR_SUCCESS;
411 }
412
413 _PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
414 {
415         ndr_print_struct(ndr, name, "netr_PasswordInfo");
416         ndr->depth++;
417         ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
418         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
419         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
420         ndr->depth--;
421 }
422
423 static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
424 {
425         {
426                 uint32_t _flags_save_STRUCT = ndr->flags;
427                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
428                 if (ndr_flags & NDR_SCALARS) {
429                         NDR_CHECK(ndr_push_align(ndr, 4));
430                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
431                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
432                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
433                 }
434                 if (ndr_flags & NDR_BUFFERS) {
435                         if (r->data) {
436                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
437                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
438                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
439                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
440                         }
441                 }
442                 ndr->flags = _flags_save_STRUCT;
443         }
444         return NDR_ERR_SUCCESS;
445 }
446
447 static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
448 {
449         uint32_t _ptr_data;
450         TALLOC_CTX *_mem_save_data_0;
451         {
452                 uint32_t _flags_save_STRUCT = ndr->flags;
453                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
454                 if (ndr_flags & NDR_SCALARS) {
455                         NDR_CHECK(ndr_pull_align(ndr, 4));
456                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
457                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
458                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
459                         if (_ptr_data) {
460                                 NDR_PULL_ALLOC(ndr, r->data);
461                         } else {
462                                 r->data = NULL;
463                         }
464                 }
465                 if (ndr_flags & NDR_BUFFERS) {
466                         if (r->data) {
467                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
468                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
469                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
470                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
471                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
472                                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data));
473                                 }
474                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
475                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
476                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
477                         }
478                         if (r->data) {
479                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
480                         }
481                         if (r->data) {
482                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
483                         }
484                 }
485                 ndr->flags = _flags_save_STRUCT;
486         }
487         return NDR_ERR_SUCCESS;
488 }
489
490 _PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
491 {
492         ndr_print_struct(ndr, name, "netr_ChallengeResponse");
493         {
494                 uint32_t _flags_save_STRUCT = ndr->flags;
495                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
496                 ndr->depth++;
497                 ndr_print_uint16(ndr, "length", r->length);
498                 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
499                 ndr_print_ptr(ndr, "data", r->data);
500                 ndr->depth++;
501                 if (r->data) {
502                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
503                 }
504                 ndr->depth--;
505                 ndr->depth--;
506                 ndr->flags = _flags_save_STRUCT;
507         }
508 }
509
510 static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
511 {
512         {
513                 uint32_t _flags_save_STRUCT = ndr->flags;
514                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
515                 if (ndr_flags & NDR_SCALARS) {
516                         NDR_CHECK(ndr_push_align(ndr, 4));
517                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
518                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
519                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
520                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
521                 }
522                 if (ndr_flags & NDR_BUFFERS) {
523                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
524                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
525                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
526                 }
527                 ndr->flags = _flags_save_STRUCT;
528         }
529         return NDR_ERR_SUCCESS;
530 }
531
532 static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
533 {
534         {
535                 uint32_t _flags_save_STRUCT = ndr->flags;
536                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
537                 if (ndr_flags & NDR_SCALARS) {
538                         NDR_CHECK(ndr_pull_align(ndr, 4));
539                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
540                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
541                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
542                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
543                 }
544                 if (ndr_flags & NDR_BUFFERS) {
545                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
546                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
547                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
548                 }
549                 ndr->flags = _flags_save_STRUCT;
550         }
551         return NDR_ERR_SUCCESS;
552 }
553
554 _PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
555 {
556         ndr_print_struct(ndr, name, "netr_NetworkInfo");
557         {
558                 uint32_t _flags_save_STRUCT = ndr->flags;
559                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
560                 ndr->depth++;
561                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
562                 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
563                 ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
564                 ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
565                 ndr->depth--;
566                 ndr->flags = _flags_save_STRUCT;
567         }
568 }
569
570 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, const union netr_LogonLevel *r)
571 {
572         if (ndr_flags & NDR_SCALARS) {
573                 int level = ndr_push_get_switch_value(ndr, r);
574                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
575                 switch (level) {
576                         case 1:
577                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
578                         break;
579
580                         case 2:
581                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
582                         break;
583
584                         case 3:
585                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
586                         break;
587
588                         case 5:
589                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
590                         break;
591
592                         case 6:
593                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
594                         break;
595
596                         default:
597                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
598                 }
599         }
600         if (ndr_flags & NDR_BUFFERS) {
601                 int level = ndr_push_get_switch_value(ndr, r);
602                 switch (level) {
603                         case 1:
604                                 if (r->password) {
605                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
606                                 }
607                         break;
608
609                         case 2:
610                                 if (r->network) {
611                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
612                                 }
613                         break;
614
615                         case 3:
616                                 if (r->password) {
617                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
618                                 }
619                         break;
620
621                         case 5:
622                                 if (r->password) {
623                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
624                                 }
625                         break;
626
627                         case 6:
628                                 if (r->network) {
629                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
630                                 }
631                         break;
632
633                         default:
634                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
635                 }
636         }
637         return NDR_ERR_SUCCESS;
638 }
639
640 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, union netr_LogonLevel *r)
641 {
642         int level;
643         uint16_t _level;
644         TALLOC_CTX *_mem_save_password_0;
645         TALLOC_CTX *_mem_save_network_0;
646         level = ndr_pull_get_switch_value(ndr, r);
647         if (ndr_flags & NDR_SCALARS) {
648                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
649                 if (_level != level) {
650                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
651                 }
652                 switch (level) {
653                         case 1: {
654                                 uint32_t _ptr_password;
655                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
656                                 if (_ptr_password) {
657                                         NDR_PULL_ALLOC(ndr, r->password);
658                                 } else {
659                                         r->password = NULL;
660                                 }
661                         break; }
662
663                         case 2: {
664                                 uint32_t _ptr_network;
665                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
666                                 if (_ptr_network) {
667                                         NDR_PULL_ALLOC(ndr, r->network);
668                                 } else {
669                                         r->network = NULL;
670                                 }
671                         break; }
672
673                         case 3: {
674                                 uint32_t _ptr_password;
675                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
676                                 if (_ptr_password) {
677                                         NDR_PULL_ALLOC(ndr, r->password);
678                                 } else {
679                                         r->password = NULL;
680                                 }
681                         break; }
682
683                         case 5: {
684                                 uint32_t _ptr_password;
685                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
686                                 if (_ptr_password) {
687                                         NDR_PULL_ALLOC(ndr, r->password);
688                                 } else {
689                                         r->password = NULL;
690                                 }
691                         break; }
692
693                         case 6: {
694                                 uint32_t _ptr_network;
695                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
696                                 if (_ptr_network) {
697                                         NDR_PULL_ALLOC(ndr, r->network);
698                                 } else {
699                                         r->network = NULL;
700                                 }
701                         break; }
702
703                         default:
704                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
705                 }
706         }
707         if (ndr_flags & NDR_BUFFERS) {
708                 switch (level) {
709                         case 1:
710                                 if (r->password) {
711                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
712                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
713                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
714                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
715                                 }
716                         break;
717
718                         case 2:
719                                 if (r->network) {
720                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
721                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
722                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
723                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
724                                 }
725                         break;
726
727                         case 3:
728                                 if (r->password) {
729                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
730                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
731                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
732                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
733                                 }
734                         break;
735
736                         case 5:
737                                 if (r->password) {
738                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
739                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
740                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
741                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
742                                 }
743                         break;
744
745                         case 6:
746                                 if (r->network) {
747                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
748                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
749                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
750                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
751                                 }
752                         break;
753
754                         default:
755                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
756                 }
757         }
758         return NDR_ERR_SUCCESS;
759 }
760
761 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, const union netr_LogonLevel *r)
762 {
763         int level;
764         level = ndr_print_get_switch_value(ndr, r);
765         ndr_print_union(ndr, name, level, "netr_LogonLevel");
766         switch (level) {
767                 case 1:
768                         ndr_print_ptr(ndr, "password", r->password);
769                         ndr->depth++;
770                         if (r->password) {
771                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
772                         }
773                         ndr->depth--;
774                 break;
775
776                 case 2:
777                         ndr_print_ptr(ndr, "network", r->network);
778                         ndr->depth++;
779                         if (r->network) {
780                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
781                         }
782                         ndr->depth--;
783                 break;
784
785                 case 3:
786                         ndr_print_ptr(ndr, "password", r->password);
787                         ndr->depth++;
788                         if (r->password) {
789                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
790                         }
791                         ndr->depth--;
792                 break;
793
794                 case 5:
795                         ndr_print_ptr(ndr, "password", r->password);
796                         ndr->depth++;
797                         if (r->password) {
798                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
799                         }
800                         ndr->depth--;
801                 break;
802
803                 case 6:
804                         ndr_print_ptr(ndr, "network", r->network);
805                         ndr->depth++;
806                         if (r->network) {
807                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
808                         }
809                         ndr->depth--;
810                 break;
811
812                 default:
813                         ndr_print_bad_level(ndr, name, level);
814         }
815 }
816
817 _PUBLIC_ enum ndr_err_code ndr_push_netr_GroupMembership(struct ndr_push *ndr, int ndr_flags, const struct netr_GroupMembership *r)
818 {
819         if (ndr_flags & NDR_SCALARS) {
820                 NDR_CHECK(ndr_push_align(ndr, 4));
821                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
822                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
823         }
824         if (ndr_flags & NDR_BUFFERS) {
825         }
826         return NDR_ERR_SUCCESS;
827 }
828
829 _PUBLIC_ enum ndr_err_code ndr_pull_netr_GroupMembership(struct ndr_pull *ndr, int ndr_flags, struct netr_GroupMembership *r)
830 {
831         if (ndr_flags & NDR_SCALARS) {
832                 NDR_CHECK(ndr_pull_align(ndr, 4));
833                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
834                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
835         }
836         if (ndr_flags & NDR_BUFFERS) {
837         }
838         return NDR_ERR_SUCCESS;
839 }
840
841 _PUBLIC_ void ndr_print_netr_GroupMembership(struct ndr_print *ndr, const char *name, const struct netr_GroupMembership *r)
842 {
843         ndr_print_struct(ndr, name, "netr_GroupMembership");
844         ndr->depth++;
845         ndr_print_uint32(ndr, "rid", r->rid);
846         ndr_print_uint32(ndr, "attributes", r->attributes);
847         ndr->depth--;
848 }
849
850 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
851 {
852         {
853                 uint32_t _flags_save_STRUCT = ndr->flags;
854                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
855                 if (ndr_flags & NDR_SCALARS) {
856                         NDR_CHECK(ndr_push_align(ndr, 1));
857                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
858                 }
859                 if (ndr_flags & NDR_BUFFERS) {
860                 }
861                 ndr->flags = _flags_save_STRUCT;
862         }
863         return NDR_ERR_SUCCESS;
864 }
865
866 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
867 {
868         {
869                 uint32_t _flags_save_STRUCT = ndr->flags;
870                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
871                 if (ndr_flags & NDR_SCALARS) {
872                         NDR_CHECK(ndr_pull_align(ndr, 1));
873                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
874                 }
875                 if (ndr_flags & NDR_BUFFERS) {
876                 }
877                 ndr->flags = _flags_save_STRUCT;
878         }
879         return NDR_ERR_SUCCESS;
880 }
881
882 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
883 {
884         ndr_print_struct(ndr, name, "netr_UserSessionKey");
885         {
886                 uint32_t _flags_save_STRUCT = ndr->flags;
887                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
888                 ndr->depth++;
889                 ndr_print_array_uint8(ndr, "key", r->key, 16);
890                 ndr->depth--;
891                 ndr->flags = _flags_save_STRUCT;
892         }
893 }
894
895 _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
896 {
897         {
898                 uint32_t _flags_save_STRUCT = ndr->flags;
899                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
900                 if (ndr_flags & NDR_SCALARS) {
901                         NDR_CHECK(ndr_push_align(ndr, 1));
902                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
903                 }
904                 if (ndr_flags & NDR_BUFFERS) {
905                 }
906                 ndr->flags = _flags_save_STRUCT;
907         }
908         return NDR_ERR_SUCCESS;
909 }
910
911 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
912 {
913         {
914                 uint32_t _flags_save_STRUCT = ndr->flags;
915                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
916                 if (ndr_flags & NDR_SCALARS) {
917                         NDR_CHECK(ndr_pull_align(ndr, 1));
918                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
919                 }
920                 if (ndr_flags & NDR_BUFFERS) {
921                 }
922                 ndr->flags = _flags_save_STRUCT;
923         }
924         return NDR_ERR_SUCCESS;
925 }
926
927 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
928 {
929         ndr_print_struct(ndr, name, "netr_LMSessionKey");
930         {
931                 uint32_t _flags_save_STRUCT = ndr->flags;
932                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
933                 ndr->depth++;
934                 ndr_print_array_uint8(ndr, "key", r->key, 8);
935                 ndr->depth--;
936                 ndr->flags = _flags_save_STRUCT;
937         }
938 }
939
940 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
941 {
942         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
943         return NDR_ERR_SUCCESS;
944 }
945
946 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
947 {
948         uint32_t v;
949         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
950         *r = v;
951         return NDR_ERR_SUCCESS;
952 }
953
954 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
955 {
956         ndr_print_uint32(ndr, name, r);
957         ndr->depth++;
958         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
959         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
960         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
961         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
962         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
963         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
964         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
965         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
966         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
967         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
968         ndr->depth--;
969 }
970
971 static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
972 {
973         uint32_t cntr_unknown_0;
974         if (ndr_flags & NDR_SCALARS) {
975                 NDR_CHECK(ndr_push_align(ndr, 4));
976                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
977                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
978                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
979                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
980                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
981                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
982                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
983                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
984                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
985                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
986                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
987                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
988                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
989                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
990                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
991                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
992                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
993                 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
994                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
995                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
996                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
997                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
998                 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
999                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
1000                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1001                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
1002                 }
1003         }
1004         if (ndr_flags & NDR_BUFFERS) {
1005                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1006                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1007                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1008                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1009                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1010                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1011                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1012                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1013                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1014                 if (r->domain_sid) {
1015                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1016                 }
1017         }
1018         return NDR_ERR_SUCCESS;
1019 }
1020
1021 static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
1022 {
1023         uint32_t _ptr_domain_sid;
1024         TALLOC_CTX *_mem_save_domain_sid_0;
1025         uint32_t cntr_unknown_0;
1026         if (ndr_flags & NDR_SCALARS) {
1027                 NDR_CHECK(ndr_pull_align(ndr, 4));
1028                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
1029                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
1030                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
1031                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
1032                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
1033                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
1034                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1035                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1036                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1037                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1038                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1039                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1040                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
1041                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
1042                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
1043                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1044                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1045                 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
1046                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1047                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1048                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1049                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
1050                 if (_ptr_domain_sid) {
1051                         NDR_PULL_ALLOC(ndr, r->domain_sid);
1052                 } else {
1053                         r->domain_sid = NULL;
1054                 }
1055                 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1056                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
1057                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1058                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
1059                 }
1060         }
1061         if (ndr_flags & NDR_BUFFERS) {
1062                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1063                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1064                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1065                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1066                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1067                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1068                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1069                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1070                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1071                 if (r->domain_sid) {
1072                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1073                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1074                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1075                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1076                 }
1077         }
1078         return NDR_ERR_SUCCESS;
1079 }
1080
1081 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
1082 {
1083         uint32_t cntr_unknown_0;
1084         ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1085         ndr->depth++;
1086         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1087         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1088         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1089         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1090         ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1091         ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1092         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1093         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1094         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1095         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1096         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1097         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1098         ndr_print_uint16(ndr, "logon_count", r->logon_count);
1099         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1100         ndr_print_uint32(ndr, "rid", r->rid);
1101         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1102         ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1103         ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1104         ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1105         ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1106         ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1107         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1108         ndr->depth++;
1109         if (r->domain_sid) {
1110                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1111         }
1112         ndr->depth--;
1113         ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1114         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1115         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 7);
1116         ndr->depth++;
1117         for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1118                 char *idx_0=NULL;
1119                 asprintf(&idx_0, "[%d]", cntr_unknown_0);
1120                 if (idx_0) {
1121                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1122                         free(idx_0);
1123                 }
1124         }
1125         ndr->depth--;
1126         ndr->depth--;
1127 }
1128
1129 static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
1130 {
1131         if (ndr_flags & NDR_SCALARS) {
1132                 NDR_CHECK(ndr_push_align(ndr, 4));
1133                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1134         }
1135         if (ndr_flags & NDR_BUFFERS) {
1136                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1137         }
1138         return NDR_ERR_SUCCESS;
1139 }
1140
1141 static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
1142 {
1143         if (ndr_flags & NDR_SCALARS) {
1144                 NDR_CHECK(ndr_pull_align(ndr, 4));
1145                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1146         }
1147         if (ndr_flags & NDR_BUFFERS) {
1148                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1149         }
1150         return NDR_ERR_SUCCESS;
1151 }
1152
1153 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
1154 {
1155         ndr_print_struct(ndr, name, "netr_SamInfo2");
1156         ndr->depth++;
1157         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1158         ndr->depth--;
1159 }
1160
1161 static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
1162 {
1163         if (ndr_flags & NDR_SCALARS) {
1164                 NDR_CHECK(ndr_push_align(ndr, 4));
1165                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1166                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribute));
1167         }
1168         if (ndr_flags & NDR_BUFFERS) {
1169                 if (r->sid) {
1170                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1171                 }
1172         }
1173         return NDR_ERR_SUCCESS;
1174 }
1175
1176 static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
1177 {
1178         uint32_t _ptr_sid;
1179         TALLOC_CTX *_mem_save_sid_0;
1180         if (ndr_flags & NDR_SCALARS) {
1181                 NDR_CHECK(ndr_pull_align(ndr, 4));
1182                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1183                 if (_ptr_sid) {
1184                         NDR_PULL_ALLOC(ndr, r->sid);
1185                 } else {
1186                         r->sid = NULL;
1187                 }
1188                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribute));
1189         }
1190         if (ndr_flags & NDR_BUFFERS) {
1191                 if (r->sid) {
1192                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1193                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1194                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1195                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1196                 }
1197         }
1198         return NDR_ERR_SUCCESS;
1199 }
1200
1201 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
1202 {
1203         ndr_print_struct(ndr, name, "netr_SidAttr");
1204         ndr->depth++;
1205         ndr_print_ptr(ndr, "sid", r->sid);
1206         ndr->depth++;
1207         if (r->sid) {
1208                 ndr_print_dom_sid2(ndr, "sid", r->sid);
1209         }
1210         ndr->depth--;
1211         ndr_print_uint32(ndr, "attribute", r->attribute);
1212         ndr->depth--;
1213 }
1214
1215 _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
1216 {
1217         uint32_t cntr_sids_1;
1218         if (ndr_flags & NDR_SCALARS) {
1219                 NDR_CHECK(ndr_push_align(ndr, 4));
1220                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1221                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1222                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1223         }
1224         if (ndr_flags & NDR_BUFFERS) {
1225                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1226                 if (r->sids) {
1227                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1228                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1229                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1230                         }
1231                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1232                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1233                         }
1234                 }
1235         }
1236         return NDR_ERR_SUCCESS;
1237 }
1238
1239 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
1240 {
1241         uint32_t _ptr_sids;
1242         uint32_t cntr_sids_1;
1243         TALLOC_CTX *_mem_save_sids_0;
1244         TALLOC_CTX *_mem_save_sids_1;
1245         if (ndr_flags & NDR_SCALARS) {
1246                 NDR_CHECK(ndr_pull_align(ndr, 4));
1247                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1248                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1249                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1250                 if (_ptr_sids) {
1251                         NDR_PULL_ALLOC(ndr, r->sids);
1252                 } else {
1253                         r->sids = NULL;
1254                 }
1255         }
1256         if (ndr_flags & NDR_BUFFERS) {
1257                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1258                 if (r->sids) {
1259                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1260                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1261                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1262                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1263                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1264                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1265                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1266                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1267                         }
1268                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1269                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1270                         }
1271                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1272                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1273                 }
1274                 if (r->sids) {
1275                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1276                 }
1277         }
1278         return NDR_ERR_SUCCESS;
1279 }
1280
1281 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
1282 {
1283         uint32_t cntr_sids_1;
1284         ndr_print_struct(ndr, name, "netr_SamInfo3");
1285         ndr->depth++;
1286         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1287         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1288         ndr_print_ptr(ndr, "sids", r->sids);
1289         ndr->depth++;
1290         if (r->sids) {
1291                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->sidcount);
1292                 ndr->depth++;
1293                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1294                         char *idx_1=NULL;
1295                         asprintf(&idx_1, "[%d]", cntr_sids_1);
1296                         if (idx_1) {
1297                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1298                                 free(idx_1);
1299                         }
1300                 }
1301                 ndr->depth--;
1302         }
1303         ndr->depth--;
1304         ndr->depth--;
1305 }
1306
1307 static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
1308 {
1309         uint32_t cntr_sids_1;
1310         uint32_t cntr_unknown4_0;
1311         if (ndr_flags & NDR_SCALARS) {
1312                 NDR_CHECK(ndr_push_align(ndr, 4));
1313                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1314                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1315                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1316                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1317                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1318                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1319                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1320                 }
1321         }
1322         if (ndr_flags & NDR_BUFFERS) {
1323                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1324                 if (r->sids) {
1325                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1326                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1327                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1328                         }
1329                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1330                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1331                         }
1332                 }
1333                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1334                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1335         }
1336         return NDR_ERR_SUCCESS;
1337 }
1338
1339 static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
1340 {
1341         uint32_t _ptr_sids;
1342         uint32_t cntr_sids_1;
1343         TALLOC_CTX *_mem_save_sids_0;
1344         TALLOC_CTX *_mem_save_sids_1;
1345         uint32_t cntr_unknown4_0;
1346         if (ndr_flags & NDR_SCALARS) {
1347                 NDR_CHECK(ndr_pull_align(ndr, 4));
1348                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1349                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1350                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1351                 if (_ptr_sids) {
1352                         NDR_PULL_ALLOC(ndr, r->sids);
1353                 } else {
1354                         r->sids = NULL;
1355                 }
1356                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1357                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1358                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1359                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1360                 }
1361         }
1362         if (ndr_flags & NDR_BUFFERS) {
1363                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1364                 if (r->sids) {
1365                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1366                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1367                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1368                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1369                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1370                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1371                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1372                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1373                         }
1374                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1375                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1376                         }
1377                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1378                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1379                 }
1380                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1381                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1382                 if (r->sids) {
1383                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1384                 }
1385         }
1386         return NDR_ERR_SUCCESS;
1387 }
1388
1389 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
1390 {
1391         uint32_t cntr_sids_1;
1392         uint32_t cntr_unknown4_0;
1393         ndr_print_struct(ndr, name, "netr_SamInfo6");
1394         ndr->depth++;
1395         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1396         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1397         ndr_print_ptr(ndr, "sids", r->sids);
1398         ndr->depth++;
1399         if (r->sids) {
1400                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->sidcount);
1401                 ndr->depth++;
1402                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1403                         char *idx_1=NULL;
1404                         asprintf(&idx_1, "[%d]", cntr_sids_1);
1405                         if (idx_1) {
1406                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1407                                 free(idx_1);
1408                         }
1409                 }
1410                 ndr->depth--;
1411         }
1412         ndr->depth--;
1413         ndr_print_lsa_String(ndr, "forest", &r->forest);
1414         ndr_print_lsa_String(ndr, "principle", &r->principle);
1415         ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", 20);
1416         ndr->depth++;
1417         for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1418                 char *idx_0=NULL;
1419                 asprintf(&idx_0, "[%d]", cntr_unknown4_0);
1420                 if (idx_0) {
1421                         ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1422                         free(idx_0);
1423                 }
1424         }
1425         ndr->depth--;
1426         ndr->depth--;
1427 }
1428
1429 static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
1430 {
1431         uint32_t cntr_expansionroom_0;
1432         if (ndr_flags & NDR_SCALARS) {
1433                 NDR_CHECK(ndr_push_align(ndr, 4));
1434                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1435                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1436                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1437                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1438                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1439                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1440                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1441                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1442                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1443                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1444                 }
1445                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1446                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1447                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1448                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1449         }
1450         if (ndr_flags & NDR_BUFFERS) {
1451                 if (r->pac) {
1452                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1453                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1454                 }
1455                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1456                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1457                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1458                 if (r->auth) {
1459                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1460                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1461                 }
1462                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1463                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1464                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1465                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1466         }
1467         return NDR_ERR_SUCCESS;
1468 }
1469
1470 static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
1471 {
1472         uint32_t _ptr_pac;
1473         TALLOC_CTX *_mem_save_pac_0;
1474         uint32_t _ptr_auth;
1475         TALLOC_CTX *_mem_save_auth_0;
1476         uint32_t cntr_expansionroom_0;
1477         if (ndr_flags & NDR_SCALARS) {
1478                 NDR_CHECK(ndr_pull_align(ndr, 4));
1479                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1480                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1481                 if (_ptr_pac) {
1482                         NDR_PULL_ALLOC(ndr, r->pac);
1483                 } else {
1484                         r->pac = NULL;
1485                 }
1486                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1487                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1488                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1489                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1490                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1491                 if (_ptr_auth) {
1492                         NDR_PULL_ALLOC(ndr, r->auth);
1493                 } else {
1494                         r->auth = NULL;
1495                 }
1496                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1497                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1498                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1499                 }
1500                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1501                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1502                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1503                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1504         }
1505         if (ndr_flags & NDR_BUFFERS) {
1506                 if (r->pac) {
1507                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1508                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1509                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1510                         NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1511                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1512                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1513                 }
1514                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1515                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1516                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1517                 if (r->auth) {
1518                         _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1519                         NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1520                         NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1521                         NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1522                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1523                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1524                 }
1525                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1526                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1527                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1528                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1529                 if (r->pac) {
1530                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1531                 }
1532                 if (r->auth) {
1533                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1534                 }
1535         }
1536         return NDR_ERR_SUCCESS;
1537 }
1538
1539 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
1540 {
1541         uint32_t cntr_expansionroom_0;
1542         ndr_print_struct(ndr, name, "netr_PacInfo");
1543         ndr->depth++;
1544         ndr_print_uint32(ndr, "pac_size", r->pac_size);
1545         ndr_print_ptr(ndr, "pac", r->pac);
1546         ndr->depth++;
1547         if (r->pac) {
1548                 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1549         }
1550         ndr->depth--;
1551         ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1552         ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1553         ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1554         ndr_print_uint32(ndr, "auth_size", r->auth_size);
1555         ndr_print_ptr(ndr, "auth", r->auth);
1556         ndr->depth++;
1557         if (r->auth) {
1558                 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1559         }
1560         ndr->depth--;
1561         ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1562         ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", 10);
1563         ndr->depth++;
1564         for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1565                 char *idx_0=NULL;
1566                 asprintf(&idx_0, "[%d]", cntr_expansionroom_0);
1567                 if (idx_0) {
1568                         ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1569                         free(idx_0);
1570                 }
1571         }
1572         ndr->depth--;
1573         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1574         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1575         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1576         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1577         ndr->depth--;
1578 }
1579
1580 _PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
1581 {
1582         if (ndr_flags & NDR_SCALARS) {
1583                 int level = ndr_push_get_switch_value(ndr, r);
1584                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1585                 switch (level) {
1586                         case 2:
1587                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1588                         break;
1589
1590                         case 3:
1591                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1592                         break;
1593
1594                         case 4:
1595                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1596                         break;
1597
1598                         case 5:
1599                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1600                         break;
1601
1602                         case 6:
1603                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1604                         break;
1605
1606                         default:
1607                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1608                 }
1609         }
1610         if (ndr_flags & NDR_BUFFERS) {
1611                 int level = ndr_push_get_switch_value(ndr, r);
1612                 switch (level) {
1613                         case 2:
1614                                 if (r->sam2) {
1615                                         NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1616                                 }
1617                         break;
1618
1619                         case 3:
1620                                 if (r->sam3) {
1621                                         NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1622                                 }
1623                         break;
1624
1625                         case 4:
1626                                 if (r->pac) {
1627                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1628                                 }
1629                         break;
1630
1631                         case 5:
1632                                 if (r->pac) {
1633                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1634                                 }
1635                         break;
1636
1637                         case 6:
1638                                 if (r->sam6) {
1639                                         NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1640                                 }
1641                         break;
1642
1643                         default:
1644                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1645                 }
1646         }
1647         return NDR_ERR_SUCCESS;
1648 }
1649
1650 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
1651 {
1652         int level;
1653         uint16_t _level;
1654         TALLOC_CTX *_mem_save_sam2_0;
1655         TALLOC_CTX *_mem_save_sam3_0;
1656         TALLOC_CTX *_mem_save_pac_0;
1657         TALLOC_CTX *_mem_save_sam6_0;
1658         level = ndr_pull_get_switch_value(ndr, r);
1659         if (ndr_flags & NDR_SCALARS) {
1660                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1661                 if (_level != level) {
1662                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1663                 }
1664                 switch (level) {
1665                         case 2: {
1666                                 uint32_t _ptr_sam2;
1667                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1668                                 if (_ptr_sam2) {
1669                                         NDR_PULL_ALLOC(ndr, r->sam2);
1670                                 } else {
1671                                         r->sam2 = NULL;
1672                                 }
1673                         break; }
1674
1675                         case 3: {
1676                                 uint32_t _ptr_sam3;
1677                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1678                                 if (_ptr_sam3) {
1679                                         NDR_PULL_ALLOC(ndr, r->sam3);
1680                                 } else {
1681                                         r->sam3 = NULL;
1682                                 }
1683                         break; }
1684
1685                         case 4: {
1686                                 uint32_t _ptr_pac;
1687                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1688                                 if (_ptr_pac) {
1689                                         NDR_PULL_ALLOC(ndr, r->pac);
1690                                 } else {
1691                                         r->pac = NULL;
1692                                 }
1693                         break; }
1694
1695                         case 5: {
1696                                 uint32_t _ptr_pac;
1697                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1698                                 if (_ptr_pac) {
1699                                         NDR_PULL_ALLOC(ndr, r->pac);
1700                                 } else {
1701                                         r->pac = NULL;
1702                                 }
1703                         break; }
1704
1705                         case 6: {
1706                                 uint32_t _ptr_sam6;
1707                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1708                                 if (_ptr_sam6) {
1709                                         NDR_PULL_ALLOC(ndr, r->sam6);
1710                                 } else {
1711                                         r->sam6 = NULL;
1712                                 }
1713                         break; }
1714
1715                         default:
1716                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1717                 }
1718         }
1719         if (ndr_flags & NDR_BUFFERS) {
1720                 switch (level) {
1721                         case 2:
1722                                 if (r->sam2) {
1723                                         _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1724                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1725                                         NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1726                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1727                                 }
1728                         break;
1729
1730                         case 3:
1731                                 if (r->sam3) {
1732                                         _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1733                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1734                                         NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1735                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1736                                 }
1737                         break;
1738
1739                         case 4:
1740                                 if (r->pac) {
1741                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1742                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1743                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1744                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1745                                 }
1746                         break;
1747
1748                         case 5:
1749                                 if (r->pac) {
1750                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1751                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1752                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1753                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1754                                 }
1755                         break;
1756
1757                         case 6:
1758                                 if (r->sam6) {
1759                                         _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1760                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1761                                         NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1762                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1763                                 }
1764                         break;
1765
1766                         default:
1767                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1768                 }
1769         }
1770         return NDR_ERR_SUCCESS;
1771 }
1772
1773 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
1774 {
1775         int level;
1776         level = ndr_print_get_switch_value(ndr, r);
1777         ndr_print_union(ndr, name, level, "netr_Validation");
1778         switch (level) {
1779                 case 2:
1780                         ndr_print_ptr(ndr, "sam2", r->sam2);
1781                         ndr->depth++;
1782                         if (r->sam2) {
1783                                 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
1784                         }
1785                         ndr->depth--;
1786                 break;
1787
1788                 case 3:
1789                         ndr_print_ptr(ndr, "sam3", r->sam3);
1790                         ndr->depth++;
1791                         if (r->sam3) {
1792                                 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
1793                         }
1794                         ndr->depth--;
1795                 break;
1796
1797                 case 4:
1798                         ndr_print_ptr(ndr, "pac", r->pac);
1799                         ndr->depth++;
1800                         if (r->pac) {
1801                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1802                         }
1803                         ndr->depth--;
1804                 break;
1805
1806                 case 5:
1807                         ndr_print_ptr(ndr, "pac", r->pac);
1808                         ndr->depth++;
1809                         if (r->pac) {
1810                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1811                         }
1812                         ndr->depth--;
1813                 break;
1814
1815                 case 6:
1816                         ndr_print_ptr(ndr, "sam6", r->sam6);
1817                         ndr->depth++;
1818                         if (r->sam6) {
1819                                 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
1820                         }
1821                         ndr->depth--;
1822                 break;
1823
1824                 default:
1825                         ndr_print_bad_level(ndr, name, level);
1826         }
1827 }
1828
1829 _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
1830 {
1831         {
1832                 uint32_t _flags_save_STRUCT = ndr->flags;
1833                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1834                 if (ndr_flags & NDR_SCALARS) {
1835                         NDR_CHECK(ndr_push_align(ndr, 1));
1836                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1837                 }
1838                 if (ndr_flags & NDR_BUFFERS) {
1839                 }
1840                 ndr->flags = _flags_save_STRUCT;
1841         }
1842         return NDR_ERR_SUCCESS;
1843 }
1844
1845 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
1846 {
1847         {
1848                 uint32_t _flags_save_STRUCT = ndr->flags;
1849                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1850                 if (ndr_flags & NDR_SCALARS) {
1851                         NDR_CHECK(ndr_pull_align(ndr, 1));
1852                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1853                 }
1854                 if (ndr_flags & NDR_BUFFERS) {
1855                 }
1856                 ndr->flags = _flags_save_STRUCT;
1857         }
1858         return NDR_ERR_SUCCESS;
1859 }
1860
1861 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
1862 {
1863         ndr_print_struct(ndr, name, "netr_Credential");
1864         {
1865                 uint32_t _flags_save_STRUCT = ndr->flags;
1866                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1867                 ndr->depth++;
1868                 ndr_print_array_uint8(ndr, "data", r->data, 8);
1869                 ndr->depth--;
1870                 ndr->flags = _flags_save_STRUCT;
1871         }
1872 }
1873
1874 _PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
1875 {
1876         if (ndr_flags & NDR_SCALARS) {
1877                 NDR_CHECK(ndr_push_align(ndr, 4));
1878                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1879                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
1880         }
1881         if (ndr_flags & NDR_BUFFERS) {
1882         }
1883         return NDR_ERR_SUCCESS;
1884 }
1885
1886 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
1887 {
1888         if (ndr_flags & NDR_SCALARS) {
1889                 NDR_CHECK(ndr_pull_align(ndr, 4));
1890                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1891                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
1892         }
1893         if (ndr_flags & NDR_BUFFERS) {
1894         }
1895         return NDR_ERR_SUCCESS;
1896 }
1897
1898 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
1899 {
1900         ndr_print_struct(ndr, name, "netr_Authenticator");
1901         ndr->depth++;
1902         ndr_print_netr_Credential(ndr, "cred", &r->cred);
1903         ndr_print_time_t(ndr, "timestamp", r->timestamp);
1904         ndr->depth--;
1905 }
1906
1907 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_USER *r)
1908 {
1909         if (ndr_flags & NDR_SCALARS) {
1910                 NDR_CHECK(ndr_push_align(ndr, 4));
1911                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
1912                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1913                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1914                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1915                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1916                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
1917                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
1918                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
1919                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
1920         }
1921         if (ndr_flags & NDR_BUFFERS) {
1922                 if (r->account_name) {
1923                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1924                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1925                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1926                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
1927                 }
1928                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1929                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1930                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1931                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1932         }
1933         return NDR_ERR_SUCCESS;
1934 }
1935
1936 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
1937 {
1938         uint32_t _ptr_account_name;
1939         TALLOC_CTX *_mem_save_account_name_0;
1940         if (ndr_flags & NDR_SCALARS) {
1941                 NDR_CHECK(ndr_pull_align(ndr, 4));
1942                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
1943                 if (_ptr_account_name) {
1944                         NDR_PULL_ALLOC(ndr, r->account_name);
1945                 } else {
1946                         r->account_name = NULL;
1947                 }
1948                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1949                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1950                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1951                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1952                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
1953                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
1954                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
1955                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
1956         }
1957         if (ndr_flags & NDR_BUFFERS) {
1958                 if (r->account_name) {
1959                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1960                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
1961                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
1962                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
1963                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
1964                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
1965                         }
1966                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
1967                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
1968                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
1969                 }
1970                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1971                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1972                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1973                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1974         }
1975         return NDR_ERR_SUCCESS;
1976 }
1977
1978 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
1979 {
1980         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
1981         ndr->depth++;
1982         ndr_print_ptr(ndr, "account_name", r->account_name);
1983         ndr->depth++;
1984         if (r->account_name) {
1985                 ndr_print_string(ndr, "account_name", r->account_name);
1986         }
1987         ndr->depth--;
1988         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1989         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1990         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1991         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1992         ndr_print_uint32(ndr, "unknown5", r->unknown5);
1993         ndr_print_uint32(ndr, "unknown6", r->unknown6);
1994         ndr_print_uint32(ndr, "unknown7", r->unknown7);
1995         ndr_print_uint32(ndr, "unknown8", r->unknown8);
1996         ndr->depth--;
1997 }
1998
1999 static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
2000 {
2001         if (ndr_flags & NDR_SCALARS) {
2002                 NDR_CHECK(ndr_push_align(ndr, 4));
2003                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2004                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2005                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
2006                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2007         }
2008         if (ndr_flags & NDR_BUFFERS) {
2009                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
2010         }
2011         return NDR_ERR_SUCCESS;
2012 }
2013
2014 static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
2015 {
2016         if (ndr_flags & NDR_SCALARS) {
2017                 NDR_CHECK(ndr_pull_align(ndr, 4));
2018                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
2019                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
2020                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
2021                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2022         }
2023         if (ndr_flags & NDR_BUFFERS) {
2024                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
2025         }
2026         return NDR_ERR_SUCCESS;
2027 }
2028
2029 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
2030 {
2031         ndr_print_struct(ndr, name, "netr_USER_KEY16");
2032         ndr->depth++;
2033         ndr_print_uint16(ndr, "length", r->length);
2034         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
2035         ndr_print_uint32(ndr, "flags", r->flags);
2036         ndr_print_samr_Password(ndr, "pwd", &r->pwd);
2037         ndr->depth--;
2038 }
2039
2040 static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
2041 {
2042         if (ndr_flags & NDR_SCALARS) {
2043                 NDR_CHECK(ndr_push_align(ndr, 4));
2044                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2045                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2046                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2047                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2048                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2049                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2050                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2051                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2052         }
2053         if (ndr_flags & NDR_BUFFERS) {
2054         }
2055         return NDR_ERR_SUCCESS;
2056 }
2057
2058 static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
2059 {
2060         if (ndr_flags & NDR_SCALARS) {
2061                 NDR_CHECK(ndr_pull_align(ndr, 4));
2062                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
2063                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2064                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2065                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2066                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2067                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2068                 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2069                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2070                 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2071                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2072         }
2073         if (ndr_flags & NDR_BUFFERS) {
2074         }
2075         return NDR_ERR_SUCCESS;
2076 }
2077
2078 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
2079 {
2080         ndr_print_struct(ndr, name, "netr_PasswordHistory");
2081         ndr->depth++;
2082         ndr_print_uint16(ndr, "nt_length", r->nt_length);
2083         ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
2084         ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2085         ndr_print_uint16(ndr, "lm_length", r->lm_length);
2086         ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
2087         ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2088         ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2089         ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2090         ndr->depth--;
2091 }
2092
2093 static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
2094 {
2095         if (ndr_flags & NDR_SCALARS) {
2096                 NDR_CHECK(ndr_push_align(ndr, 4));
2097                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2098                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2099                 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2100         }
2101         if (ndr_flags & NDR_BUFFERS) {
2102                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2103                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2104         }
2105         return NDR_ERR_SUCCESS;
2106 }
2107
2108 static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
2109 {
2110         if (ndr_flags & NDR_SCALARS) {
2111                 NDR_CHECK(ndr_pull_align(ndr, 4));
2112                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2113                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2114                 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2115         }
2116         if (ndr_flags & NDR_BUFFERS) {
2117                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2118                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2119         }
2120         return NDR_ERR_SUCCESS;
2121 }
2122
2123 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
2124 {
2125         ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2126         ndr->depth++;
2127         ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2128         ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2129         ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
2130         ndr->depth--;
2131 }
2132
2133 static enum ndr_err_code ndr_push_netr_USER_KEY_UNION(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY_UNION *r)
2134 {
2135         if (ndr_flags & NDR_SCALARS) {
2136                 NDR_CHECK(ndr_push_align(ndr, 4));
2137                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2138         }
2139         if (ndr_flags & NDR_BUFFERS) {
2140                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2141         }
2142         return NDR_ERR_SUCCESS;
2143 }
2144
2145 static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
2146 {
2147         if (ndr_flags & NDR_SCALARS) {
2148                 NDR_CHECK(ndr_pull_align(ndr, 4));
2149                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2150         }
2151         if (ndr_flags & NDR_BUFFERS) {
2152                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2153         }
2154         return NDR_ERR_SUCCESS;
2155 }
2156
2157 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
2158 {
2159         ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2160         ndr->depth++;
2161         ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2162         ndr->depth--;
2163 }
2164
2165 _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
2166 {
2167         if (ndr_flags & NDR_SCALARS) {
2168                 NDR_CHECK(ndr_push_align(ndr, 4));
2169                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2170                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2171         }
2172         if (ndr_flags & NDR_BUFFERS) {
2173                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2174         }
2175         return NDR_ERR_SUCCESS;
2176 }
2177
2178 _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
2179 {
2180         if (ndr_flags & NDR_SCALARS) {
2181                 NDR_CHECK(ndr_pull_align(ndr, 4));
2182                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2183                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2184         }
2185         if (ndr_flags & NDR_BUFFERS) {
2186                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2187         }
2188         return NDR_ERR_SUCCESS;
2189 }
2190
2191 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
2192 {
2193         ndr_print_struct(ndr, name, "netr_USER_KEYS");
2194         ndr->depth++;
2195         ndr_print_uint32(ndr, "version", r->version);
2196         ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2197         ndr->depth--;
2198 }
2199
2200 static enum ndr_err_code ndr_push_netr_USER_PRIVATE_INFO(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_PRIVATE_INFO *r)
2201 {
2202         if (ndr_flags & NDR_SCALARS) {
2203                 NDR_CHECK(ndr_push_align(ndr, 4));
2204                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2205                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2206                 {
2207                         uint32_t _flags_save_uint8 = ndr->flags;
2208                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2209                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
2210                         ndr->flags = _flags_save_uint8;
2211                 }
2212         }
2213         if (ndr_flags & NDR_BUFFERS) {
2214                 {
2215                         uint32_t _flags_save_uint8 = ndr->flags;
2216                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2217                         if (r->SensitiveData) {
2218                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2219                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2220                         }
2221                         ndr->flags = _flags_save_uint8;
2222                 }
2223         }
2224         return NDR_ERR_SUCCESS;
2225 }
2226
2227 static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
2228 {
2229         uint32_t _ptr_SensitiveData;
2230         TALLOC_CTX *_mem_save_SensitiveData_0;
2231         if (ndr_flags & NDR_SCALARS) {
2232                 NDR_CHECK(ndr_pull_align(ndr, 4));
2233                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2234                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2235                 {
2236                         uint32_t _flags_save_uint8 = ndr->flags;
2237                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2238                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2239                         if (_ptr_SensitiveData) {
2240                                 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2241                         } else {
2242                                 r->SensitiveData = NULL;
2243                         }
2244                         ndr->flags = _flags_save_uint8;
2245                 }
2246         }
2247         if (ndr_flags & NDR_BUFFERS) {
2248                 {
2249                         uint32_t _flags_save_uint8 = ndr->flags;
2250                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2251                         if (r->SensitiveData) {
2252                                 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2253                                 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2254                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2255                                 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2256                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2257                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2258                         }
2259                         ndr->flags = _flags_save_uint8;
2260                 }
2261                 if (r->SensitiveData) {
2262                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2263                 }
2264         }
2265         return NDR_ERR_SUCCESS;
2266 }
2267
2268 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
2269 {
2270         ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2271         ndr->depth++;
2272         ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2273         ndr_print_uint32(ndr, "DataLength", r->DataLength);
2274         ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2275         ndr->depth++;
2276         if (r->SensitiveData) {
2277                 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2278         }
2279         ndr->depth--;
2280         ndr->depth--;
2281 }
2282
2283 static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
2284 {
2285         if (ndr_flags & NDR_SCALARS) {
2286                 NDR_CHECK(ndr_push_align(ndr, 4));
2287                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2288                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2289                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2290                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2291                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2292                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2293                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2294                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2295                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2296                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2297                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2298                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2299                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2300                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2301                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2302                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2303                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2304                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2305                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2306                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2307                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2308                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2309                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2310                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2311                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2312                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2313                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2314                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2315                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2316                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2317                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2318                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2319                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2320                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2321                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2322                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2323                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2324         }
2325         if (ndr_flags & NDR_BUFFERS) {
2326                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2327                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2328                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2329                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2330                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2331                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2332                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2333                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2334                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2335                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2336                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2337                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2338                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2339                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2340                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2341                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2342                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2343                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2344         }
2345         return NDR_ERR_SUCCESS;
2346 }
2347
2348 static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
2349 {
2350         if (ndr_flags & NDR_SCALARS) {
2351                 NDR_CHECK(ndr_pull_align(ndr, 4));
2352                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2353                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2354                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2355                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2356                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2357                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2358                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2359                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2360                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2361                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2362                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2363                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2364                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2365                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2366                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2367                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2368                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2369                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2370                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2371                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2372                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2373                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2374                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2375                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2376                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2377                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2378                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2379                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2380                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2381                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2382                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2383                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2384                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2385                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2386                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2387                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2388                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2389         }
2390         if (ndr_flags & NDR_BUFFERS) {
2391                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2392                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2393                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2394                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2395                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2396                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2397                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2398                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2399                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2400                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2401                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2402                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2403                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2404                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2405                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2406                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2407                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2408                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2409         }
2410         return NDR_ERR_SUCCESS;
2411 }
2412
2413 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
2414 {
2415         ndr_print_struct(ndr, name, "netr_DELTA_USER");
2416         ndr->depth++;
2417         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2418         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2419         ndr_print_uint32(ndr, "rid", r->rid);
2420         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2421         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2422         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2423         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2424         ndr_print_lsa_String(ndr, "description", &r->description);
2425         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2426         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2427         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2428         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2429         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2430         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2431         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2432         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2433         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2434         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2435         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2436         ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2437         ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2438         ndr_print_uint8(ndr, "password_expired", r->password_expired);
2439         ndr_print_lsa_String(ndr, "comment", &r->comment);
2440         ndr_print_lsa_String(ndr, "parameters", &r->parameters);
2441         ndr_print_uint16(ndr, "country_code", r->country_code);
2442         ndr_print_uint16(ndr, "code_page", r->code_page);
2443         ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2444         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2445         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2446         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2447         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2448         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2449         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2450         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2451         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2452         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2453         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2454         ndr->depth--;
2455 }
2456
2457 static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
2458 {
2459         if (ndr_flags & NDR_SCALARS) {
2460                 NDR_CHECK(ndr_push_align(ndr, 4));
2461                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2462                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2463                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2464                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2465                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2466                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2467                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2468                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2469                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2470                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2471                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2472                 NDR_CHECK(ndr_push_netr_AcctLockStr(ndr, NDR_SCALARS, &r->account_lockout));
2473                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2474                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2475                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2476                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2477                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2478                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2479                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2480         }
2481         if (ndr_flags & NDR_BUFFERS) {
2482                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2483                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2484                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2485                 NDR_CHECK(ndr_push_netr_AcctLockStr(ndr, NDR_BUFFERS, &r->account_lockout));
2486                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2487                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2488                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2489         }
2490         return NDR_ERR_SUCCESS;
2491 }
2492
2493 static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
2494 {
2495         if (ndr_flags & NDR_SCALARS) {
2496                 NDR_CHECK(ndr_pull_align(ndr, 4));
2497                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2498                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2499                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2500                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2501                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2502                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2503                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2504                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2505                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2506                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2507                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2508                 NDR_CHECK(ndr_pull_netr_AcctLockStr(ndr, NDR_SCALARS, &r->account_lockout));
2509                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2510                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2511                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2512                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2513                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2514                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2515                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2516         }
2517         if (ndr_flags & NDR_BUFFERS) {
2518                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2519                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2520                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2521                 NDR_CHECK(ndr_pull_netr_AcctLockStr(ndr, NDR_BUFFERS, &r->account_lockout));
2522                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2523                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2524                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2525         }
2526         return NDR_ERR_SUCCESS;
2527 }
2528
2529 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
2530 {
2531         ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2532         ndr->depth++;
2533         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2534         ndr_print_lsa_String(ndr, "comment", &r->comment);
2535         ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2536         ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2537         ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2538         ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2539         ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2540         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2541         ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2542         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2543         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2544         ndr_print_netr_AcctLockStr(ndr, "account_lockout", &r->account_lockout);
2545         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2546         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2547         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2548         ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2549         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2550         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2551         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2552         ndr->depth--;
2553 }
2554
2555 static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
2556 {
2557         if (ndr_flags & NDR_SCALARS) {
2558                 NDR_CHECK(ndr_push_align(ndr, 4));
2559                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2560                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2561                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2562                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2563                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2564                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2565                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2566                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2567                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2568                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2569                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2570                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2571                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2572                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2573         }
2574         if (ndr_flags & NDR_BUFFERS) {
2575                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2576                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2577                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2578                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2579                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2580                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2581                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2582         }
2583         return NDR_ERR_SUCCESS;
2584 }
2585
2586 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
2587 {
2588         if (ndr_flags & NDR_SCALARS) {
2589                 NDR_CHECK(ndr_pull_align(ndr, 4));
2590                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2591                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2592                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2593                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2594                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2595                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2596                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2597                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2598                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2599                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2600                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2601                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2602                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2603                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2604         }
2605         if (ndr_flags & NDR_BUFFERS) {
2606                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2607                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2608                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2609                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2610                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2611                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2612                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2613         }
2614         return NDR_ERR_SUCCESS;
2615 }
2616
2617 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
2618 {
2619         ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2620         ndr->depth++;
2621         ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2622         ndr_print_uint32(ndr, "rid", r->rid);
2623         ndr_print_uint32(ndr, "attributes", r->attributes);
2624         ndr_print_lsa_String(ndr, "description", &r->description);
2625         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2626         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2627         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2628         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2629         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2630         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2631         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2632         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2633         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2634         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2635         ndr->depth--;
2636 }
2637
2638 static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
2639 {
2640         if (ndr_flags & NDR_SCALARS) {
2641                 NDR_CHECK(ndr_push_align(ndr, 4));
2642                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2643                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2644                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2645                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2646                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2647                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2648                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2649                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2650                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2651                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2652         }
2653         if (ndr_flags & NDR_BUFFERS) {
2654                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2655                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2656                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2657                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2658                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2659                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2660         }
2661         return NDR_ERR_SUCCESS;
2662 }
2663
2664 static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
2665 {
2666         if (ndr_flags & NDR_SCALARS) {
2667                 NDR_CHECK(ndr_pull_align(ndr, 4));
2668                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2669                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2670                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2671                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2672                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2673                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2674                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2675                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2676                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2677                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2678         }
2679         if (ndr_flags & NDR_BUFFERS) {
2680                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2681                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2682                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2683                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2684                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2685                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2686         }
2687         return NDR_ERR_SUCCESS;
2688 }
2689
2690 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
2691 {
2692         ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2693         ndr->depth++;
2694         ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2695         ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2696         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2697         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2698         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2699         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2700         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2701         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2702         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2703         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2704         ndr->depth--;
2705 }
2706
2707 static enum ndr_err_code ndr_push_netr_DELTA_GROUP_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP_MEMBER *r)
2708 {
2709         uint32_t cntr_rids_1;
2710         uint32_t cntr_attribs_1;
2711         if (ndr_flags & NDR_SCALARS) {
2712                 NDR_CHECK(ndr_push_align(ndr, 4));
2713                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2714                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2715                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2716                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2717                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2718                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2719                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2720         }
2721         if (ndr_flags & NDR_BUFFERS) {
2722                 if (r->rids) {
2723                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2724                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2725                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2726                         }
2727                 }
2728                 if (r->attribs) {
2729                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2730                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2731                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2732                         }
2733                 }
2734         }
2735         return NDR_ERR_SUCCESS;
2736 }
2737
2738 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
2739 {
2740         uint32_t _ptr_rids;
2741         uint32_t cntr_rids_1;
2742         TALLOC_CTX *_mem_save_rids_0;
2743         TALLOC_CTX *_mem_save_rids_1;
2744         uint32_t _ptr_attribs;
2745         uint32_t cntr_attribs_1;
2746         TALLOC_CTX *_mem_save_attribs_0;
2747         TALLOC_CTX *_mem_save_attribs_1;
2748         if (ndr_flags & NDR_SCALARS) {
2749                 NDR_CHECK(ndr_pull_align(ndr, 4));
2750                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2751                 if (_ptr_rids) {
2752                         NDR_PULL_ALLOC(ndr, r->rids);
2753                 } else {
2754                         r->rids = NULL;
2755                 }
2756                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2757                 if (_ptr_attribs) {
2758                         NDR_PULL_ALLOC(ndr, r->attribs);
2759                 } else {
2760                         r->attribs = NULL;
2761                 }
2762                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2763                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2764                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2765                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2766                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2767         }
2768         if (ndr_flags & NDR_BUFFERS) {
2769                 if (r->rids) {
2770                         _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2771                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2772                         NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2773                         NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2774                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2775                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2776                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2777                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2778                         }
2779                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2780                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2781                 }
2782                 if (r->attribs) {
2783                         _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2784                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2785                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2786                         NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2787                         _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2788                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2789                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2790                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2791                         }
2792                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2793                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2794                 }
2795                 if (r->rids) {
2796                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2797                 }
2798                 if (r->attribs) {
2799                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
2800                 }
2801         }
2802         return NDR_ERR_SUCCESS;
2803 }
2804
2805 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
2806 {
2807         uint32_t cntr_rids_1;
2808         uint32_t cntr_attribs_1;
2809         ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
2810         ndr->depth++;
2811         ndr_print_ptr(ndr, "rids", r->rids);
2812         ndr->depth++;
2813         if (r->rids) {
2814                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", r->num_rids);
2815                 ndr->depth++;
2816                 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
2817                         char *idx_1=NULL;
2818                         asprintf(&idx_1, "[%d]", cntr_rids_1);
2819                         if (idx_1) {
2820                                 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
2821                                 free(idx_1);
2822                         }
2823                 }
2824                 ndr->depth--;
2825         }
2826         ndr->depth--;
2827         ndr_print_ptr(ndr, "attribs", r->attribs);
2828         ndr->depth++;
2829         if (r->attribs) {
2830                 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", r->num_rids);
2831                 ndr->depth++;
2832                 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
2833                         char *idx_1=NULL;
2834                         asprintf(&idx_1, "[%d]", cntr_attribs_1);
2835                         if (idx_1) {
2836                                 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
2837                                 free(idx_1);
2838                         }
2839                 }
2840                 ndr->depth--;
2841         }
2842         ndr->depth--;
2843         ndr_print_uint32(ndr, "num_rids", r->num_rids);
2844         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2845         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2846         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2847         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2848         ndr->depth--;
2849 }
2850
2851 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
2852 {
2853         if (ndr_flags & NDR_SCALARS) {
2854                 NDR_CHECK(ndr_push_align(ndr, 4));
2855                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2856                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2857                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2858                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2859                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2860                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2861                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2862                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2863                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2864                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2865                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2866                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2867         }
2868         if (ndr_flags & NDR_BUFFERS) {
2869                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2870                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2871                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2872                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2873                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2874                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2875         }
2876         return NDR_ERR_SUCCESS;
2877 }
2878
2879 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
2880 {
2881         if (ndr_flags & NDR_SCALARS) {
2882                 NDR_CHECK(ndr_pull_align(ndr, 4));
2883                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2884                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2885                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2886                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2887                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2888                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2889                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2890                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2891                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2892                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2893                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2894                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2895         }
2896         if (ndr_flags & NDR_BUFFERS) {
2897                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2898                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2899                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2900                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2901                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2902                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2903         }
2904         return NDR_ERR_SUCCESS;
2905 }
2906
2907 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
2908 {
2909         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
2910         ndr->depth++;
2911         ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
2912         ndr_print_uint32(ndr, "rid", r->rid);
2913         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2914         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2915         ndr_print_lsa_String(ndr, "description", &r->description);
2916         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2917         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2918         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2919         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2920         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2921         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2922         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2923         ndr->depth--;
2924 }
2925
2926 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS_MEMBER *r)
2927 {
2928         if (ndr_flags & NDR_SCALARS) {
2929                 NDR_CHECK(ndr_push_align(ndr, 4));
2930                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2931                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2932                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2933                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2934                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2935         }
2936         if (ndr_flags & NDR_BUFFERS) {
2937                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2938         }
2939         return NDR_ERR_SUCCESS;
2940 }
2941
2942 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
2943 {
2944         if (ndr_flags & NDR_SCALARS) {
2945                 NDR_CHECK(ndr_pull_align(ndr, 4));
2946                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2947                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2948                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2949                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2950                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2951         }
2952         if (ndr_flags & NDR_BUFFERS) {
2953                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2954         }
2955         return NDR_ERR_SUCCESS;
2956 }
2957
2958 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
2959 {
2960         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
2961         ndr->depth++;
2962         ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
2963         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2964         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2965         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2966         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2967         ndr->depth--;
2968 }
2969
2970 static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
2971 {
2972         if (ndr_flags & NDR_SCALARS) {
2973                 NDR_CHECK(ndr_push_align(ndr, 4));
2974                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
2975                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
2976                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
2977                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
2978                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
2979                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
2980         }
2981         if (ndr_flags & NDR_BUFFERS) {
2982         }
2983         return NDR_ERR_SUCCESS;
2984 }
2985
2986 static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
2987 {
2988         if (ndr_flags & NDR_SCALARS) {
2989                 NDR_CHECK(ndr_pull_align(ndr, 4));
2990                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
2991                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
2992                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
2993                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
2994                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
2995                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
2996         }
2997         if (ndr_flags & NDR_BUFFERS) {
2998         }
2999         return NDR_ERR_SUCCESS;
3000 }
3001
3002 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
3003 {
3004         ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
3005         ndr->depth++;
3006         ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
3007         ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
3008         ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
3009         ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
3010         ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
3011         ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
3012         ndr->depth--;
3013 }
3014
3015 static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
3016 {
3017         uint32_t cntr_eventauditoptions_1;
3018         if (ndr_flags & NDR_SCALARS) {
3019                 NDR_CHECK(ndr_push_align(ndr, 4));
3020                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
3021                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
3022                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
3023                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
3024                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
3025                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3026                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
3027                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3028                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
3029                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
3030                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3031                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3032                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3033                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3034                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3035                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3036                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3037                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3038                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3039                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3040         }
3041         if (ndr_flags & NDR_BUFFERS) {
3042                 if (r->eventauditoptions) {
3043                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
3044                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3045                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
3046                         }
3047                 }
3048                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3049                 if (r->sid) {
3050                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3051                 }
3052                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3053                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3054                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3055                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3056                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3057         }
3058         return NDR_ERR_SUCCESS;
3059 }
3060
3061 static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
3062 {
3063         uint32_t _ptr_eventauditoptions;
3064         uint32_t cntr_eventauditoptions_1;
3065         TALLOC_CTX *_mem_save_eventauditoptions_0;
3066         TALLOC_CTX *_mem_save_eventauditoptions_1;
3067         uint32_t _ptr_sid;
3068         TALLOC_CTX *_mem_save_sid_0;
3069         if (ndr_flags & NDR_SCALARS) {
3070                 NDR_CHECK(ndr_pull_align(ndr, 4));
3071                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3072                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3073                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3074                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3075                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3076                 if (_ptr_eventauditoptions) {
3077                         NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3078                 } else {
3079                         r->eventauditoptions = NULL;
3080                 }
3081                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3082                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3083                 if (_ptr_sid) {
3084                         NDR_PULL_ALLOC(ndr, r->sid);
3085                 } else {
3086                         r->sid = NULL;
3087                 }
3088                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3089                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3090                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3091                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3092                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3093                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3094                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3095                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3096                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3097                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3098                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3099                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3100                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3101         }
3102         if (ndr_flags & NDR_BUFFERS) {
3103                 if (r->eventauditoptions) {
3104                         _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3105                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3106                         NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3107                         NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3108                         _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3109                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3110                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3111                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3112                         }
3113                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3114                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3115                 }
3116                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3117                 if (r->sid) {
3118                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3119                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3120                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3121                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3122                 }
3123                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3124                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3125                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3126                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3127                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3128                 if (r->eventauditoptions) {
3129                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3130                 }
3131         }
3132         return NDR_ERR_SUCCESS;
3133 }
3134
3135 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
3136 {
3137         uint32_t cntr_eventauditoptions_1;
3138         ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3139         ndr->depth++;
3140         ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3141         ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3142         ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3143         ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3144         ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3145         ndr->depth++;
3146         if (r->eventauditoptions) {
3147                 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", r->maxauditeventcount + 1);
3148                 ndr->depth++;
3149                 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3150                         char *idx_1=NULL;
3151                         asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1);
3152                         if (idx_1) {
3153                                 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3154                                 free(idx_1);
3155                         }
3156                 }
3157                 ndr->depth--;
3158         }
3159         ndr->depth--;
3160         ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3161         ndr_print_ptr(ndr, "sid", r->sid);
3162         ndr->depth++;
3163         if (r->sid) {
3164                 ndr_print_dom_sid2(ndr, "sid", r->sid);
3165         }
3166         ndr->depth--;
3167         ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3168         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3169         ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3170         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3171         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3172         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3173         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3174         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3175         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3176         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3177         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3178         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3179         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3180         ndr->depth--;
3181 }
3182
3183 static enum ndr_err_code ndr_push_netr_DELTA_TRUSTED_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3184 {
3185         uint32_t cntr_controller_names_1;
3186         if (ndr_flags & NDR_SCALARS) {
3187                 NDR_CHECK(ndr_push_align(ndr, 4));
3188                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3189                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3190                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3191                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3192                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3193                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3194                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3195                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3196                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3197                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3198                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3199                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3200                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3201         }
3202         if (ndr_flags & NDR_BUFFERS) {
3203                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3204                 if (r->controller_names) {
3205                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3206                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3207                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3208                         }
3209                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3210                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3211                         }
3212                 }
3213                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3214                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3215                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3216                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3217                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3218         }
3219         return NDR_ERR_SUCCESS;
3220 }
3221
3222 static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
3223 {
3224         uint32_t _ptr_controller_names;
3225         uint32_t cntr_controller_names_1;
3226         TALLOC_CTX *_mem_save_controller_names_0;
3227         TALLOC_CTX *_mem_save_controller_names_1;
3228         if (ndr_flags & NDR_SCALARS) {
3229                 NDR_CHECK(ndr_pull_align(ndr, 4));
3230                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3231                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3232                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3233                 if (_ptr_controller_names) {
3234                         NDR_PULL_ALLOC(ndr, r->controller_names);
3235                 } else {
3236                         r->controller_names = NULL;
3237                 }
3238                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3239                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3240                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3241                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3242                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3243                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3244                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3245                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3246                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3247                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3248         }
3249         if (ndr_flags & NDR_BUFFERS) {
3250                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3251                 if (r->controller_names) {
3252                         _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3253                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3254                         NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3255                         NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3256                         _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3257                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3258                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3259                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3260                         }
3261                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3262                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3263                         }
3264                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3265                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3266                 }
3267                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3268                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3269                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3270                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3271                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3272                 if (r->controller_names) {
3273                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3274                 }
3275         }
3276         return NDR_ERR_SUCCESS;
3277 }
3278
3279 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3280 {
3281         uint32_t cntr_controller_names_1;
3282         ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3283         ndr->depth++;
3284         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3285         ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3286         ndr_print_ptr(ndr, "controller_names", r->controller_names);
3287         ndr->depth++;
3288         if (r->controller_names) {
3289                 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", r->num_controllers);
3290                 ndr->depth++;
3291                 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3292                         char *idx_1=NULL;
3293                         asprintf(&idx_1, "[%d]", cntr_controller_names_1);
3294                         if (idx_1) {
3295                                 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3296                                 free(idx_1);
3297                         }
3298                 }
3299                 ndr->depth--;
3300         }
3301         ndr->depth--;
3302         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3303         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3304         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3305         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3306         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3307         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3308         ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3309         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3310         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3311         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3312         ndr->depth--;
3313 }
3314
3315 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_TRUST(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_TRUST *r)
3316 {
3317         if (ndr_flags & NDR_SCALARS) {
3318                 NDR_CHECK(ndr_push_align(ndr, 2));
3319                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3320         }
3321         if (ndr_flags & NDR_BUFFERS) {
3322         }
3323         return NDR_ERR_SUCCESS;
3324 }
3325
3326 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
3327 {
3328         if (ndr_flags & NDR_SCALARS) {
3329                 NDR_CHECK(ndr_pull_align(ndr, 2));
3330                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3331         }
3332         if (ndr_flags & NDR_BUFFERS) {
3333         }
3334         return NDR_ERR_SUCCESS;
3335 }
3336
3337 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
3338 {
3339         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3340         ndr->depth++;
3341         ndr_print_uint16(ndr, "unknown", r->unknown);
3342         ndr->depth--;
3343 }
3344
3345 static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
3346 {
3347         uint32_t cntr_privilege_attrib_1;
3348         uint32_t cntr_privilege_name_1;
3349         if (ndr_flags & NDR_SCALARS) {
3350                 NDR_CHECK(ndr_push_align(ndr, 4));
3351                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3352                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3353                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3354                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3355                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3356                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3357                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3358                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3359                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3360                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3361                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3362                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3363                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3364                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3365                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3366                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3367         }
3368         if (ndr_flags & NDR_BUFFERS) {
3369                 if (r->privilege_attrib) {
3370                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3371                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3372                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3373                         }
3374                 }
3375                 if (r->privilege_name) {
3376                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3377                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3378                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3379                         }
3380                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3381                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3382                         }
3383                 }
3384                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3385                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3386                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3387                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3388                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3389         }
3390         return NDR_ERR_SUCCESS;
3391 }
3392
3393 static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
3394 {
3395         uint32_t _ptr_privilege_attrib;
3396         uint32_t cntr_privilege_attrib_1;
3397         TALLOC_CTX *_mem_save_privilege_attrib_0;
3398         TALLOC_CTX *_mem_save_privilege_attrib_1;
3399         uint32_t _ptr_privilege_name;
3400         uint32_t cntr_privilege_name_1;
3401         TALLOC_CTX *_mem_save_privilege_name_0;
3402         TALLOC_CTX *_mem_save_privilege_name_1;
3403         if (ndr_flags & NDR_SCALARS) {
3404                 NDR_CHECK(ndr_pull_align(ndr, 4));
3405                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3406                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3407                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3408                 if (_ptr_privilege_attrib) {
3409                         NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3410                 } else {
3411                         r->privilege_attrib = NULL;
3412                 }
3413                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3414                 if (_ptr_privilege_name) {
3415                         NDR_PULL_ALLOC(ndr, r->privilege_name);
3416                 } else {
3417                         r->privilege_name = NULL;
3418                 }
3419                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3420                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3421                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3422                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3423                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3424                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3425                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3426                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3427                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3428                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3429                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3430                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3431         }
3432         if (ndr_flags & NDR_BUFFERS) {
3433                 if (r->privilege_attrib) {
3434                         _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3435                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3436                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3437                         NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3438                         _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3439                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3440                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3441                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3442                         }
3443                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3444                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3445                 }
3446                 if (r->privilege_name) {
3447                         _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3448                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3449                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3450                         NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3451                         _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3452                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3453                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3454                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3455                         }
3456                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3457                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3458                         }
3459                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3460                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3461                 }
3462                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3463                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3464                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3465                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3466                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3467                 if (r->privilege_attrib) {
3468                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3469                 }
3470                 if (r->privilege_name) {
3471                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3472                 }
3473         }
3474         return NDR_ERR_SUCCESS;
3475 }
3476
3477 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
3478 {
3479         uint32_t cntr_privilege_attrib_1;
3480         uint32_t cntr_privilege_name_1;
3481         ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3482         ndr->depth++;
3483         ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3484         ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3485         ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3486         ndr->depth++;
3487         if (r->privilege_attrib) {
3488                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", r->privilege_entries);
3489                 ndr->depth++;
3490                 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3491                         char *idx_1=NULL;
3492                         asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1);
3493                         if (idx_1) {
3494                                 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3495                                 free(idx_1);
3496                         }
3497                 }
3498                 ndr->depth--;
3499         }
3500         ndr->depth--;
3501         ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3502         ndr->depth++;
3503         if (r->privilege_name) {
3504                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", r->privilege_entries);
3505                 ndr->depth++;
3506                 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3507                         char *idx_1=NULL;
3508                         asprintf(&idx_1, "[%d]", cntr_privilege_name_1);
3509                         if (idx_1) {
3510                                 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3511                                 free(idx_1);
3512                         }
3513                 }
3514                 ndr->depth--;
3515         }
3516         ndr->depth--;
3517         ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3518         ndr_print_uint32(ndr, "system_flags", r->system_flags);
3519         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3520         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3521         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3522         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3523         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3524         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3525         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3526         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3527         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3528         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3529         ndr->depth--;
3530 }
3531
3532 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_ACCOUNT *r)
3533 {
3534         if (ndr_flags & NDR_SCALARS) {
3535                 NDR_CHECK(ndr_push_align(ndr, 2));
3536                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3537         }
3538         if (ndr_flags & NDR_BUFFERS) {
3539         }
3540         return NDR_ERR_SUCCESS;
3541 }
3542
3543 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
3544 {
3545         if (ndr_flags & NDR_SCALARS) {
3546                 NDR_CHECK(ndr_pull_align(ndr, 2));
3547                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3548         }
3549         if (ndr_flags & NDR_BUFFERS) {
3550         }
3551         return NDR_ERR_SUCCESS;
3552 }
3553
3554 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
3555 {
3556         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3557         ndr->depth++;
3558         ndr_print_uint16(ndr, "unknown", r->unknown);
3559         ndr->depth--;
3560 }
3561
3562 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_SECRET *r)
3563 {
3564         if (ndr_flags & NDR_SCALARS) {
3565                 NDR_CHECK(ndr_push_align(ndr, 2));
3566                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3567         }
3568         if (ndr_flags & NDR_BUFFERS) {
3569         }
3570         return NDR_ERR_SUCCESS;
3571 }
3572
3573 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
3574 {
3575         if (ndr_flags & NDR_SCALARS) {
3576                 NDR_CHECK(ndr_pull_align(ndr, 2));
3577                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3578         }
3579         if (ndr_flags & NDR_BUFFERS) {
3580         }
3581         return NDR_ERR_SUCCESS;
3582 }
3583
3584 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
3585 {
3586         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3587         ndr->depth++;
3588         ndr_print_uint16(ndr, "unknown", r->unknown);
3589         ndr->depth--;
3590 }
3591
3592 static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
3593 {
3594         if (ndr_flags & NDR_SCALARS) {
3595                 NDR_CHECK(ndr_push_align(ndr, 4));
3596                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3597                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3598                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3599         }
3600         if (ndr_flags & NDR_BUFFERS) {
3601                 if (r->cipher_data) {
3602                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3603                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3604                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3605                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3606                 }
3607         }
3608         return NDR_ERR_SUCCESS;
3609 }
3610
3611 static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
3612 {
3613         uint32_t _ptr_cipher_data;
3614         TALLOC_CTX *_mem_save_cipher_data_0;
3615         if (ndr_flags & NDR_SCALARS) {
3616                 NDR_CHECK(ndr_pull_align(ndr, 4));
3617                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3618                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3619                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3620                 if (_ptr_cipher_data) {
3621                         NDR_PULL_ALLOC(ndr, r->cipher_data);
3622                 } else {
3623                         r->cipher_data = NULL;
3624                 }
3625         }
3626         if (ndr_flags & NDR_BUFFERS) {
3627                 if (r->cipher_data) {
3628                         _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3629                         NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3630                         NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3631                         NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3632                         if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3633                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->cipher_data), ndr_get_array_length(ndr, &r->cipher_data));
3634                         }
3635                         NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3636                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3637                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3638                 }
3639                 if (r->cipher_data) {
3640                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3641                 }
3642                 if (r->cipher_data) {
3643                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3644                 }
3645         }
3646         return NDR_ERR_SUCCESS;
3647 }
3648
3649 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
3650 {
3651         ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3652         ndr->depth++;
3653         ndr_print_uint32(ndr, "len", r->len);
3654         ndr_print_uint32(ndr, "maxlen", r->maxlen);
3655         ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3656         ndr->depth++;
3657         if (r->cipher_data) {
3658                 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3659         }
3660         ndr->depth--;
3661         ndr->depth--;
3662 }
3663
3664 static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
3665 {
3666         if (ndr_flags & NDR_SCALARS) {
3667                 NDR_CHECK(ndr_push_align(ndr, 4));
3668                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3669                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3670                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3671                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3672                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3673                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3674                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3675                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3676                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3677                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3678                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3679                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3680                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3681                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3682         }
3683         if (ndr_flags & NDR_BUFFERS) {
3684                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3685                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3686                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3687                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3688                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3689                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3690                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3691         }
3692         return NDR_ERR_SUCCESS;
3693 }
3694
3695 static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
3696 {
3697         if (ndr_flags & NDR_SCALARS) {
3698                 NDR_CHECK(ndr_pull_align(ndr, 4));
3699                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3700                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3701                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3702                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3703                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3704                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3705                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3706                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3707                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3708                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3709                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3710                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3711                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3712                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3713         }
3714         if (ndr_flags & NDR_BUFFERS) {
3715                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3716                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3717                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3718                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3719                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3720                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3721                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3722         }
3723         return NDR_ERR_SUCCESS;
3724 }
3725
3726 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
3727 {
3728         ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3729         ndr->depth++;
3730         ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3731         ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3732         ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3733         ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3734         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3735         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3736         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3737         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3738         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3739         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3740         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3741         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3742         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3743         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3744         ndr->depth--;
3745 }
3746
3747 static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
3748 {
3749         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3750         return NDR_ERR_SUCCESS;
3751 }
3752
3753 static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
3754 {
3755         uint16_t v;
3756         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3757         *r = v;
3758         return NDR_ERR_SUCCESS;
3759 }
3760
3761 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
3762 {
3763         const char *val = NULL;
3764
3765         switch (r) {
3766                 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3767                 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3768                 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3769                 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3770                 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3771                 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3772                 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3773                 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3774                 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3775                 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3776                 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3777                 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3778                 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3779                 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3780                 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3781                 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3782                 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3783                 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3784                 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3785                 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3786                 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3787                 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3788         }
3789         ndr_print_enum(ndr, name, "ENUM", val, r);
3790 }
3791
3792 static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
3793 {
3794         if (ndr_flags & NDR_SCALARS) {
3795                 int level = ndr_push_get_switch_value(ndr, r);
3796                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3797                 switch (level) {
3798                         case NETR_DELTA_DOMAIN:
3799                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3800                         break;
3801
3802                         case NETR_DELTA_GROUP:
3803                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3804                         break;
3805
3806                         case NETR_DELTA_DELETE_GROUP:
3807                         break;
3808
3809                         case NETR_DELTA_RENAME_GROUP:
3810                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
3811                         break;
3812
3813                         case NETR_DELTA_USER:
3814                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
3815                         break;
3816
3817                         case NETR_DELTA_DELETE_USER:
3818                         break;
3819
3820                         case NETR_DELTA_RENAME_USER:
3821                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
3822                         break;
3823
3824                         case NETR_DELTA_GROUP_MEMBER:
3825                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
3826                         break;
3827
3828                         case NETR_DELTA_ALIAS:
3829                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
3830                         break;
3831
3832                         case NETR_DELTA_DELETE_ALIAS:
3833                         break;
3834
3835                         case NETR_DELTA_RENAME_ALIAS:
3836                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
3837                         break;
3838
3839                         case NETR_DELTA_ALIAS_MEMBER:
3840                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
3841                         break;
3842
3843                         case NETR_DELTA_POLICY:
3844                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
3845                         break;
3846
3847                         case NETR_DELTA_TRUSTED_DOMAIN:
3848                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
3849                         break;
3850
3851                         case NETR_DELTA_DELETE_TRUST:
3852                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
3853                         break;
3854
3855                         case NETR_DELTA_ACCOUNT:
3856                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
3857                         break;
3858
3859                         case NETR_DELTA_DELETE_ACCOUNT:
3860                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
3861                         break;
3862
3863                         case NETR_DELTA_SECRET:
3864                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
3865                         break;
3866
3867                         case NETR_DELTA_DELETE_SECRET:
3868                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
3869                         break;
3870
3871                         case NETR_DELTA_DELETE_GROUP2:
3872                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
3873                         break;
3874
3875                         case NETR_DELTA_DELETE_USER2:
3876                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
3877                         break;
3878
3879                         case NETR_DELTA_MODIFY_COUNT:
3880                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
3881                         break;
3882
3883                         default:
3884                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3885                 }
3886         }
3887         if (ndr_flags & NDR_BUFFERS) {
3888                 int level = ndr_push_get_switch_value(ndr, r);
3889                 switch (level) {
3890                         case NETR_DELTA_DOMAIN:
3891                                 if (r->domain) {
3892                                         NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
3893                                 }
3894                         break;
3895
3896                         case NETR_DELTA_GROUP:
3897                                 if (r->group) {
3898                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
3899                                 }
3900                         break;
3901
3902                         case NETR_DELTA_DELETE_GROUP:
3903                         break;
3904
3905                         case NETR_DELTA_RENAME_GROUP:
3906                                 if (r->rename_group) {
3907                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
3908                                 }
3909                         break;
3910
3911                         case NETR_DELTA_USER:
3912                                 if (r->user) {
3913                                         NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
3914                                 }
3915                         break;
3916
3917                         case NETR_DELTA_DELETE_USER:
3918                         break;
3919
3920                         case NETR_DELTA_RENAME_USER:
3921                                 if (r->rename_user) {
3922                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
3923                                 }
3924                         break;
3925
3926                         case NETR_DELTA_GROUP_MEMBER:
3927                                 if (r->group_member) {
3928                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
3929                                 }
3930                         break;
3931
3932                         case NETR_DELTA_ALIAS:
3933                                 if (r->alias) {
3934                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
3935                                 }
3936                         break;
3937
3938                         case NETR_DELTA_DELETE_ALIAS:
3939                         break;
3940
3941                         case NETR_DELTA_RENAME_ALIAS:
3942                                 if (r->rename_alias) {
3943                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
3944                                 }
3945                         break;
3946
3947                         case NETR_DELTA_ALIAS_MEMBER:
3948                                 if (r->alias_member) {
3949                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
3950                                 }
3951                         break;
3952
3953                         case NETR_DELTA_POLICY:
3954                                 if (r->policy) {
3955                                         NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
3956                                 }
3957                         break;
3958
3959                         case NETR_DELTA_TRUSTED_DOMAIN:
3960                                 if (r->trusted_domain) {
3961                                         NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
3962                                 }
3963                         break;
3964
3965                         case NETR_DELTA_DELETE_TRUST:
3966                         break;
3967
3968                         case NETR_DELTA_ACCOUNT:
3969                                 if (r->account) {
3970                                         NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
3971                                 }
3972                         break;
3973
3974                         case NETR_DELTA_DELETE_ACCOUNT:
3975                         break;
3976
3977                         case NETR_DELTA_SECRET:
3978                                 if (r->secret) {
3979                                         NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
3980                                 }
3981                         break;
3982
3983                         case NETR_DELTA_DELETE_SECRET:
3984                         break;
3985
3986                         case NETR_DELTA_DELETE_GROUP2:
3987                                 if (r->delete_group) {
3988                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
3989                                 }
3990                         break;
3991
3992                         case NETR_DELTA_DELETE_USER2:
3993                                 if (r->delete_user) {
3994                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
3995                                 }
3996                         break;
3997
3998                         case NETR_DELTA_MODIFY_COUNT:
3999                                 if (r->modified_count) {
4000                                         NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
4001                                 }
4002                         break;
4003
4004                         default:
4005                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4006                 }
4007         }
4008         return NDR_ERR_SUCCESS;
4009 }
4010
4011 static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
4012 {
4013         int level;
4014         uint16_t _level;
4015         TALLOC_CTX *_mem_save_domain_0;
4016         TALLOC_CTX *_mem_save_group_0;
4017         TALLOC_CTX *_mem_save_rename_group_0;
4018         TALLOC_CTX *_mem_save_user_0;
4019         TALLOC_CTX *_mem_save_rename_user_0;
4020         TALLOC_CTX *_mem_save_group_member_0;
4021         TALLOC_CTX *_mem_save_alias_0;
4022         TALLOC_CTX *_mem_save_rename_alias_0;
4023         TALLOC_CTX *_mem_save_alias_member_0;
4024         TALLOC_CTX *_mem_save_policy_0;
4025         TALLOC_CTX *_mem_save_trusted_domain_0;
4026         TALLOC_CTX *_mem_save_account_0;
4027         TALLOC_CTX *_mem_save_secret_0;
4028         TALLOC_CTX *_mem_save_delete_group_0;
4029         TALLOC_CTX *_mem_save_delete_user_0;
4030         TALLOC_CTX *_mem_save_modified_count_0;
4031         level = ndr_pull_get_switch_value(ndr, r);
4032         if (ndr_flags & NDR_SCALARS) {
4033                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4034                 if (_level != level) {
4035                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4036                 }
4037                 switch (level) {
4038                         case NETR_DELTA_DOMAIN: {
4039                                 uint32_t _ptr_domain;
4040                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
4041                                 if (_ptr_domain) {
4042                                         NDR_PULL_ALLOC(ndr, r->domain);
4043                                 } else {
4044                                         r->domain = NULL;
4045                                 }
4046                         break; }
4047
4048                         case NETR_DELTA_GROUP: {
4049                                 uint32_t _ptr_group;
4050                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
4051                                 if (_ptr_group) {
4052                                         NDR_PULL_ALLOC(ndr, r->group);
4053                                 } else {
4054                                         r->group = NULL;
4055                                 }
4056                         break; }
4057
4058                         case NETR_DELTA_DELETE_GROUP: {
4059                         break; }
4060
4061                         case NETR_DELTA_RENAME_GROUP: {
4062                                 uint32_t _ptr_rename_group;
4063                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4064                                 if (_ptr_rename_group) {
4065                                         NDR_PULL_ALLOC(ndr, r->rename_group);
4066                                 } else {
4067                                         r->rename_group = NULL;
4068                                 }
4069                         break; }
4070
4071                         case NETR_DELTA_USER: {
4072                                 uint32_t _ptr_user;
4073                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4074                                 if (_ptr_user) {
4075                                         NDR_PULL_ALLOC(ndr, r->user);
4076                                 } else {
4077                                         r->user = NULL;
4078                                 }
4079                         break; }
4080
4081                         case NETR_DELTA_DELETE_USER: {
4082                         break; }
4083
4084                         case NETR_DELTA_RENAME_USER: {
4085                                 uint32_t _ptr_rename_user;
4086                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4087                                 if (_ptr_rename_user) {
4088                                         NDR_PULL_ALLOC(ndr, r->rename_user);
4089                                 } else {
4090                                         r->rename_user = NULL;
4091                                 }
4092                         break; }
4093
4094                         case NETR_DELTA_GROUP_MEMBER: {
4095                                 uint32_t _ptr_group_member;
4096                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4097                                 if (_ptr_group_member) {
4098                                         NDR_PULL_ALLOC(ndr, r->group_member);
4099                                 } else {
4100                                         r->group_member = NULL;
4101                                 }
4102                         break; }
4103
4104                         case NETR_DELTA_ALIAS: {
4105                                 uint32_t _ptr_alias;
4106                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4107                                 if (_ptr_alias) {
4108                                         NDR_PULL_ALLOC(ndr, r->alias);
4109                                 } else {
4110                                         r->alias = NULL;
4111                                 }
4112                         break; }
4113
4114                         case NETR_DELTA_DELETE_ALIAS: {
4115                         break; }
4116
4117                         case NETR_DELTA_RENAME_ALIAS: {
4118                                 uint32_t _ptr_rename_alias;
4119                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4120                                 if (_ptr_rename_alias) {
4121                                         NDR_PULL_ALLOC(ndr, r->rename_alias);
4122                                 } else {
4123                                         r->rename_alias = NULL;
4124                                 }
4125                         break; }
4126
4127                         case NETR_DELTA_ALIAS_MEMBER: {
4128                                 uint32_t _ptr_alias_member;
4129                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4130                                 if (_ptr_alias_member) {
4131                                         NDR_PULL_ALLOC(ndr, r->alias_member);
4132                                 } else {
4133                                         r->alias_member = NULL;
4134                                 }
4135                         break; }
4136
4137                         case NETR_DELTA_POLICY: {
4138                                 uint32_t _ptr_policy;
4139                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4140                                 if (_ptr_policy) {
4141                                         NDR_PULL_ALLOC(ndr, r->policy);
4142                                 } else {
4143                                         r->policy = NULL;
4144                                 }
4145                         break; }
4146
4147                         case NETR_DELTA_TRUSTED_DOMAIN: {
4148                                 uint32_t _ptr_trusted_domain;
4149                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4150                                 if (_ptr_trusted_domain) {
4151                                         NDR_PULL_ALLOC(ndr, r->trusted_domain);
4152                                 } else {
4153                                         r->trusted_domain = NULL;
4154                                 }
4155                         break; }
4156
4157                         case NETR_DELTA_DELETE_TRUST: {
4158                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4159                         break; }
4160
4161                         case NETR_DELTA_ACCOUNT: {
4162                                 uint32_t _ptr_account;
4163                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4164                                 if (_ptr_account) {
4165                                         NDR_PULL_ALLOC(ndr, r->account);
4166                                 } else {
4167                                         r->account = NULL;
4168                                 }
4169                         break; }
4170
4171                         case NETR_DELTA_DELETE_ACCOUNT: {
4172                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4173                         break; }
4174
4175                         case NETR_DELTA_SECRET: {
4176                                 uint32_t _ptr_secret;
4177                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4178                                 if (_ptr_secret) {
4179                                         NDR_PULL_ALLOC(ndr, r->secret);
4180                                 } else {
4181                                         r->secret = NULL;
4182                                 }
4183                         break; }
4184
4185                         case NETR_DELTA_DELETE_SECRET: {
4186                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4187                         break; }
4188
4189                         case NETR_DELTA_DELETE_GROUP2: {
4190                                 uint32_t _ptr_delete_group;
4191                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4192                                 if (_ptr_delete_group) {
4193                                         NDR_PULL_ALLOC(ndr, r->delete_group);
4194                                 } else {
4195                                         r->delete_group = NULL;
4196                                 }
4197                         break; }
4198
4199                         case NETR_DELTA_DELETE_USER2: {
4200                                 uint32_t _ptr_delete_user;
4201                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4202                                 if (_ptr_delete_user) {
4203                                         NDR_PULL_ALLOC(ndr, r->delete_user);
4204                                 } else {
4205                                         r->delete_user = NULL;
4206                                 }
4207                         break; }
4208
4209                         case NETR_DELTA_MODIFY_COUNT: {
4210                                 uint32_t _ptr_modified_count;
4211                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4212                                 if (_ptr_modified_count) {
4213                                         NDR_PULL_ALLOC(ndr, r->modified_count);
4214                                 } else {
4215                                         r->modified_count = NULL;
4216                                 }
4217                         break; }
4218
4219                         default:
4220                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4221                 }
4222         }
4223         if (ndr_flags & NDR_BUFFERS) {
4224                 switch (level) {
4225                         case NETR_DELTA_DOMAIN:
4226                                 if (r->domain) {
4227                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4228                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4229                                         NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4230                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4231                                 }
4232                         break;
4233
4234                         case NETR_DELTA_GROUP:
4235                                 if (r->group) {
4236                                         _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4237                                         NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4238                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4239                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4240                                 }
4241                         break;
4242
4243                         case NETR_DELTA_DELETE_GROUP:
4244                         break;
4245
4246                         case NETR_DELTA_RENAME_GROUP:
4247                                 if (r->rename_group) {
4248                                         _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4249                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4250                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4251                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4252                                 }
4253                         break;
4254
4255                         case NETR_DELTA_USER:
4256                                 if (r->user) {
4257                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4258                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4259                                         NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4260                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4261                                 }
4262                         break;
4263
4264                         case NETR_DELTA_DELETE_USER:
4265                         break;
4266
4267                         case NETR_DELTA_RENAME_USER:
4268                                 if (r->rename_user) {
4269                                         _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4270                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4271                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4272                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4273                                 }
4274                         break;
4275
4276                         case NETR_DELTA_GROUP_MEMBER:
4277                                 if (r->group_member) {
4278                                         _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4279                                         NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4280                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4281                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4282                                 }
4283                         break;
4284
4285                         case NETR_DELTA_ALIAS:
4286                                 if (r->alias) {
4287                                         _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4288                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4289                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4290                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4291                                 }
4292                         break;
4293
4294                         case NETR_DELTA_DELETE_ALIAS:
4295                         break;
4296
4297                         case NETR_DELTA_RENAME_ALIAS:
4298                                 if (r->rename_alias) {
4299                                         _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4300                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4301                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4302                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4303                                 }
4304                         break;
4305
4306                         case NETR_DELTA_ALIAS_MEMBER:
4307                                 if (r->alias_member) {
4308                                         _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4309                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4310                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4311                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4312                                 }
4313                         break;
4314
4315                         case NETR_DELTA_POLICY:
4316                                 if (r->policy) {
4317                                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4318                                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4319                                         NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4320                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4321                                 }
4322                         break;
4323
4324                         case NETR_DELTA_TRUSTED_DOMAIN:
4325                                 if (r->trusted_domain) {
4326                                         _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4327                                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4328                                         NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4329                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4330                                 }
4331                         break;
4332
4333                         case NETR_DELTA_DELETE_TRUST:
4334                         break;
4335
4336                         case NETR_DELTA_ACCOUNT:
4337                                 if (r->account) {
4338                                         _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4339                                         NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4340                                         NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4341                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4342                                 }
4343                         break;
4344
4345                         case NETR_DELTA_DELETE_ACCOUNT:
4346                         break;
4347
4348                         case NETR_DELTA_SECRET:
4349                                 if (r->secret) {
4350                                         _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4351                                         NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4352                                         NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4353                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4354                                 }
4355                         break;
4356
4357                         case NETR_DELTA_DELETE_SECRET:
4358                         break;
4359
4360                         case NETR_DELTA_DELETE_GROUP2:
4361                                 if (r->delete_group) {
4362                                         _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4363                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4364                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4365                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4366                                 }
4367                         break;
4368
4369                         case NETR_DELTA_DELETE_USER2:
4370                                 if (r->delete_user) {
4371                                         _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4372                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4373                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4374                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4375                                 }
4376                         break;
4377
4378                         case NETR_DELTA_MODIFY_COUNT:
4379                                 if (r->modified_count) {
4380                                         _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4381                                         NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4382                                         NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4383                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4384                                 }
4385                         break;
4386
4387                         default:
4388                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4389                 }
4390         }
4391         return NDR_ERR_SUCCESS;
4392 }
4393
4394 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
4395 {
4396         int level;
4397         level = ndr_print_get_switch_value(ndr, r);
4398         ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4399         switch (level) {
4400                 case NETR_DELTA_DOMAIN:
4401                         ndr_print_ptr(ndr, "domain", r->domain);
4402                         ndr->depth++;
4403                         if (r->domain) {
4404                                 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4405                         }
4406                         ndr->depth--;
4407                 break;
4408
4409                 case NETR_DELTA_GROUP:
4410                         ndr_print_ptr(ndr, "group", r->group);
4411                         ndr->depth++;
4412                         if (r->group) {
4413                                 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4414                         }
4415                         ndr->depth--;
4416                 break;
4417
4418                 case NETR_DELTA_DELETE_GROUP:
4419                 break;
4420
4421                 case NETR_DELTA_RENAME_GROUP:
4422                         ndr_print_ptr(ndr, "rename_group", r->rename_group);
4423                         ndr->depth++;
4424                         if (r->rename_group) {
4425                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4426                         }
4427                         ndr->depth--;
4428                 break;
4429
4430                 case NETR_DELTA_USER:
4431                         ndr_print_ptr(ndr, "user", r->user);
4432                         ndr->depth++;
4433                         if (r->user) {
4434                                 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4435                         }
4436                         ndr->depth--;
4437                 break;
4438
4439                 case NETR_DELTA_DELETE_USER:
4440                 break;
4441
4442                 case NETR_DELTA_RENAME_USER:
4443                         ndr_print_ptr(ndr, "rename_user", r->rename_user);
4444                         ndr->depth++;
4445                         if (r->rename_user) {
4446                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4447                         }
4448                         ndr->depth--;
4449                 break;
4450
4451                 case NETR_DELTA_GROUP_MEMBER:
4452                         ndr_print_ptr(ndr, "group_member", r->group_member);
4453                         ndr->depth++;
4454                         if (r->group_member) {
4455                                 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4456                         }
4457                         ndr->depth--;
4458                 break;
4459
4460                 case NETR_DELTA_ALIAS:
4461                         ndr_print_ptr(ndr, "alias", r->alias);
4462                         ndr->depth++;
4463                         if (r->alias) {
4464                                 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4465                         }
4466                         ndr->depth--;
4467                 break;
4468
4469                 case NETR_DELTA_DELETE_ALIAS:
4470                 break;
4471
4472                 case NETR_DELTA_RENAME_ALIAS:
4473                         ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4474                         ndr->depth++;
4475                         if (r->rename_alias) {
4476                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4477                         }
4478                         ndr->depth--;
4479                 break;
4480
4481                 case NETR_DELTA_ALIAS_MEMBER:
4482                         ndr_print_ptr(ndr, "alias_member", r->alias_member);
4483                         ndr->depth++;
4484                         if (r->alias_member) {
4485                                 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4486                         }
4487                         ndr->depth--;
4488                 break;
4489
4490                 case NETR_DELTA_POLICY:
4491                         ndr_print_ptr(ndr, "policy", r->policy);
4492                         ndr->depth++;
4493                         if (r->policy) {
4494                                 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4495                         }
4496                         ndr->depth--;
4497                 break;
4498
4499                 case NETR_DELTA_TRUSTED_DOMAIN:
4500                         ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4501                         ndr->depth++;
4502                         if (r->trusted_domain) {
4503                                 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4504                         }
4505                         ndr->depth--;
4506                 break;
4507
4508                 case NETR_DELTA_DELETE_TRUST:
4509                         ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4510                 break;
4511
4512                 case NETR_DELTA_ACCOUNT:
4513                         ndr_print_ptr(ndr, "account", r->account);
4514                         ndr->depth++;
4515                         if (r->account) {
4516                                 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4517                         }
4518                         ndr->depth--;
4519                 break;
4520
4521                 case NETR_DELTA_DELETE_ACCOUNT:
4522                         ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4523                 break;
4524
4525                 case NETR_DELTA_SECRET:
4526                         ndr_print_ptr(ndr, "secret", r->secret);
4527                         ndr->depth++;
4528                         if (r->secret) {
4529                                 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4530                         }
4531                         ndr->depth--;
4532                 break;
4533
4534                 case NETR_DELTA_DELETE_SECRET:
4535                         ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4536                 break;
4537
4538                 case NETR_DELTA_DELETE_GROUP2:
4539                         ndr_print_ptr(ndr, "delete_group", r->delete_group);
4540                         ndr->depth++;
4541                         if (r->delete_group) {
4542                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4543                         }
4544                         ndr->depth--;
4545                 break;
4546
4547                 case NETR_DELTA_DELETE_USER2:
4548                         ndr_print_ptr(ndr, "delete_user", r->delete_user);
4549                         ndr->depth++;
4550                         if (r->delete_user) {
4551                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4552                         }
4553                         ndr->depth--;
4554                 break;
4555
4556                 case NETR_DELTA_MODIFY_COUNT:
4557                         ndr_print_ptr(ndr, "modified_count", r->modified_count);
4558                         ndr->depth++;
4559                         if (r->modified_count) {
4560                                 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4561                         }
4562                         ndr->depth--;
4563                 break;
4564
4565                 default:
4566                         ndr_print_bad_level(ndr, name, level);
4567         }
4568 }
4569
4570 static enum ndr_err_code ndr_push_netr_DELTA_ID_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_ID_UNION *r)
4571 {
4572         if (ndr_flags & NDR_SCALARS) {
4573                 int level = ndr_push_get_switch_value(ndr, r);
4574                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4575                 switch (level) {
4576                         case NETR_DELTA_DOMAIN:
4577                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4578                         break;
4579
4580                         case NETR_DELTA_GROUP:
4581                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4582                         break;
4583
4584                         case NETR_DELTA_DELETE_GROUP:
4585                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4586                         break;
4587
4588                         case NETR_DELTA_RENAME_GROUP:
4589                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4590                         break;
4591
4592                         case NETR_DELTA_USER:
4593                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4594                         break;
4595
4596                         case NETR_DELTA_DELETE_USER:
4597                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4598                         break;
4599
4600                         case NETR_DELTA_RENAME_USER:
4601                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4602                         break;
4603
4604                         case NETR_DELTA_GROUP_MEMBER:
4605                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4606                         break;
4607
4608                         case NETR_DELTA_ALIAS:
4609                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4610                         break;
4611
4612                         case NETR_DELTA_DELETE_ALIAS:
4613                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4614                         break;
4615
4616                         case NETR_DELTA_RENAME_ALIAS:
4617                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4618                         break;
4619
4620                         case NETR_DELTA_ALIAS_MEMBER:
4621                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4622                         break;
4623
4624                         case NETR_DELTA_POLICY:
4625                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4626                         break;
4627
4628                         case NETR_DELTA_TRUSTED_DOMAIN:
4629                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4630                         break;
4631
4632                         case NETR_DELTA_DELETE_TRUST:
4633                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4634                         break;
4635
4636                         case NETR_DELTA_ACCOUNT:
4637                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4638                         break;
4639
4640                         case NETR_DELTA_DELETE_ACCOUNT:
4641                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4642                         break;
4643
4644                         case NETR_DELTA_SECRET:
4645                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4646                         break;
4647
4648                         case NETR_DELTA_DELETE_SECRET:
4649                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4650                         break;
4651
4652                         case NETR_DELTA_DELETE_GROUP2:
4653                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4654                         break;
4655
4656                         case NETR_DELTA_DELETE_USER2:
4657                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4658                         break;
4659
4660                         case NETR_DELTA_MODIFY_COUNT:
4661                         break;
4662
4663                         default:
4664                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4665                 }
4666         }
4667         if (ndr_flags & NDR_BUFFERS) {
4668                 int level = ndr_push_get_switch_value(ndr, r);
4669                 switch (level) {
4670                         case NETR_DELTA_DOMAIN:
4671                         break;
4672
4673                         case NETR_DELTA_GROUP:
4674                         break;
4675
4676                         case NETR_DELTA_DELETE_GROUP:
4677                         break;
4678
4679                         case NETR_DELTA_RENAME_GROUP:
4680                         break;
4681
4682                         case NETR_DELTA_USER:
4683                         break;
4684
4685                         case NETR_DELTA_DELETE_USER:
4686                         break;
4687
4688                         case NETR_DELTA_RENAME_USER:
4689                         break;
4690
4691                         case NETR_DELTA_GROUP_MEMBER:
4692                         break;
4693
4694                         case NETR_DELTA_ALIAS:
4695                         break;
4696
4697                         case NETR_DELTA_DELETE_ALIAS:
4698                         break;
4699
4700                         case NETR_DELTA_RENAME_ALIAS:
4701                         break;
4702
4703                         case NETR_DELTA_ALIAS_MEMBER:
4704                         break;
4705
4706                         case NETR_DELTA_POLICY:
4707                                 if (r->sid) {
4708                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4709                                 }
4710                         break;
4711
4712                         case NETR_DELTA_TRUSTED_DOMAIN:
4713                                 if (r->sid) {
4714                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4715                                 }
4716                         break;
4717
4718                         case NETR_DELTA_DELETE_TRUST:
4719                                 if (r->sid) {
4720                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4721                                 }
4722                         break;
4723
4724                         case NETR_DELTA_ACCOUNT:
4725                                 if (r->sid) {
4726                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4727                                 }
4728                         break;
4729
4730                         case NETR_DELTA_DELETE_ACCOUNT:
4731                                 if (r->sid) {
4732                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4733                                 }
4734                         break;
4735
4736                         case NETR_DELTA_SECRET:
4737                                 if (r->name) {
4738                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4739                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4740                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4741                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4742                                 }
4743                         break;
4744
4745                         case NETR_DELTA_DELETE_SECRET:
4746                                 if (r->name) {
4747                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4748                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4749                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4750                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4751                                 }
4752                         break;
4753
4754                         case NETR_DELTA_DELETE_GROUP2:
4755                         break;
4756
4757                         case NETR_DELTA_DELETE_USER2:
4758                         break;
4759
4760                         case NETR_DELTA_MODIFY_COUNT:
4761                         break;
4762
4763                         default:
4764                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4765                 }
4766         }
4767         return NDR_ERR_SUCCESS;
4768 }
4769
4770 static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
4771 {
4772         int level;
4773         uint16_t _level;
4774         TALLOC_CTX *_mem_save_sid_0;
4775         TALLOC_CTX *_mem_save_name_0;
4776         level = ndr_pull_get_switch_value(ndr, r);
4777         if (ndr_flags & NDR_SCALARS) {
4778                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4779                 if (_level != level) {
4780                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4781                 }
4782                 switch (level) {
4783                         case NETR_DELTA_DOMAIN: {
4784                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4785                         break; }
4786
4787                         case NETR_DELTA_GROUP: {
4788                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4789                         break; }
4790
4791                         case NETR_DELTA_DELETE_GROUP: {
4792                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4793                         break; }
4794
4795                         case NETR_DELTA_RENAME_GROUP: {
4796                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4797                         break; }
4798
4799                         case NETR_DELTA_USER: {
4800                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4801                         break; }
4802
4803                         case NETR_DELTA_DELETE_USER: {
4804                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4805                         break; }
4806
4807                         case NETR_DELTA_RENAME_USER: {
4808                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4809                         break; }
4810
4811                         case NETR_DELTA_GROUP_MEMBER: {
4812                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4813                         break; }
4814
4815                         case NETR_DELTA_ALIAS: {
4816                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4817                         break; }
4818
4819                         case NETR_DELTA_DELETE_ALIAS: {
4820                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4821                         break; }
4822
4823                         case NETR_DELTA_RENAME_ALIAS: {
4824                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4825                         break; }
4826
4827                         case NETR_DELTA_ALIAS_MEMBER: {
4828                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4829                         break; }
4830
4831                         case NETR_DELTA_POLICY: {
4832                                 uint32_t _ptr_sid;
4833                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4834                                 if (_ptr_sid) {
4835                                         NDR_PULL_ALLOC(ndr, r->sid);
4836                                 } else {
4837                                         r->sid = NULL;
4838                                 }
4839                         break; }
4840
4841                         case NETR_DELTA_TRUSTED_DOMAIN: {
4842                                 uint32_t _ptr_sid;
4843                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4844                                 if (_ptr_sid) {
4845                                         NDR_PULL_ALLOC(ndr, r->sid);
4846                                 } else {
4847                                         r->sid = NULL;
4848                                 }
4849                         break; }
4850
4851                         case NETR_DELTA_DELETE_TRUST: {
4852                                 uint32_t _ptr_sid;
4853                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4854                                 if (_ptr_sid) {
4855                                         NDR_PULL_ALLOC(ndr, r->sid);
4856                                 } else {
4857                                         r->sid = NULL;
4858                                 }
4859                         break; }
4860
4861                         case NETR_DELTA_ACCOUNT: {
4862                                 uint32_t _ptr_sid;
4863                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4864                                 if (_ptr_sid) {
4865                                         NDR_PULL_ALLOC(ndr, r->sid);
4866                                 } else {
4867                                         r->sid = NULL;
4868                                 }
4869                         break; }
4870
4871                         case NETR_DELTA_DELETE_ACCOUNT: {
4872                                 uint32_t _ptr_sid;
4873                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4874                                 if (_ptr_sid) {
4875                                         NDR_PULL_ALLOC(ndr, r->sid);
4876                                 } else {
4877                                         r->sid = NULL;
4878                                 }
4879                         break; }
4880
4881                         case NETR_DELTA_SECRET: {
4882                                 uint32_t _ptr_name;
4883                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4884                                 if (_ptr_name) {
4885                                         NDR_PULL_ALLOC(ndr, r->name);
4886                                 } else {
4887                                         r->name = NULL;
4888                                 }
4889                         break; }
4890
4891                         case NETR_DELTA_DELETE_SECRET: {
4892                                 uint32_t _ptr_name;
4893                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4894                                 if (_ptr_name) {
4895                                         NDR_PULL_ALLOC(ndr, r->name);
4896                                 } else {
4897                                         r->name = NULL;
4898                                 }
4899                         break; }
4900
4901                         case NETR_DELTA_DELETE_GROUP2: {
4902                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4903                         break; }
4904
4905                         case NETR_DELTA_DELETE_USER2: {
4906                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4907                         break; }
4908
4909                         case NETR_DELTA_MODIFY_COUNT: {
4910                         break; }
4911
4912                         default:
4913                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4914                 }
4915         }
4916         if (ndr_flags & NDR_BUFFERS) {
4917                 switch (level) {
4918                         case NETR_DELTA_DOMAIN:
4919                         break;
4920
4921                         case NETR_DELTA_GROUP:
4922                         break;
4923
4924                         case NETR_DELTA_DELETE_GROUP:
4925                         break;
4926
4927                         case NETR_DELTA_RENAME_GROUP:
4928                         break;
4929
4930                         case NETR_DELTA_USER:
4931                         break;
4932
4933                         case NETR_DELTA_DELETE_USER:
4934                         break;
4935
4936                         case NETR_DELTA_RENAME_USER:
4937                         break;
4938
4939                         case NETR_DELTA_GROUP_MEMBER:
4940                         break;
4941
4942                         case NETR_DELTA_ALIAS:
4943                         break;
4944
4945                         case NETR_DELTA_DELETE_ALIAS:
4946                         break;
4947
4948                         case NETR_DELTA_RENAME_ALIAS:
4949                         break;
4950
4951                         case NETR_DELTA_ALIAS_MEMBER:
4952                         break;
4953
4954                         case NETR_DELTA_POLICY:
4955                                 if (r->sid) {
4956                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4957                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4958                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4959                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4960                                 }
4961                         break;
4962
4963                         case NETR_DELTA_TRUSTED_DOMAIN:
4964                                 if (r->sid) {
4965                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4966                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4967                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4968                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4969                                 }
4970                         break;
4971
4972                         case NETR_DELTA_DELETE_TRUST:
4973                                 if (r->sid) {
4974                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4975                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4976                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4977                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4978                                 }
4979                         break;
4980
4981                         case NETR_DELTA_ACCOUNT:
4982                                 if (r->sid) {
4983                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4984                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4985                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4986                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4987                                 }
4988                         break;
4989
4990                         case NETR_DELTA_DELETE_ACCOUNT:
4991                                 if (r->sid) {
4992                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4993                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4994                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4995                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4996                                 }
4997                         break;
4998
4999                         case NETR_DELTA_SECRET:
5000                                 if (r->name) {
5001                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5002                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5003                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5004                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5005                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5006                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
5007                                         }
5008                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5009                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5010                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5011                                 }
5012                         break;
5013
5014                         case NETR_DELTA_DELETE_SECRET:
5015                                 if (r->name) {
5016                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5017                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5018                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5019                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5020                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5021                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
5022                                         }
5023                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5024                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5025                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5026                                 }
5027                         break;
5028
5029                         case NETR_DELTA_DELETE_GROUP2:
5030                         break;
5031
5032                         case NETR_DELTA_DELETE_USER2:
5033                         break;
5034
5035                         case NETR_DELTA_MODIFY_COUNT:
5036                         break;
5037
5038                         default:
5039                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5040                 }
5041         }
5042         return NDR_ERR_SUCCESS;
5043 }
5044
5045 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
5046 {
5047         int level;
5048         level = ndr_print_get_switch_value(ndr, r);
5049         ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
5050         switch (level) {
5051                 case NETR_DELTA_DOMAIN:
5052                         ndr_print_uint32(ndr, "rid", r->rid);
5053                 break;
5054
5055                 case NETR_DELTA_GROUP:
5056                         ndr_print_uint32(ndr, "rid", r->rid);
5057                 break;
5058
5059                 case NETR_DELTA_DELETE_GROUP:
5060                         ndr_print_uint32(ndr, "rid", r->rid);
5061                 break;
5062
5063                 case NETR_DELTA_RENAME_GROUP:
5064                         ndr_print_uint32(ndr, "rid", r->rid);
5065                 break;
5066
5067                 case NETR_DELTA_USER:
5068                         ndr_print_uint32(ndr, "rid", r->rid);
5069                 break;
5070
5071                 case NETR_DELTA_DELETE_USER:
5072                         ndr_print_uint32(ndr, "rid", r->rid);
5073                 break;
5074
5075                 case NETR_DELTA_RENAME_USER:
5076                         ndr_print_uint32(ndr, "rid", r->rid);
5077                 break;
5078
5079                 case NETR_DELTA_GROUP_MEMBER:
5080                         ndr_print_uint32(ndr, "rid", r->rid);
5081                 break;
5082
5083                 case NETR_DELTA_ALIAS:
5084                         ndr_print_uint32(ndr, "rid", r->rid);
5085                 break;
5086
5087                 case NETR_DELTA_DELETE_ALIAS:
5088                         ndr_print_uint32(ndr, "rid", r->rid);
5089                 break;
5090
5091                 case NETR_DELTA_RENAME_ALIAS:
5092                         ndr_print_uint32(ndr, "rid", r->rid);
5093                 break;
5094
5095                 case NETR_DELTA_ALIAS_MEMBER:
5096                         ndr_print_uint32(ndr, "rid", r->rid);
5097                 break;
5098
5099                 case NETR_DELTA_POLICY:
5100                         ndr_print_ptr(ndr, "sid", r->sid);
5101                         ndr->depth++;
5102                         if (r->sid) {
5103                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5104                         }
5105                         ndr->depth--;
5106                 break;
5107
5108                 case NETR_DELTA_TRUSTED_DOMAIN:
5109                         ndr_print_ptr(ndr, "sid", r->sid);
5110                         ndr->depth++;
5111                         if (r->sid) {
5112                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5113                         }
5114                         ndr->depth--;
5115                 break;
5116
5117                 case NETR_DELTA_DELETE_TRUST:
5118                         ndr_print_ptr(ndr, "sid", r->sid);
5119                         ndr->depth++;
5120                         if (r->sid) {
5121                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5122                         }
5123                         ndr->depth--;
5124                 break;
5125
5126                 case NETR_DELTA_ACCOUNT:
5127                         ndr_print_ptr(ndr, "sid", r->sid);
5128                         ndr->depth++;
5129                         if (r->sid) {
5130                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5131                         }
5132                         ndr->depth--;
5133                 break;
5134
5135                 case NETR_DELTA_DELETE_ACCOUNT:
5136                         ndr_print_ptr(ndr, "sid", r->sid);
5137                         ndr->depth++;
5138                         if (r->sid) {
5139                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5140                         }
5141                         ndr->depth--;
5142                 break;
5143
5144                 case NETR_DELTA_SECRET:
5145                         ndr_print_ptr(ndr, "name", r->name);
5146                         ndr->depth++;
5147                         if (r->name) {
5148                                 ndr_print_string(ndr, "name", r->name);
5149                         }
5150                         ndr->depth--;
5151                 break;
5152
5153                 case NETR_DELTA_DELETE_SECRET:
5154                         ndr_print_ptr(ndr, "name", r->name);
5155                         ndr->depth++;
5156                         if (r->name) {
5157                                 ndr_print_string(ndr, "name", r->name);
5158                         }
5159                         ndr->depth--;
5160                 break;
5161
5162                 case NETR_DELTA_DELETE_GROUP2:
5163                         ndr_print_uint32(ndr, "rid", r->rid);
5164                 break;
5165
5166                 case NETR_DELTA_DELETE_USER2:
5167                         ndr_print_uint32(ndr, "rid", r->rid);
5168                 break;
5169
5170                 case NETR_DELTA_MODIFY_COUNT:
5171                 break;
5172
5173                 default:
5174                         ndr_print_bad_level(ndr, name, level);
5175         }
5176 }
5177
5178 static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
5179 {
5180         if (ndr_flags & NDR_SCALARS) {
5181                 NDR_CHECK(ndr_push_align(ndr, 4));
5182                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5183                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5184                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5185                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5186                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5187         }
5188         if (ndr_flags & NDR_BUFFERS) {
5189                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5190                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5191         }
5192         return NDR_ERR_SUCCESS;
5193 }
5194
5195 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
5196 {
5197         if (ndr_flags & NDR_SCALARS) {
5198                 NDR_CHECK(ndr_pull_align(ndr, 4));
5199                 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5200                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5201                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5202                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5203                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5204         }
5205         if (ndr_flags & NDR_BUFFERS) {
5206                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5207                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5208         }
5209         return NDR_ERR_SUCCESS;
5210 }
5211
5212 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
5213 {
5214         ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5215         ndr->depth++;
5216         ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5217         ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5218         ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5219         ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5220         ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5221         ndr->depth--;
5222 }
5223
5224 static enum ndr_err_code ndr_push_netr_DELTA_ENUM_ARRAY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM_ARRAY *r)
5225 {
5226         uint32_t cntr_delta_enum_1;
5227         if (ndr_flags & NDR_SCALARS) {
5228                 NDR_CHECK(ndr_push_align(ndr, 4));
5229                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5230                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5231         }
5232         if (ndr_flags & NDR_BUFFERS) {
5233                 if (r->delta_enum) {
5234                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5235                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5236                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5237                         }
5238                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5239                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5240                         }
5241                 }
5242         }
5243         return NDR_ERR_SUCCESS;
5244 }
5245
5246 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
5247 {
5248         uint32_t _ptr_delta_enum;
5249         uint32_t cntr_delta_enum_1;
5250         TALLOC_CTX *_mem_save_delta_enum_0;
5251         TALLOC_CTX *_mem_save_delta_enum_1;
5252         if (ndr_flags & NDR_SCALARS) {
5253                 NDR_CHECK(ndr_pull_align(ndr, 4));
5254                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5255                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5256                 if (_ptr_delta_enum) {
5257                         NDR_PULL_ALLOC(ndr, r->delta_enum);
5258                 } else {
5259                         r->delta_enum = NULL;
5260                 }
5261         }
5262         if (ndr_flags & NDR_BUFFERS) {
5263                 if (r->delta_enum) {
5264                         _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5265                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5266                         NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5267                         NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5268                         _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5269                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5270                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5271                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5272                         }
5273                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5274                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5275                         }
5276                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5277                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5278                 }
5279                 if (r->delta_enum) {
5280                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5281                 }
5282         }
5283         return NDR_ERR_SUCCESS;
5284 }
5285
5286 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
5287 {
5288         uint32_t cntr_delta_enum_1;
5289         ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5290         ndr->depth++;
5291         ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5292         ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5293         ndr->depth++;
5294         if (r->delta_enum) {
5295                 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", r->num_deltas);
5296                 ndr->depth++;
5297                 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5298                         char *idx_1=NULL;
5299                         asprintf(&idx_1, "[%d]", cntr_delta_enum_1);
5300                         if (idx_1) {
5301                                 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5302                                 free(idx_1);
5303                         }
5304                 }
5305                 ndr->depth--;
5306         }
5307         ndr->depth--;
5308         ndr->depth--;
5309 }
5310
5311 static enum ndr_err_code ndr_push_netr_UAS_INFO_0(struct ndr_push *ndr, int ndr_flags, const struct netr_UAS_INFO_0 *r)
5312 {
5313         {
5314                 uint32_t _flags_save_STRUCT = ndr->flags;
5315                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5316                 if (ndr_flags & NDR_SCALARS) {
5317                         NDR_CHECK(ndr_push_align(ndr, 4));
5318                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5319                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5320                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5321                 }
5322                 if (ndr_flags & NDR_BUFFERS) {
5323                 }
5324                 ndr->flags = _flags_save_STRUCT;
5325         }
5326         return NDR_ERR_SUCCESS;
5327 }
5328
5329 static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
5330 {
5331         {
5332                 uint32_t _flags_save_STRUCT = ndr->flags;
5333                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5334                 if (ndr_flags & NDR_SCALARS) {
5335                         NDR_CHECK(ndr_pull_align(ndr, 4));
5336                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5337                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5338                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5339                 }
5340                 if (ndr_flags & NDR_BUFFERS) {
5341                 }
5342                 ndr->flags = _flags_save_STRUCT;
5343         }
5344         return NDR_ERR_SUCCESS;
5345 }
5346
5347 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
5348 {
5349         ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5350         {
5351                 uint32_t _flags_save_STRUCT = ndr->flags;
5352                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5353                 ndr->depth++;
5354                 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5355                 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5356                 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5357                 ndr->depth--;
5358                 ndr->flags = _flags_save_STRUCT;
5359         }
5360 }
5361
5362 static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
5363 {
5364         if (ndr_flags & NDR_SCALARS) {
5365                 NDR_CHECK(ndr_push_align(ndr, 4));
5366                 {
5367                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5368                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5369                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5370                         ndr->flags = _flags_save_DATA_BLOB;
5371                 }
5372         }
5373         if (ndr_flags & NDR_BUFFERS) {
5374         }
5375         return NDR_ERR_SUCCESS;
5376 }
5377
5378 static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
5379 {
5380         if (ndr_flags & NDR_SCALARS) {
5381                 NDR_CHECK(ndr_pull_align(ndr, 4));
5382                 {
5383                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5384                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5385                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5386                         ndr->flags = _flags_save_DATA_BLOB;
5387                 }
5388         }
5389         if (ndr_flags & NDR_BUFFERS) {
5390         }
5391         return NDR_ERR_SUCCESS;
5392 }
5393
5394 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
5395 {
5396         ndr_print_struct(ndr, name, "netr_AccountBuffer");
5397         ndr->depth++;
5398         ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5399         ndr->depth--;
5400 }
5401
5402 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_1(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_1 *r)
5403 {
5404         if (ndr_flags & NDR_SCALARS) {
5405                 NDR_CHECK(ndr_push_align(ndr, 4));
5406                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5407                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5408         }
5409         if (ndr_flags & NDR_BUFFERS) {
5410         }
5411         return NDR_ERR_SUCCESS;
5412 }
5413
5414 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
5415 {
5416         if (ndr_flags & NDR_SCALARS) {
5417                 NDR_CHECK(ndr_pull_align(ndr, 4));
5418                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5419                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5420         }
5421         if (ndr_flags & NDR_BUFFERS) {
5422         }
5423         return NDR_ERR_SUCCESS;
5424 }
5425
5426 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
5427 {
5428         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5429         ndr->depth++;
5430         ndr_print_uint32(ndr, "flags", r->flags);
5431         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5432         ndr->depth--;
5433 }
5434
5435 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_2(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_2 *r)
5436 {
5437         if (ndr_flags & NDR_SCALARS) {
5438                 NDR_CHECK(ndr_push_align(ndr, 4));
5439                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5440                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5441                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5442                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5443                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5444                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->trusted_dc_name, ndr_charset_length(r->trusted_dc_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5445                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status));
5446         }
5447         if (ndr_flags & NDR_BUFFERS) {
5448         }
5449         return NDR_ERR_SUCCESS;
5450 }
5451
5452 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
5453 {
5454         if (ndr_flags & NDR_SCALARS) {
5455                 NDR_CHECK(ndr_pull_align(ndr, 4));
5456                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5457                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5458                 NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5459                 NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5460                 if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5461                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->trusted_dc_name), ndr_get_array_length(ndr, &r->trusted_dc_name));
5462                 }
5463                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5464                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_dc_name, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t), CH_UTF16));
5465                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status));
5466         }
5467         if (ndr_flags & NDR_BUFFERS) {
5468         }
5469         return NDR_ERR_SUCCESS;
5470 }
5471
5472 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
5473 {
5474         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5475         ndr->depth++;
5476         ndr_print_uint32(ndr, "flags", r->flags);
5477         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5478         ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5479         ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status);
5480         ndr->depth--;
5481 }
5482
5483 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_3(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_3 *r)
5484 {
5485         if (ndr_flags & NDR_SCALARS) {
5486                 NDR_CHECK(ndr_push_align(ndr, 4));
5487                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5488                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5489                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5490                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5491                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5492                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5493                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5494         }
5495         if (ndr_flags & NDR_BUFFERS) {
5496         }
5497         return NDR_ERR_SUCCESS;
5498 }
5499
5500 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
5501 {
5502         if (ndr_flags & NDR_SCALARS) {
5503                 NDR_CHECK(ndr_pull_align(ndr, 4));
5504                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5505                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5506                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5507                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5508                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5509                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5510                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5511         }
5512         if (ndr_flags & NDR_BUFFERS) {
5513         }
5514         return NDR_ERR_SUCCESS;
5515 }
5516
5517 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
5518 {
5519         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
5520         ndr->depth++;
5521         ndr_print_uint32(ndr, "flags", r->flags);
5522         ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5523         ndr_print_uint32(ndr, "unknown1", r->unknown1);
5524         ndr_print_uint32(ndr, "unknown2", r->unknown2);
5525         ndr_print_uint32(ndr, "unknown3", r->unknown3);
5526         ndr_print_uint32(ndr, "unknown4", r->unknown4);
5527         ndr_print_uint32(ndr, "unknown5", r->unknown5);
5528         ndr->depth--;
5529 }
5530
5531 static enum ndr_err_code ndr_push_netr_CONTROL_QUERY_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_QUERY_INFORMATION *r)
5532 {
5533         if (ndr_flags & NDR_SCALARS) {
5534                 int level = ndr_push_get_switch_value(ndr, r);
5535                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5536                 switch (level) {
5537                         case 1:
5538                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5539                         break;
5540
5541                         case 2:
5542                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5543                         break;
5544
5545                         case 3:
5546                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5547                         break;
5548
5549                         default:
5550                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5551                 }
5552         }
5553         if (ndr_flags & NDR_BUFFERS) {
5554                 int level = ndr_push_get_switch_value(ndr, r);
5555                 switch (level) {
5556                         case 1:
5557                                 if (r->info1) {
5558                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5559                                 }
5560                         break;
5561
5562                         case 2:
5563                                 if (r->info2) {
5564                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS, r->info2));
5565                                 }
5566                         break;
5567
5568                         case 3:
5569                                 if (r->info3) {
5570                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5571                                 }
5572                         break;
5573
5574                         default:
5575                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5576                 }
5577         }
5578         return NDR_ERR_SUCCESS;
5579 }
5580
5581 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
5582 {
5583         int level;
5584         uint32_t _level;
5585         TALLOC_CTX *_mem_save_info1_0;
5586         TALLOC_CTX *_mem_save_info2_0;
5587         TALLOC_CTX *_mem_save_info3_0;
5588         level = ndr_pull_get_switch_value(ndr, r);
5589         if (ndr_flags & NDR_SCALARS) {
5590                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5591                 if (_level != level) {
5592                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5593                 }
5594                 switch (level) {
5595                         case 1: {
5596                                 uint32_t _ptr_info1;
5597                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5598                                 if (_ptr_info1) {
5599                                         NDR_PULL_ALLOC(ndr, r->info1);
5600                                 } else {
5601                                         r->info1 = NULL;
5602                                 }
5603                         break; }
5604
5605                         case 2: {
5606                                 uint32_t _ptr_info2;
5607                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5608                                 if (_ptr_info2) {
5609                                         NDR_PULL_ALLOC(ndr, r->info2);
5610                                 } else {
5611                                         r->info2 = NULL;
5612                                 }
5613                         break; }
5614
5615                         case 3: {
5616                                 uint32_t _ptr_info3;
5617                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5618                                 if (_ptr_info3) {
5619                                         NDR_PULL_ALLOC(ndr, r->info3);
5620                                 } else {
5621                                         r->info3 = NULL;
5622                                 }
5623                         break; }
5624
5625                         default:
5626                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5627                 }
5628         }
5629         if (ndr_flags & NDR_BUFFERS) {
5630                 switch (level) {
5631                         case 1:
5632                                 if (r->info1) {
5633                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5634                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5635                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5636                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5637                                 }
5638                         break;
5639
5640                         case 2:
5641                                 if (r->info2) {
5642                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5643                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5644                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS, r->info2));
5645                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5646                                 }
5647                         break;
5648
5649                         case 3:
5650                                 if (r->info3) {
5651                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5652                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5653                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5654                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5655                                 }
5656                         break;
5657
5658                         default:
5659                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5660                 }
5661         }
5662         return NDR_ERR_SUCCESS;
5663 }
5664
5665 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
5666 {
5667         int level;
5668         level = ndr_print_get_switch_value(ndr, r);
5669         ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
5670         switch (level) {
5671                 case 1:
5672                         ndr_print_ptr(ndr, "info1", r->info1);
5673                         ndr->depth++;
5674                         if (r->info1) {
5675                                 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
5676                         }
5677                         ndr->depth--;
5678                 break;
5679
5680                 case 2:
5681                         ndr_print_ptr(ndr, "info2", r->info2);
5682                         ndr->depth++;
5683                         if (r->info2) {
5684                                 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
5685                         }
5686                         ndr->depth--;
5687                 break;
5688
5689                 case 3:
5690                         ndr_print_ptr(ndr, "info3", r->info3);
5691                         ndr->depth++;
5692                         if (r->info3) {
5693                                 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
5694                         }
5695                         ndr->depth--;
5696                 break;
5697
5698                 default:
5699                         ndr_print_bad_level(ndr, name, level);
5700         }
5701 }
5702
5703 static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
5704 {
5705         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5706         return NDR_ERR_SUCCESS;
5707 }
5708
5709 static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
5710 {
5711         uint32_t v;
5712         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5713         *r = v;
5714         return NDR_ERR_SUCCESS;
5715 }
5716
5717 _PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
5718 {
5719         const char *val = NULL;
5720
5721         switch (r) {
5722                 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
5723                 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
5724                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5725                 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
5726         }
5727         ndr_print_enum(ndr, name, "ENUM", val, r);
5728 }
5729
5730 static enum ndr_err_code ndr_push_netr_CONTROL_DATA_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_DATA_INFORMATION *r)
5731 {
5732         if (ndr_flags & NDR_SCALARS) {
5733                 int level = ndr_push_get_switch_value(ndr, r);
5734                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5735                 switch (level) {
5736                         case NETLOGON_CONTROL_REDISCOVER:
5737                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5738                         break;
5739
5740                         case NETLOGON_CONTROL_TC_QUERY:
5741                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5742                         break;
5743
5744                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5745                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5746                         break;
5747
5748                         case NETLOGON_CONTROL_SET_DBFLAG:
5749                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
5750                         break;
5751
5752                         default:
5753                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5754                 }
5755         }
5756         if (ndr_flags & NDR_BUFFERS) {
5757                 int level = ndr_push_get_switch_value(ndr, r);
5758                 switch (level) {
5759                         case NETLOGON_CONTROL_REDISCOVER:
5760                                 if (r->domain) {
5761                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5762                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5763                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5764                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5765                                 }
5766                         break;
5767
5768                         case NETLOGON_CONTROL_TC_QUERY:
5769                                 if (r->domain) {
5770                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5771                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5772                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5773                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5774                                 }
5775                         break;
5776
5777                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5778                                 if (r->domain) {
5779                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5780                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5781                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5782                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5783                                 }
5784                         break;
5785
5786                         case NETLOGON_CONTROL_SET_DBFLAG:
5787                         break;
5788
5789                         default:
5790                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5791                 }
5792         }
5793         return NDR_ERR_SUCCESS;
5794 }
5795
5796 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
5797 {
5798         int level;
5799         uint32_t _level;
5800         TALLOC_CTX *_mem_save_domain_0;
5801         level = ndr_pull_get_switch_value(ndr, r);
5802         if (ndr_flags & NDR_SCALARS) {
5803                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5804                 if (_level != level) {
5805                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5806                 }
5807                 switch (level) {
5808                         case NETLOGON_CONTROL_REDISCOVER: {
5809                                 uint32_t _ptr_domain;
5810                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5811                                 if (_ptr_domain) {
5812                                         NDR_PULL_ALLOC(ndr, r->domain);
5813                                 } else {
5814                                         r->domain = NULL;
5815                                 }
5816                         break; }
5817
5818                         case NETLOGON_CONTROL_TC_QUERY: {
5819                                 uint32_t _ptr_domain;
5820                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5821                                 if (_ptr_domain) {
5822                                         NDR_PULL_ALLOC(ndr, r->domain);
5823                                 } else {
5824                                         r->domain = NULL;
5825                                 }
5826                         break; }
5827
5828                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5829                                 uint32_t _ptr_domain;
5830                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5831                                 if (_ptr_domain) {
5832                                         NDR_PULL_ALLOC(ndr, r->domain);
5833                                 } else {
5834                                         r->domain = NULL;
5835                                 }
5836                         break; }
5837
5838                         case NETLOGON_CONTROL_SET_DBFLAG: {
5839                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
5840                         break; }
5841
5842                         default:
5843                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5844                 }
5845         }
5846         if (ndr_flags & NDR_BUFFERS) {
5847                 switch (level) {
5848                         case NETLOGON_CONTROL_REDISCOVER:
5849                                 if (r->domain) {
5850                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5851                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5852                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5853                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5854                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5855                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
5856                                         }
5857                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5858                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5859                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5860                                 }
5861                         break;
5862
5863                         case NETLOGON_CONTROL_TC_QUERY:
5864                                 if (r->domain) {
5865                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5866                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5867                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5868                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5869                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5870                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
5871                                         }
5872                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5873                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5874                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5875                                 }
5876                         break;
5877
5878                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5879                                 if (r->domain) {
5880                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5881                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5882                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5883                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5884                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5885                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
5886                                         }
5887                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5888                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5889                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5890                                 }
5891                         break;
5892
5893                         case NETLOGON_CONTROL_SET_DBFLAG:
5894                         break;
5895
5896                         default:
5897                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5898                 }
5899         }
5900         return NDR_ERR_SUCCESS;
5901 }
5902
5903 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
5904 {
5905         int level;
5906         level = ndr_print_get_switch_value(ndr, r);
5907         ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
5908         switch (level) {
5909                 case NETLOGON_CONTROL_REDISCOVER:
5910                         ndr_print_ptr(ndr, "domain", r->domain);
5911                         ndr->depth++;
5912                         if (r->domain) {
5913                                 ndr_print_string(ndr, "domain", r->domain);
5914                         }
5915                         ndr->depth--;
5916                 break;
5917
5918                 case NETLOGON_CONTROL_TC_QUERY:
5919                         ndr_print_ptr(ndr, "domain", r->domain);
5920                         ndr->depth++;
5921                         if (r->domain) {
5922                                 ndr_print_string(ndr, "domain", r->domain);
5923                         }
5924                         ndr->depth--;
5925                 break;
5926
5927                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5928                         ndr_print_ptr(ndr, "domain", r->domain);
5929                         ndr->depth++;
5930                         if (r->domain) {
5931                                 ndr_print_string(ndr, "domain", r->domain);
5932                         }
5933                         ndr->depth--;
5934                 break;
5935
5936                 case NETLOGON_CONTROL_SET_DBFLAG:
5937                         ndr_print_uint32(ndr, "debug_level", r->debug_level);
5938                 break;
5939
5940                 default:
5941                         ndr_print_bad_level(ndr, name, level);
5942         }
5943 }
5944
5945 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
5946 {
5947         if (ndr_flags & NDR_SCALARS) {
5948                 NDR_CHECK(ndr_push_align(ndr, 4));
5949                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5950                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
5951         }
5952         if (ndr_flags & NDR_BUFFERS) {
5953                 if (r->data) {
5954                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5955                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
5956                 }
5957         }
5958         return NDR_ERR_SUCCESS;
5959 }
5960
5961 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
5962 {
5963         uint32_t _ptr_data;
5964         TALLOC_CTX *_mem_save_data_0;
5965         if (ndr_flags & NDR_SCALARS) {
5966                 NDR_CHECK(ndr_pull_align(ndr, 4));
5967                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
5968                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
5969                 if (_ptr_data) {
5970                         NDR_PULL_ALLOC(ndr, r->data);
5971                 } else {
5972                         r->data = NULL;
5973                 }
5974         }
5975         if (ndr_flags & NDR_BUFFERS) {
5976                 if (r->data) {
5977                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
5978                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
5979                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
5980                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
5981                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
5982                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
5983                 }
5984                 if (r->data) {
5985                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
5986                 }
5987         }
5988         return NDR_ERR_SUCCESS;
5989 }
5990
5991 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
5992 {
5993         ndr_print_struct(ndr, name, "netr_Blob");
5994         ndr->depth++;
5995         ndr_print_uint32(ndr, "length", r->length);
5996         ndr_print_ptr(ndr, "data", r->data);
5997         ndr->depth++;
5998         if (r->data) {
5999                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6000         }
6001         ndr->depth--;
6002         ndr->depth--;
6003 }
6004
6005 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6006 {
6007         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6008         return NDR_ERR_SUCCESS;
6009 }
6010
6011 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6012 {
6013         uint32_t v;
6014         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6015         *r = v;
6016         return NDR_ERR_SUCCESS;
6017 }
6018
6019 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6020 {
6021         ndr_print_uint32(ndr, name, r);
6022         ndr->depth++;
6023         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6024         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6025         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6026         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6027         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6028         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6029         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6030         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6031         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6032         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6033         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6034         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6035         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6036         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6037         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6038         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6039         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6040         ndr->depth--;
6041 }
6042
6043 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6044 {
6045         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6046         return NDR_ERR_SUCCESS;
6047 }
6048
6049 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6050 {
6051         uint32_t v;
6052         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6053         *r = v;
6054         return NDR_ERR_SUCCESS;
6055 }
6056
6057 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6058 {
6059         const char *val = NULL;
6060
6061         switch (r) {
6062                 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6063                 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6064         }
6065         ndr_print_enum(ndr, name, "ENUM", val, r);
6066 }
6067
6068 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6069 {
6070         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6071         return NDR_ERR_SUCCESS;
6072 }
6073
6074 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6075 {
6076         uint32_t v;
6077         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6078         *r = v;
6079         return NDR_ERR_SUCCESS;
6080 }
6081
6082 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6083 {
6084         ndr_print_uint32(ndr, name, r);
6085         ndr->depth++;
6086         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6087         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6088         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6089         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6090         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6091         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6092         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6093         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6094         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6095         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6096         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6097         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6098         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6099         ndr->depth--;
6100 }
6101
6102 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6103 {
6104         if (ndr_flags & NDR_SCALARS) {
6105                 NDR_CHECK(ndr_push_align(ndr, 4));
6106                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6107                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6108                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6109                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6110                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6111                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6112                 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6113                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6114                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6115         }
6116         if (ndr_flags & NDR_BUFFERS) {
6117                 if (r->dc_unc) {
6118                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6119                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6120                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6121                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6122                 }
6123                 if (r->dc_address) {
6124                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6125                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6126                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6127                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6128                 }
6129                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6130                 if (r->domain_name) {
6131                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6132                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6133                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6134                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6135                 }
6136                 if (r->forest_name) {
6137                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6138                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6139                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6140                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6141                 }
6142                 if (r->dc_site_name) {
6143                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6144                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6145                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6146                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_site_name, ndr_charset_length(r->dc_site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6147                 }
6148                 if (r->client_site_name) {
6149                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6150                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6151                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6152                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_site_name, ndr_charset_length(r->client_site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6153                 }
6154         }
6155         return NDR_ERR_SUCCESS;
6156 }
6157
6158 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6159 {
6160         uint32_t _ptr_dc_unc;
6161         TALLOC_CTX *_mem_save_dc_unc_0;
6162         uint32_t _ptr_dc_address;
6163         TALLOC_CTX *_mem_save_dc_address_0;
6164         uint32_t _ptr_domain_name;
6165         TALLOC_CTX *_mem_save_domain_name_0;
6166         uint32_t _ptr_forest_name;
6167         TALLOC_CTX *_mem_save_forest_name_0;
6168         uint32_t _ptr_dc_site_name;
6169         TALLOC_CTX *_mem_save_dc_site_name_0;
6170         uint32_t _ptr_client_site_name;
6171         TALLOC_CTX *_mem_save_client_site_name_0;
6172         if (ndr_flags & NDR_SCALARS) {
6173                 NDR_CHECK(ndr_pull_align(ndr, 4));
6174                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6175                 if (_ptr_dc_unc) {
6176                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6177                 } else {
6178                         r->dc_unc = NULL;
6179                 }
6180                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6181                 if (_ptr_dc_address) {
6182                         NDR_PULL_ALLOC(ndr, r->dc_address);
6183                 } else {
6184                         r->dc_address = NULL;
6185                 }
6186                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6187                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6188                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6189                 if (_ptr_domain_name) {
6190                         NDR_PULL_ALLOC(ndr, r->domain_name);
6191                 } else {
6192                         r->domain_name = NULL;
6193                 }
6194                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6195                 if (_ptr_forest_name) {
6196                         NDR_PULL_ALLOC(ndr, r->forest_name);
6197                 } else {
6198                         r->forest_name = NULL;
6199                 }
6200                 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6201                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6202                 if (_ptr_dc_site_name) {
6203                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6204                 } else {
6205                         r->dc_site_name = NULL;
6206                 }
6207                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6208                 if (_ptr_client_site_name) {
6209                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6210                 } else {
6211                         r->client_site_name = NULL;
6212                 }
6213         }
6214         if (ndr_flags & NDR_BUFFERS) {
6215                 if (r->dc_unc) {
6216                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6217                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6218                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6219                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6220                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6221                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_unc), ndr_get_array_length(ndr, &r->dc_unc));
6222                         }
6223                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6224                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6225                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6226                 }
6227                 if (r->dc_address) {
6228                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6229                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6230                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6231                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6232                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6233                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_address), ndr_get_array_length(ndr, &r->dc_address));
6234                         }
6235                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6236                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6237                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6238                 }
6239                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6240                 if (r->domain_name) {
6241                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6242                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6243                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6244                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6245                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6246                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name));
6247                         }
6248                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6249                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6250                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6251                 }
6252                 if (r->forest_name) {
6253                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6254                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6255                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
6256                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
6257                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
6258                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->forest_name), ndr_get_array_length(ndr, &r->forest_name));
6259                         }
6260                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
6261                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
6262                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
6263                 }
6264                 if (r->dc_site_name) {
6265                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6266                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
6267                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
6268                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
6269                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
6270                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_site_name), ndr_get_array_length(ndr, &r->dc_site_name));
6271                         }
6272                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
6273                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_site_name, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t), CH_UTF16));
6274                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
6275                 }
6276                 if (r->client_site_name) {
6277                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6278                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
6279                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
6280                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
6281                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
6282                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client_site_name), ndr_get_array_length(ndr, &r->client_site_name));
6283                         }
6284                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
6285                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_site_name, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t), CH_UTF16));
6286                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
6287                 }
6288         }
6289         return NDR_ERR_SUCCESS;
6290 }
6291
6292 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
6293 {
6294         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
6295         ndr->depth++;
6296         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
6297         ndr->depth++;
6298         if (r->dc_unc) {
6299                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
6300         }
6301         ndr->depth--;
6302         ndr_print_ptr(ndr, "dc_address", r->dc_address);
6303         ndr->depth++;
6304         if (r->dc_address) {
6305                 ndr_print_string(ndr, "dc_address", r->dc_address);
6306         }
6307         ndr->depth--;
6308         ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
6309         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
6310         ndr_print_ptr(ndr, "domain_name", r->domain_name);
6311         ndr->depth++;
6312         if (r->domain_name) {
6313                 ndr_print_string(ndr, "domain_name", r->domain_name);
6314         }
6315         ndr->depth--;
6316         ndr_print_ptr(ndr, "forest_name", r->forest_name);
6317         ndr->depth++;
6318         if (r->forest_name) {
6319                 ndr_print_string(ndr, "forest_name", r->forest_name);
6320         }
6321         ndr->depth--;
6322         ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
6323         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
6324         ndr->depth++;
6325         if (r->dc_site_name) {
6326                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
6327         }
6328         ndr->depth--;
6329         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
6330         ndr->depth++;
6331         if (r->client_site_name) {
6332                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
6333         }
6334         ndr->depth--;
6335         ndr->depth--;
6336 }
6337
6338 static enum ndr_err_code ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r)
6339 {
6340         uint32_t cntr_data_1;
6341         {
6342                 uint32_t _flags_save_STRUCT = ndr->flags;
6343                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6344                 if (ndr_flags & NDR_SCALARS) {
6345                         NDR_CHECK(ndr_push_align(ndr, 4));
6346                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
6347                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
6348                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6349                 }
6350                 if (ndr_flags & NDR_BUFFERS) {
6351                         if (r->data) {
6352                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
6353                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6354                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
6355                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6356                                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1]));
6357                                 }
6358                         }
6359                 }
6360                 ndr->flags = _flags_save_STRUCT;
6361         }
6362         return NDR_ERR_SUCCESS;
6363 }
6364
6365 static enum ndr_err_code ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r)
6366 {
6367         uint32_t _ptr_data;
6368         uint32_t cntr_data_1;
6369         TALLOC_CTX *_mem_save_data_0;
6370         TALLOC_CTX *_mem_save_data_1;
6371         {
6372                 uint32_t _flags_save_STRUCT = ndr->flags;
6373                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6374                 if (ndr_flags & NDR_SCALARS) {
6375                         NDR_CHECK(ndr_pull_align(ndr, 4));
6376                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
6377                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
6378                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6379                         if (_ptr_data) {
6380                                 NDR_PULL_ALLOC(ndr, r->data);
6381                         } else {
6382                                 r->data = NULL;
6383                         }
6384                 }
6385                 if (ndr_flags & NDR_BUFFERS) {
6386                         if (r->data) {
6387                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6388                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6389                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6390                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
6391                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
6392                                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data));
6393                                 }
6394                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6395                                 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
6396                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6397                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6398                                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
6399                                 }
6400                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
6401                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6402                         }
6403                         if (r->data) {
6404                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2));
6405                         }
6406                         if (r->data) {
6407                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2));
6408                         }
6409                 }
6410                 ndr->flags = _flags_save_STRUCT;
6411         }
6412         return NDR_ERR_SUCCESS;
6413 }
6414
6415 _PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r)
6416 {
6417         uint32_t cntr_data_1;
6418         ndr_print_struct(ndr, name, "netr_BinaryString");
6419         {
6420                 uint32_t _flags_save_STRUCT = ndr->flags;
6421                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6422                 ndr->depth++;
6423                 ndr_print_uint16(ndr, "length", r->length);
6424                 ndr_print_uint16(ndr, "size", r->size);
6425                 ndr_print_ptr(ndr, "data", r->data);
6426                 ndr->depth++;
6427                 if (r->data) {
6428                         ndr->print(ndr, "%s: ARRAY(%d)", "data", r->length / 2);
6429                         ndr->depth++;
6430                         for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) {
6431                                 char *idx_1=NULL;
6432                                 asprintf(&idx_1, "[%d]", cntr_data_1);
6433                                 if (idx_1) {
6434                                         ndr_print_uint16(ndr, "data", r->data[cntr_data_1]);
6435                                         free(idx_1);
6436                                 }
6437                         }
6438                         ndr->depth--;
6439                 }
6440                 ndr->depth--;
6441                 ndr->depth--;
6442                 ndr->flags = _flags_save_STRUCT;
6443         }
6444 }
6445
6446 static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
6447 {
6448         uint32_t cntr_unknown7_0;
6449         if (ndr_flags & NDR_SCALARS) {
6450                 NDR_CHECK(ndr_push_align(ndr, 4));
6451                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6452                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
6453                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
6454                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
6455                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
6456                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
6457                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
6458                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6459                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
6460                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6461                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6462                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6463                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
6464                 }
6465         }
6466         if (ndr_flags & NDR_BUFFERS) {
6467                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6468                 if (r->workstation_domain) {
6469                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6470                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6471                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6472                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6473                 }
6474                 if (r->workstation_site) {
6475                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6476                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6477                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6478                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6479                 }
6480                 if (r->unknown1) {
6481                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6482                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6483                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6484                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6485                 }
6486                 if (r->unknown2) {
6487                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6488                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6489                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6490                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6491                 }
6492                 if (r->unknown3) {
6493                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6494                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6495                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6496                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6497                 }
6498                 if (r->unknown4) {
6499                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6500                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6501                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6502                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6503                 }
6504                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6505                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
6506                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6507                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6508         }
6509         return NDR_ERR_SUCCESS;
6510 }
6511
6512 static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
6513 {
6514         uint32_t _ptr_workstation_domain;
6515         TALLOC_CTX *_mem_save_workstation_domain_0;
6516         uint32_t _ptr_workstation_site;
6517         TALLOC_CTX *_mem_save_workstation_site_0;
6518         uint32_t _ptr_unknown1;
6519         TALLOC_CTX *_mem_save_unknown1_0;
6520         uint32_t _ptr_unknown2;
6521         TALLOC_CTX *_mem_save_unknown2_0;
6522         uint32_t _ptr_unknown3;
6523         TALLOC_CTX *_mem_save_unknown3_0;
6524         uint32_t _ptr_unknown4;
6525         TALLOC_CTX *_mem_save_unknown4_0;
6526         uint32_t cntr_unknown7_0;
6527         if (ndr_flags & NDR_SCALARS) {
6528                 NDR_CHECK(ndr_pull_align(ndr, 4));
6529                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6530                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
6531                 if (_ptr_workstation_domain) {
6532                         NDR_PULL_ALLOC(ndr, r->workstation_domain);
6533                 } else {
6534                         r->workstation_domain = NULL;
6535                 }
6536                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
6537                 if (_ptr_workstation_site) {
6538                         NDR_PULL_ALLOC(ndr, r->workstation_site);
6539                 } else {
6540                         r->workstation_site = NULL;
6541                 }
6542                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
6543                 if (_ptr_unknown1) {
6544                         NDR_PULL_ALLOC(ndr, r->unknown1);
6545                 } else {
6546                         r->unknown1 = NULL;
6547                 }
6548                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
6549                 if (_ptr_unknown2) {
6550                         NDR_PULL_ALLOC(ndr, r->unknown2);
6551                 } else {
6552                         r->unknown2 = NULL;
6553                 }
6554                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
6555                 if (_ptr_unknown3) {
6556                         NDR_PULL_ALLOC(ndr, r->unknown3);
6557                 } else {
6558                         r->unknown3 = NULL;
6559                 }
6560                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
6561                 if (_ptr_unknown4) {
6562                         NDR_PULL_ALLOC(ndr, r->unknown4);
6563                 } else {
6564                         r->unknown4 = NULL;
6565                 }
6566                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6567                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
6568                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6569                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6570                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6571                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
6572                 }
6573         }
6574         if (ndr_flags & NDR_BUFFERS) {
6575                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6576                 if (r->workstation_domain) {
6577                         _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6578                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
6579                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
6580                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
6581                         if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
6582                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_domain), ndr_get_array_length(ndr, &r->workstation_domain));
6583                         }
6584                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
6585                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
6586                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
6587                 }
6588                 if (r->workstation_site) {
6589                         _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
6590                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
6591                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
6592                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
6593                         if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
6594                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_site), ndr_get_array_length(ndr, &r->workstation_site));
6595                         }
6596                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
6597                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
6598                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
6599                 }
6600                 if (r->unknown1) {
6601                         _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6602                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
6603                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
6604                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
6605                         if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
6606                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown1), ndr_get_array_length(ndr, &r->unknown1));
6607                         }
6608                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
6609                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
6610                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
6611                 }
6612                 if (r->unknown2) {
6613                         _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6614                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
6615                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
6616                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
6617                         if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
6618                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown2), ndr_get_array_length(ndr, &r->unknown2));
6619                         }
6620                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
6621                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
6622                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
6623                 }
6624                 if (r->unknown3) {
6625                         _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6626                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
6627                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
6628                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
6629                         if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
6630                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown3), ndr_get_array_length(ndr, &r->unknown3));
6631                         }
6632                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
6633                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
6634                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
6635                 }
6636                 if (r->unknown4) {
6637                         _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6638                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
6639                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
6640                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
6641                         if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
6642                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown4), ndr_get_array_length(ndr, &r->unknown4));
6643                         }
6644                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
6645                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
6646                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
6647                 }
6648                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6649                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
6650                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6651                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6652         }
6653         return NDR_ERR_SUCCESS;
6654 }
6655
6656 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
6657 {
6658         uint32_t cntr_unknown7_0;
6659         ndr_print_struct(ndr, name, "netr_DomainQuery1");
6660         ndr->depth++;
6661         ndr_print_netr_Blob(ndr, "blob", &r->blob);
6662         ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
6663         ndr->depth++;
6664         if (r->workstation_domain) {
6665                 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
6666         }
6667         ndr->depth--;
6668         ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
6669         ndr->depth++;
6670         if (r->workstation_site) {
6671                 ndr_print_string(ndr, "workstation_site", r->workstation_site);
6672         }
6673         ndr->depth--;
6674         ndr_print_ptr(ndr, "unknown1", r->unknown1);
6675         ndr->depth++;
6676         if (r->unknown1) {
6677                 ndr_print_string(ndr, "unknown1", r->unknown1);
6678         }
6679         ndr->depth--;
6680         ndr_print_ptr(ndr, "unknown2", r->unknown2);
6681         ndr->depth++;
6682         if (r->unknown2) {
6683                 ndr_print_string(ndr, "unknown2", r->unknown2);
6684         }
6685         ndr->depth--;
6686         ndr_print_ptr(ndr, "unknown3", r->unknown3);
6687         ndr->depth++;
6688         if (r->unknown3) {
6689                 ndr_print_string(ndr, "unknown3", r->unknown3);
6690         }
6691         ndr->depth--;
6692         ndr_print_ptr(ndr, "unknown4", r->unknown4);
6693         ndr->depth++;
6694         if (r->unknown4) {
6695                 ndr_print_string(ndr, "unknown4", r->unknown4);
6696         }
6697         ndr->depth--;
6698         ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2);
6699         ndr_print_lsa_String(ndr, "product", &r->product);
6700         ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
6701         ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
6702         ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", 4);
6703         ndr->depth++;
6704         for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
6705                 char *idx_0=NULL;
6706                 asprintf(&idx_0, "[%d]", cntr_unknown7_0);
6707                 if (idx_0) {
6708                         ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
6709                         free(idx_0);
6710                 }
6711         }
6712         ndr->depth--;
6713         ndr->depth--;
6714 }
6715
6716 static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
6717 {
6718         if (ndr_flags & NDR_SCALARS) {
6719                 int level = ndr_push_get_switch_value(ndr, r);
6720                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6721                 switch (level) {
6722                         case 1:
6723                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6724                         break;
6725
6726                         case 2:
6727                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6728                         break;
6729
6730                         default:
6731                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6732                 }
6733         }
6734         if (ndr_flags & NDR_BUFFERS) {
6735                 int level = ndr_push_get_switch_value(ndr, r);
6736                 switch (level) {
6737                         case 1:
6738                                 if (r->query1) {
6739                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6740                                 }
6741                         break;
6742
6743                         case 2:
6744                                 if (r->query1) {
6745                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6746                                 }
6747                         break;
6748
6749                         default:
6750                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6751                 }
6752         }
6753         return NDR_ERR_SUCCESS;
6754 }
6755
6756 static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
6757 {
6758         int level;
6759         uint32_t _level;
6760         TALLOC_CTX *_mem_save_query1_0;
6761         level = ndr_pull_get_switch_value(ndr, r);
6762         if (ndr_flags & NDR_SCALARS) {
6763                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6764                 if (_level != level) {
6765                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6766                 }
6767                 switch (level) {
6768                         case 1: {
6769                                 uint32_t _ptr_query1;
6770                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6771                                 if (_ptr_query1) {
6772                                         NDR_PULL_ALLOC(ndr, r->query1);
6773                                 } else {
6774                                         r->query1 = NULL;
6775                                 }
6776                         break; }
6777
6778                         case 2: {
6779                                 uint32_t _ptr_query1;
6780                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6781                                 if (_ptr_query1) {
6782                                         NDR_PULL_ALLOC(ndr, r->query1);
6783                                 } else {
6784                                         r->query1 = NULL;
6785                                 }
6786                         break; }
6787
6788                         default:
6789                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6790                 }
6791         }
6792         if (ndr_flags & NDR_BUFFERS) {
6793                 switch (level) {
6794                         case 1:
6795                                 if (r->query1) {
6796                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6797                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6798                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6799                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6800                                 }
6801                         break;
6802
6803                         case 2:
6804                                 if (r->query1) {
6805                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6806                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6807                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6808                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6809                                 }
6810                         break;
6811
6812                         default:
6813                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6814                 }
6815         }
6816         return NDR_ERR_SUCCESS;
6817 }
6818
6819 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
6820 {
6821         int level;
6822         level = ndr_print_get_switch_value(ndr, r);
6823         ndr_print_union(ndr, name, level, "netr_DomainQuery");
6824         switch (level) {
6825                 case 1:
6826                         ndr_print_ptr(ndr, "query1", r->query1);
6827                         ndr->depth++;
6828                         if (r->query1) {
6829                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6830                         }
6831                         ndr->depth--;
6832                 break;
6833
6834                 case 2:
6835                         ndr_print_ptr(ndr, "query1", r->query1);
6836                         ndr->depth++;
6837                         if (r->query1) {
6838                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6839                         }
6840                         ndr->depth--;
6841                 break;
6842
6843                 default:
6844                         ndr_print_bad_level(ndr, name, level);
6845         }
6846 }
6847
6848 static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
6849 {
6850         uint32_t cntr_unknown1_0;
6851         uint32_t cntr_unknown_0;
6852         if (ndr_flags & NDR_SCALARS) {
6853                 NDR_CHECK(ndr_push_align(ndr, 4));
6854                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6855                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6856                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
6857                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
6858                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
6859                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6860                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6861                 }
6862                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6863                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6864                 }
6865         }
6866         if (ndr_flags & NDR_BUFFERS) {
6867                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6868                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6869                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6870                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
6871                 if (r->sid) {
6872                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6873                 }
6874                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6875                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6876                 }
6877         }
6878         return NDR_ERR_SUCCESS;
6879 }
6880
6881 static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
6882 {
6883         uint32_t _ptr_sid;
6884         TALLOC_CTX *_mem_save_sid_0;
6885         uint32_t cntr_unknown1_0;
6886         uint32_t cntr_unknown_0;
6887         if (ndr_flags & NDR_SCALARS) {
6888                 NDR_CHECK(ndr_pull_align(ndr, 4));
6889                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6890                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6891                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
6892                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
6893                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
6894                 if (_ptr_sid) {
6895                         NDR_PULL_ALLOC(ndr, r->sid);
6896                 } else {
6897                         r->sid = NULL;
6898                 }
6899                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6900                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6901                 }
6902                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6903                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
6904                 }
6905         }
6906         if (ndr_flags & NDR_BUFFERS) {
6907                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6908                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6909                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6910                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
6911                 if (r->sid) {
6912                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6913                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
6914                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6915                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
6916                 }
6917                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6918                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6919                 }
6920         }
6921         return NDR_ERR_SUCCESS;
6922 }
6923
6924 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
6925 {
6926         uint32_t cntr_unknown1_0;
6927         uint32_t cntr_unknown_0;
6928         ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
6929         ndr->depth++;
6930         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
6931         ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
6932         ndr_print_lsa_String(ndr, "forest", &r->forest);
6933         ndr_print_GUID(ndr, "guid", &r->guid);
6934         ndr_print_ptr(ndr, "sid", r->sid);
6935         ndr->depth++;
6936         if (r->sid) {
6937                 ndr_print_dom_sid2(ndr, "sid", r->sid);
6938         }
6939         ndr->depth--;
6940         ndr->print(ndr, "%s: ARRAY(%d)", "unknown1", 4);
6941         ndr->depth++;
6942         for (cntr_unknown1_0=0;cntr_unknown1_0<4;cntr_unknown1_0++) {
6943                 char *idx_0=NULL;
6944                 asprintf(&idx_0, "[%d]", cntr_unknown1_0);
6945                 if (idx_0) {
6946                         ndr_print_netr_BinaryString(ndr, "unknown1", &r->unknown1[cntr_unknown1_0]);
6947                         free(idx_0);
6948                 }
6949         }
6950         ndr->depth--;
6951         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 4);
6952         ndr->depth++;
6953         for (cntr_unknown_0=0;cntr_unknown_0<4;cntr_unknown_0++) {
6954                 char *idx_0=NULL;
6955                 asprintf(&idx_0, "[%d]", cntr_unknown_0);
6956                 if (idx_0) {
6957                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
6958                         free(idx_0);
6959                 }
6960         }
6961         ndr->depth--;
6962         ndr->depth--;
6963 }
6964
6965 static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
6966 {
6967         uint32_t cntr_trusts_1;
6968         uint32_t cntr_unknown_0;
6969         if (ndr_flags & NDR_SCALARS) {
6970                 NDR_CHECK(ndr_push_align(ndr, 4));
6971                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
6972                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6973                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
6974                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
6975                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6976                 }
6977         }
6978         if (ndr_flags & NDR_BUFFERS) {
6979                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
6980                 if (r->trusts) {
6981                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6982                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6983                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
6984                         }
6985                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6986                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
6987                         }
6988                 }
6989         }
6990         return NDR_ERR_SUCCESS;
6991 }
6992
6993 static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
6994 {
6995         uint32_t _ptr_trusts;
6996         uint32_t cntr_trusts_1;
6997         TALLOC_CTX *_mem_save_trusts_0;
6998         TALLOC_CTX *_mem_save_trusts_1;
6999         uint32_t cntr_unknown_0;
7000         if (ndr_flags & NDR_SCALARS) {
7001                 NDR_CHECK(ndr_pull_align(ndr, 4));
7002                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7003                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
7004                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
7005                 if (_ptr_trusts) {
7006                         NDR_PULL_ALLOC(ndr, r->trusts);
7007                 } else {
7008                         r->trusts = NULL;
7009                 }
7010                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
7011                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
7012                 }
7013         }
7014         if (ndr_flags & NDR_BUFFERS) {
7015                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7016                 if (r->trusts) {
7017                         _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
7018                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7019                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
7020                         NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
7021                         _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
7022                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7023                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7024                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7025                         }
7026                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7027                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7028                         }
7029                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
7030                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
7031                 }
7032                 if (r->trusts) {
7033                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
7034                 }
7035         }
7036         return NDR_ERR_SUCCESS;
7037 }
7038
7039 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
7040 {
7041         uint32_t cntr_trusts_1;
7042         uint32_t cntr_unknown_0;
7043         ndr_print_struct(ndr, name, "netr_DomainInfo1");
7044         ndr->depth++;
7045         ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
7046         ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
7047         ndr_print_ptr(ndr, "trusts", r->trusts);
7048         ndr->depth++;
7049         if (r->trusts) {
7050                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", r->num_trusts);
7051                 ndr->depth++;
7052                 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
7053                         char *idx_1=NULL;
7054                         asprintf(&idx_1, "[%d]", cntr_trusts_1);
7055                         if (idx_1) {
7056                                 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
7057                                 free(idx_1);
7058                         }
7059                 }
7060                 ndr->depth--;
7061         }
7062         ndr->depth--;
7063         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 14);
7064         ndr->depth++;
7065         for (cntr_unknown_0=0;cntr_unknown_0<14;cntr_unknown_0++) {
7066                 char *idx_0=NULL;
7067                 asprintf(&idx_0, "[%d]", cntr_unknown_0);
7068                 if (idx_0) {
7069                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
7070                         free(idx_0);
7071                 }
7072         }
7073         ndr->depth--;
7074         ndr->depth--;
7075 }
7076
7077 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
7078 {
7079         if (ndr_flags & NDR_SCALARS) {
7080                 int level = ndr_push_get_switch_value(ndr, r);
7081                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7082                 switch (level) {
7083                         case 1:
7084                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7085                         break;
7086
7087                         case 2:
7088                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7089                         break;
7090
7091                         default:
7092                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7093                 }
7094         }
7095         if (ndr_flags & NDR_BUFFERS) {
7096                 int level = ndr_push_get_switch_value(ndr, r);
7097                 switch (level) {
7098                         case 1:
7099                                 if (r->info1) {
7100                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7101                                 }
7102                         break;
7103
7104                         case 2:
7105                                 if (r->info1) {
7106                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7107                                 }
7108                         break;
7109
7110                         default:
7111                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7112                 }
7113         }
7114         return NDR_ERR_SUCCESS;
7115 }
7116
7117 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
7118 {
7119         int level;
7120         uint32_t _level;
7121         TALLOC_CTX *_mem_save_info1_0;
7122         level = ndr_pull_get_switch_value(ndr, r);
7123         if (ndr_flags & NDR_SCALARS) {
7124                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7125                 if (_level != level) {
7126                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7127                 }
7128                 switch (level) {
7129                         case 1: {
7130                                 uint32_t _ptr_info1;
7131                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7132                                 if (_ptr_info1) {
7133                                         NDR_PULL_ALLOC(ndr, r->info1);
7134                                 } else {
7135                                         r->info1 = NULL;
7136                                 }
7137                         break; }
7138
7139                         case 2: {
7140                                 uint32_t _ptr_info1;
7141                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7142                                 if (_ptr_info1) {
7143                                         NDR_PULL_ALLOC(ndr, r->info1);
7144                                 } else {
7145                                         r->info1 = NULL;
7146                                 }
7147                         break; }
7148
7149                         default:
7150                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7151                 }
7152         }
7153         if (ndr_flags & NDR_BUFFERS) {
7154                 switch (level) {
7155                         case 1:
7156                                 if (r->info1) {
7157                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7158                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7159                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7160                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7161                                 }
7162                         break;
7163
7164                         case 2:
7165                                 if (r->info1) {
7166                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7167                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7168                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7169                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7170                                 }
7171                         break;
7172
7173                         default:
7174                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7175                 }
7176         }
7177         return NDR_ERR_SUCCESS;
7178 }
7179
7180 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
7181 {
7182         int level;
7183         level = ndr_print_get_switch_value(ndr, r);
7184         ndr_print_union(ndr, name, level, "netr_DomainInfo");
7185         switch (level) {
7186                 case 1:
7187                         ndr_print_ptr(ndr, "info1", r->info1);
7188                         ndr->depth++;
7189                         if (r->info1) {
7190                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7191                         }
7192                         ndr->depth--;
7193                 break;
7194
7195                 case 2:
7196                         ndr_print_ptr(ndr, "info1", r->info1);
7197                         ndr->depth++;
7198                         if (r->info1) {
7199                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7200                         }
7201                         ndr->depth--;
7202                 break;
7203
7204                 default:
7205                         ndr_print_bad_level(ndr, name, level);
7206         }
7207 }
7208
7209 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
7210 {
7211         {
7212                 uint32_t _flags_save_STRUCT = ndr->flags;
7213                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7214                 if (ndr_flags & NDR_SCALARS) {
7215                         NDR_CHECK(ndr_push_align(ndr, 4));
7216                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7217                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
7218                 }
7219                 if (ndr_flags & NDR_BUFFERS) {
7220                 }
7221                 ndr->flags = _flags_save_STRUCT;
7222         }
7223         return NDR_ERR_SUCCESS;
7224 }
7225
7226 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
7227 {
7228         {
7229                 uint32_t _flags_save_STRUCT = ndr->flags;
7230                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7231                 if (ndr_flags & NDR_SCALARS) {
7232                         NDR_CHECK(ndr_pull_align(ndr, 4));
7233                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7234                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7235                 }
7236                 if (ndr_flags & NDR_BUFFERS) {
7237                 }
7238                 ndr->flags = _flags_save_STRUCT;
7239         }
7240         return NDR_ERR_SUCCESS;
7241 }
7242
7243 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
7244 {
7245         ndr_print_struct(ndr, name, "netr_CryptPassword");
7246         {
7247                 uint32_t _flags_save_STRUCT = ndr->flags;
7248                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7249                 ndr->depth++;
7250                 ndr_print_array_uint8(ndr, "data", r->data, 512);
7251                 ndr_print_uint32(ndr, "length", r->length);
7252                 ndr->depth--;
7253                 ndr->flags = _flags_save_STRUCT;
7254         }
7255 }
7256
7257 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
7258 {
7259         uint32_t cntr_sitename_1;
7260         if (ndr_flags & NDR_SCALARS) {
7261                 NDR_CHECK(ndr_push_align(ndr, 4));
7262                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7263                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7264         }
7265         if (ndr_flags & NDR_BUFFERS) {
7266                 if (r->sitename) {
7267                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7268                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7269                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7270                         }
7271                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7272                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7273                         }
7274                 }
7275         }
7276         return NDR_ERR_SUCCESS;
7277 }
7278
7279 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
7280 {
7281         uint32_t _ptr_sitename;
7282         uint32_t cntr_sitename_1;
7283         TALLOC_CTX *_mem_save_sitename_0;
7284         TALLOC_CTX *_mem_save_sitename_1;
7285         if (ndr_flags & NDR_SCALARS) {
7286                 NDR_CHECK(ndr_pull_align(ndr, 4));
7287                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7288                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7289                 if (_ptr_sitename) {
7290                         NDR_PULL_ALLOC(ndr, r->sitename);
7291                 } else {
7292                         r->sitename = NULL;
7293                 }
7294         }
7295         if (ndr_flags & NDR_BUFFERS) {
7296                 if (r->sitename) {
7297                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7298                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7299                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7300                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7301                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7302                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7303                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7304                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7305                         }
7306                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7307                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7308                         }
7309                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7310                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7311                 }
7312                 if (r->sitename) {
7313                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7314                 }
7315         }
7316         return NDR_ERR_SUCCESS;
7317 }
7318
7319 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
7320 {
7321         uint32_t cntr_sitename_1;
7322         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
7323         ndr->depth++;
7324         ndr_print_uint32(ndr, "count", r->count);
7325         ndr_print_ptr(ndr, "sitename", r->sitename);
7326         ndr->depth++;
7327         if (r->sitename) {
7328                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", r->count);
7329                 ndr->depth++;
7330                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7331                         char *idx_1=NULL;
7332                         asprintf(&idx_1, "[%d]", cntr_sitename_1);
7333                         if (idx_1) {
7334                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7335                                 free(idx_1);
7336                         }
7337                 }
7338                 ndr->depth--;
7339         }
7340         ndr->depth--;
7341         ndr->depth--;
7342 }
7343
7344 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
7345 {
7346         if (ndr_flags & NDR_SCALARS) {
7347                 NDR_CHECK(ndr_push_align(ndr, 4));
7348                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
7349                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7350         }
7351         if (ndr_flags & NDR_BUFFERS) {
7352                 if (r->buffer) {
7353                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7354                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
7355                 }
7356         }
7357         return NDR_ERR_SUCCESS;
7358 }
7359
7360 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
7361 {
7362         uint32_t _ptr_buffer;
7363         TALLOC_CTX *_mem_save_buffer_0;
7364         if (ndr_flags & NDR_SCALARS) {
7365                 NDR_CHECK(ndr_pull_align(ndr, 4));
7366                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
7367                 if (_ptr_buffer) {
7368                         NDR_PULL_ALLOC(ndr, r->buffer);
7369                 } else {
7370                         r->buffer = NULL;
7371                 }
7372                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7373         }
7374         if (ndr_flags & NDR_BUFFERS) {
7375                 if (r->buffer) {
7376                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
7377                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
7378                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
7379                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
7380                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
7381                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
7382                 }
7383                 if (r->buffer) {
7384                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
7385                 }
7386         }
7387         return NDR_ERR_SUCCESS;
7388 }
7389
7390 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
7391 {
7392         ndr_print_struct(ndr, name, "netr_DsRAddress");
7393         ndr->depth++;
7394         ndr_print_ptr(ndr, "buffer", r->buffer);
7395         ndr->depth++;
7396         if (r->buffer) {
7397                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
7398         }
7399         ndr->depth--;
7400         ndr_print_uint32(ndr, "size", r->size);
7401         ndr->depth--;
7402 }
7403
7404 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7405 {
7406         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7407         return NDR_ERR_SUCCESS;
7408 }
7409
7410 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7411 {
7412         uint32_t v;
7413         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7414         *r = v;
7415         return NDR_ERR_SUCCESS;
7416 }
7417
7418 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7419 {
7420         ndr_print_uint32(ndr, name, r);
7421         ndr->depth++;
7422         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7423         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7424         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7425         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7426         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7427         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7428         ndr->depth--;
7429 }
7430
7431 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
7432 {
7433         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7434         return NDR_ERR_SUCCESS;
7435 }
7436
7437 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
7438 {
7439         uint32_t v;
7440         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7441         *r = v;
7442         return NDR_ERR_SUCCESS;
7443 }
7444
7445 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
7446 {
7447         const char *val = NULL;
7448
7449         switch (r) {
7450                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7451                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
7452                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
7453                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
7454         }
7455         ndr_print_enum(ndr, name, "ENUM", val, r);
7456 }
7457
7458 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7459 {
7460         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7461         return NDR_ERR_SUCCESS;
7462 }
7463
7464 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7465 {
7466         uint32_t v;
7467         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7468         *r = v;
7469         return NDR_ERR_SUCCESS;
7470 }
7471
7472 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
7473 {
7474         ndr_print_uint32(ndr, name, r);
7475         ndr->depth++;
7476         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
7477         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
7478         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
7479         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
7480         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
7481         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
7482         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
7483         ndr->depth--;
7484 }
7485
7486 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
7487 {
7488         if (ndr_flags & NDR_SCALARS) {
7489                 NDR_CHECK(ndr_push_align(ndr, 4));
7490                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7491                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7492                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
7493                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7494                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
7495                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
7496                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7497                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7498         }
7499         if (ndr_flags & NDR_BUFFERS) {
7500                 if (r->netbios_name) {
7501                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7502                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7503                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7504                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7505                 }
7506                 if (r->dns_name) {
7507                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7508                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7509                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7510                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7511                 }
7512                 if (r->sid) {
7513                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7514                 }
7515                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
7516         }
7517         return NDR_ERR_SUCCESS;
7518 }
7519
7520 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
7521 {
7522         uint32_t _ptr_netbios_name;
7523         TALLOC_CTX *_mem_save_netbios_name_0;
7524         uint32_t _ptr_dns_name;
7525         TALLOC_CTX *_mem_save_dns_name_0;
7526         uint32_t _ptr_sid;
7527         TALLOC_CTX *_mem_save_sid_0;
7528         if (ndr_flags & NDR_SCALARS) {
7529                 NDR_CHECK(ndr_pull_align(ndr, 4));
7530                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7531                 if (_ptr_netbios_name) {
7532                         NDR_PULL_ALLOC(ndr, r->netbios_name);
7533                 } else {
7534                         r->netbios_name = NULL;
7535                 }
7536                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7537                 if (_ptr_dns_name) {
7538                         NDR_PULL_ALLOC(ndr, r->dns_name);
7539                 } else {
7540                         r->dns_name = NULL;
7541                 }
7542                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
7543                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7544                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
7545                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
7546                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7547                 if (_ptr_sid) {
7548                         NDR_PULL_ALLOC(ndr, r->sid);
7549                 } else {
7550                         r->sid = NULL;
7551                 }
7552                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7553         }
7554         if (ndr_flags & NDR_BUFFERS) {
7555                 if (r->netbios_name) {
7556                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7557                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7558                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7559                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7560                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7561                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name));
7562                         }
7563                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7564                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7565                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7566                 }
7567                 if (r->dns_name) {
7568                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7569                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7570                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7571                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7572                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7573                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name));
7574                         }
7575                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7576                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7577                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7578                 }
7579                 if (r->sid) {
7580                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7581                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7582                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7583                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7584                 }
7585                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
7586         }
7587         return NDR_ERR_SUCCESS;
7588 }
7589
7590 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
7591 {
7592         ndr_print_struct(ndr, name, "netr_DomainTrust");
7593         ndr->depth++;
7594         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7595         ndr->depth++;
7596         if (r->netbios_name) {
7597                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7598         }
7599         ndr->depth--;
7600         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7601         ndr->depth++;
7602         if (r->dns_name) {
7603                 ndr_print_string(ndr, "dns_name", r->dns_name);
7604         }
7605         ndr->depth--;
7606         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
7607         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7608         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
7609         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
7610         ndr_print_ptr(ndr, "sid", r->sid);
7611         ndr->depth++;
7612         if (r->sid) {
7613                 ndr_print_dom_sid2(ndr, "sid", r->sid);
7614         }
7615         ndr->depth--;
7616         ndr_print_GUID(ndr, "guid", &r->guid);
7617         ndr->depth--;
7618 }
7619
7620 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
7621 {
7622         uint32_t cntr_array_1;
7623         if (ndr_flags & NDR_SCALARS) {
7624                 NDR_CHECK(ndr_push_align(ndr, 4));
7625                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7626                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7627         }
7628         if (ndr_flags & NDR_BUFFERS) {
7629                 if (r->array) {
7630                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7631                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7632                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7633                         }
7634                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7635                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7636                         }
7637                 }
7638         }
7639         return NDR_ERR_SUCCESS;
7640 }
7641
7642 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
7643 {
7644         uint32_t _ptr_array;
7645         uint32_t cntr_array_1;
7646         TALLOC_CTX *_mem_save_array_0;
7647         TALLOC_CTX *_mem_save_array_1;
7648         if (ndr_flags & NDR_SCALARS) {
7649                 NDR_CHECK(ndr_pull_align(ndr, 4));
7650                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7651                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7652                 if (_ptr_array) {
7653                         NDR_PULL_ALLOC(ndr, r->array);
7654                 } else {
7655                         r->array = NULL;
7656                 }
7657         }
7658         if (ndr_flags & NDR_BUFFERS) {
7659                 if (r->array) {
7660                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7661                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7662                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7663                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
7664                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7665                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7666                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7667                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7668                         }
7669                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7670                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7671                         }
7672                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7673                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7674                 }
7675                 if (r->array) {
7676                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7677                 }
7678         }
7679         return NDR_ERR_SUCCESS;
7680 }
7681
7682 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
7683 {
7684         uint32_t cntr_array_1;
7685         ndr_print_struct(ndr, name, "netr_DomainTrustList");
7686         ndr->depth++;
7687         ndr_print_uint32(ndr, "count", r->count);
7688         ndr_print_ptr(ndr, "array", r->array);
7689         ndr->depth++;
7690         if (r->array) {
7691                 ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
7692                 ndr->depth++;
7693                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7694                         char *idx_1=NULL;
7695                         asprintf(&idx_1, "[%d]", cntr_array_1);
7696                         if (idx_1) {
7697                                 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
7698                                 free(idx_1);
7699                         }
7700                 }
7701                 ndr->depth--;
7702         }
7703         ndr->depth--;
7704         ndr->depth--;
7705 }
7706
7707 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
7708 {
7709         uint32_t cntr_sitename_1;
7710         uint32_t cntr_subnetname_1;
7711         if (ndr_flags & NDR_SCALARS) {
7712                 NDR_CHECK(ndr_push_align(ndr, 4));
7713                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7714                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7715                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
7716         }
7717         if (ndr_flags & NDR_BUFFERS) {
7718                 if (r->sitename) {
7719                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7720                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7721                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7722                         }
7723                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7724                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7725                         }
7726                 }
7727                 if (r->subnetname) {
7728                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7729                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7730                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7731                         }
7732                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7733                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7734                         }
7735                 }
7736         }
7737         return NDR_ERR_SUCCESS;
7738 }
7739
7740 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
7741 {
7742         uint32_t _ptr_sitename;
7743         uint32_t cntr_sitename_1;
7744         TALLOC_CTX *_mem_save_sitename_0;
7745         TALLOC_CTX *_mem_save_sitename_1;
7746         uint32_t _ptr_subnetname;
7747         uint32_t cntr_subnetname_1;
7748         TALLOC_CTX *_mem_save_subnetname_0;
7749         TALLOC_CTX *_mem_save_subnetname_1;
7750         if (ndr_flags & NDR_SCALARS) {
7751                 NDR_CHECK(ndr_pull_align(ndr, 4));
7752                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7753                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7754                 if (_ptr_sitename) {
7755                         NDR_PULL_ALLOC(ndr, r->sitename);
7756                 } else {
7757                         r->sitename = NULL;
7758                 }
7759                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
7760                 if (_ptr_subnetname) {
7761                         NDR_PULL_ALLOC(ndr, r->subnetname);
7762                 } else {
7763                         r->subnetname = NULL;
7764                 }
7765         }
7766         if (ndr_flags & NDR_BUFFERS) {
7767                 if (r->sitename) {
7768                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7769                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7770                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7771                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7772                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7773                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7774                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7775                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7776                         }
7777                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7778                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7779                         }
7780                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7781                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7782                 }
7783                 if (r->subnetname) {
7784                         _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7785                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7786                         NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
7787                         NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
7788                         _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
7789                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7790                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7791                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7792                         }
7793                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7794                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7795                         }
7796                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
7797                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
7798                 }
7799                 if (r->sitename) {
7800                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7801                 }
7802                 if (r->subnetname) {
7803                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
7804                 }
7805         }
7806         return NDR_ERR_SUCCESS;
7807 }
7808
7809 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
7810 {
7811         uint32_t cntr_sitename_1;
7812         uint32_t cntr_subnetname_1;
7813         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
7814         ndr->depth++;
7815         ndr_print_uint32(ndr, "count", r->count);
7816         ndr_print_ptr(ndr, "sitename", r->sitename);
7817         ndr->depth++;
7818         if (r->sitename) {
7819                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", r->count);
7820                 ndr->depth++;
7821                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7822                         char *idx_1=NULL;
7823                         asprintf(&idx_1, "[%d]", cntr_sitename_1);
7824                         if (idx_1) {
7825                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7826                                 free(idx_1);
7827                         }
7828                 }
7829                 ndr->depth--;
7830         }
7831         ndr->depth--;
7832         ndr_print_ptr(ndr, "subnetname", r->subnetname);
7833         ndr->depth++;
7834         if (r->subnetname) {
7835                 ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", r->count);
7836                 ndr->depth++;
7837                 for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
7838                         char *idx_1=NULL;
7839                         asprintf(&idx_1, "[%d]", cntr_subnetname_1);
7840                         if (idx_1) {
7841                                 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
7842                                 free(idx_1);
7843                         }
7844                 }
7845                 ndr->depth--;
7846         }
7847         ndr->depth--;
7848         ndr->depth--;
7849 }
7850
7851 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
7852 {
7853         uint32_t cntr_sites_1;
7854         if (ndr_flags & NDR_SCALARS) {
7855                 NDR_CHECK(ndr_push_align(ndr, 4));
7856                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7857                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
7858         }
7859         if (ndr_flags & NDR_BUFFERS) {
7860                 if (r->sites) {
7861                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7862                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7863                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7864                         }
7865                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7866                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7867                         }
7868                 }
7869         }
7870         return NDR_ERR_SUCCESS;
7871 }
7872
7873 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
7874 {
7875         uint32_t _ptr_sites;
7876         uint32_t cntr_sites_1;
7877         TALLOC_CTX *_mem_save_sites_0;
7878         TALLOC_CTX *_mem_save_sites_1;
7879         if (ndr_flags & NDR_SCALARS) {
7880                 NDR_CHECK(ndr_pull_align(ndr, 4));
7881                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
7882                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
7883                 if (_ptr_sites) {
7884                         NDR_PULL_ALLOC(ndr, r->sites);
7885                 } else {
7886                         r->sites = NULL;
7887                 }
7888         }
7889         if (ndr_flags & NDR_BUFFERS) {
7890                 if (r->sites) {
7891                         _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
7892                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7893                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
7894                         NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
7895                         _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
7896                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7897                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7898                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7899                         }
7900                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7901                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7902                         }
7903                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
7904                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
7905                 }
7906                 if (r->sites) {
7907                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
7908                 }
7909         }
7910         return NDR_ERR_SUCCESS;
7911 }
7912
7913 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
7914 {
7915         uint32_t cntr_sites_1;
7916         ndr_print_struct(ndr, name, "DcSitesCtr");
7917         ndr->depth++;
7918         ndr_print_uint32(ndr, "num_sites", r->num_sites);
7919         ndr_print_ptr(ndr, "sites", r->sites);
7920         ndr->depth++;
7921         if (r->sites) {
7922                 ndr->print(ndr, "%s: ARRAY(%d)", "sites", r->num_sites);
7923                 ndr->depth++;
7924                 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
7925                         char *idx_1=NULL;
7926                         asprintf(&idx_1, "[%d]", cntr_sites_1);
7927                         if (idx_1) {
7928                                 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
7929                                 free(idx_1);
7930                         }
7931                 }
7932                 ndr->depth--;
7933         }
7934         ndr->depth--;
7935         ndr->depth--;
7936 }
7937
7938 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
7939 {
7940         if (flags & NDR_IN) {
7941                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7942                 if (r->in.server_name) {
7943                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7944                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7945                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7946                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7947                 }
7948                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7949                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7950                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7951                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7952                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7953                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7954                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7955                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7956         }
7957         if (flags & NDR_OUT) {
7958                 if (r->out.info == NULL) {
7959                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7960                 }
7961                 NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
7962                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
7963         }
7964         return NDR_ERR_SUCCESS;
7965 }
7966
7967 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
7968 {
7969         uint32_t _ptr_server_name;
7970         TALLOC_CTX *_mem_save_server_name_0;
7971         TALLOC_CTX *_mem_save_info_0;
7972         if (flags & NDR_IN) {
7973                 ZERO_STRUCT(r->out);
7974
7975                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7976                 if (_ptr_server_name) {
7977                         NDR_PULL_ALLOC(ndr, r->in.server_name);
7978                 } else {
7979                         r->in.server_name = NULL;
7980                 }
7981                 if (r->in.server_name) {
7982                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7983                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
7984                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
7985                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
7986                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
7987                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
7988                         }
7989                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
7990                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
7991                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
7992                 }
7993                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
7994                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
7995                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
7996                         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.account_name), ndr_get_array_length(ndr, &r->in.account_name));
7997                 }
7998                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
7999                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
8000                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8001                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8002                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8003                         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.workstation), ndr_get_array_length(ndr, &r->in.workstation));
8004                 }
8005                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8006                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8007                 NDR_PULL_ALLOC(ndr, r->out.info);
8008                 ZERO_STRUCTP(r->out.info);
8009         }
8010         if (flags & NDR_OUT) {
8011                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8012                         NDR_PULL_ALLOC(ndr, r->out.info);
8013                 }
8014                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8015                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8016                 NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
8017                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8018                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8019         }
8020         return NDR_ERR_SUCCESS;
8021 }
8022
8023 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
8024 {
8025         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
8026         ndr->depth++;
8027         if (flags & NDR_SET_VALUES) {
8028                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8029         }
8030         if (flags & NDR_IN) {
8031                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
8032                 ndr->depth++;
8033                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8034                 ndr->depth++;
8035                 if (r->in.server_name) {
8036                         ndr_print_string(ndr, "server_name", r->in.server_name);
8037                 }
8038                 ndr->depth--;
8039                 ndr_print_string(ndr, "account_name", r->in.account_name);
8040                 ndr_print_string(ndr, "workstation", r->in.workstation);
8041                 ndr->depth--;
8042         }
8043         if (flags & NDR_OUT) {
8044                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
8045                 ndr->depth++;
8046                 ndr_print_ptr(ndr, "info", r->out.info);
8047                 ndr->depth++;
8048                 ndr_print_netr_UasInfo(ndr, "info", r->out.info);
8049                 ndr->depth--;
8050                 ndr_print_WERROR(ndr, "result", r->out.result);
8051                 ndr->depth--;
8052         }
8053         ndr->depth--;
8054 }
8055
8056 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
8057 {
8058         if (flags & NDR_IN) {
8059                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8060                 if (r->in.server_name) {
8061                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8062                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8063                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8064                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8065                 }
8066                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8067                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8068                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8069                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8070                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8071                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8072                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8073                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8074         }
8075         if (flags & NDR_OUT) {
8076                 if (r->out.info == NULL) {
8077                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8078                 }
8079                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8080                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8081         }
8082         return NDR_ERR_SUCCESS;
8083 }
8084
8085 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
8086 {
8087         uint32_t _ptr_server_name;
8088         TALLOC_CTX *_mem_save_server_name_0;
8089         TALLOC_CTX *_mem_save_info_0;
8090         if (flags & NDR_IN) {
8091                 ZERO_STRUCT(r->out);
8092
8093                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8094                 if (_ptr_server_name) {
8095                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8096                 } else {
8097                         r->in.server_name = NULL;
8098                 }
8099                 if (r->in.server_name) {
8100                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8101                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8102                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8103                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8104                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8105                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8106                         }
8107                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8108                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
8109                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8110                 }
8111                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8112                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8113                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8114                         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.account_name), ndr_get_array_length(ndr, &r->in.account_name));
8115                 }
8116                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8117                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
8118                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8119                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8120                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8121                         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.workstation), ndr_get_array_length(ndr, &r->in.workstation));
8122                 }
8123                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8124                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8125                 NDR_PULL_ALLOC(ndr, r->out.info);
8126                 ZERO_STRUCTP(r->out.info);
8127         }
8128         if (flags & NDR_OUT) {
8129                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8130                         NDR_PULL_ALLOC(ndr, r->out.info);
8131                 }
8132                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8133                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8134                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8135                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8136                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8137         }
8138         return NDR_ERR_SUCCESS;
8139 }
8140
8141 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
8142 {
8143         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
8144         ndr->depth++;
8145         if (flags & NDR_SET_VALUES) {
8146                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8147         }
8148         if (flags & NDR_IN) {
8149                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
8150                 ndr->depth++;
8151                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8152                 ndr->depth++;
8153                 if (r->in.server_name) {
8154                         ndr_print_string(ndr, "server_name", r->in.server_name);
8155                 }
8156                 ndr->depth--;
8157                 ndr_print_string(ndr, "account_name", r->in.account_name);
8158                 ndr_print_string(ndr, "workstation", r->in.workstation);
8159                 ndr->depth--;
8160         }
8161         if (flags & NDR_OUT) {
8162                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
8163                 ndr->depth++;
8164                 ndr_print_ptr(ndr, "info", r->out.info);
8165                 ndr->depth++;
8166                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
8167                 ndr->depth--;
8168                 ndr_print_WERROR(ndr, "result", r->out.result);
8169                 ndr->depth--;
8170         }
8171         ndr->depth--;
8172 }
8173
8174 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
8175 {
8176         if (flags & NDR_IN) {
8177                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8178                 if (r->in.server_name) {
8179                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8180                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8181                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8182                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8183                 }
8184                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8185                 if (r->in.computer_name) {
8186                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8187                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8188                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8189                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8190                 }
8191                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8192                 if (r->in.credential) {
8193                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8194                 }
8195                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8196                 if (r->in.return_authenticator) {
8197                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8198                 }
8199                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
8200                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8201                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8202                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
8203         }
8204         if (flags & NDR_OUT) {
8205                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8206                 if (r->out.return_authenticator) {
8207                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8208                 }
8209                 if (r->out.validation == NULL) {
8210                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8211                 }
8212                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8213                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8214                 if (r->out.authoritative == NULL) {
8215                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8216                 }
8217                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
8218                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8219         }
8220         return NDR_ERR_SUCCESS;
8221 }
8222
8223 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
8224 {
8225         uint32_t _ptr_server_name;
8226         uint32_t _ptr_computer_name;
8227         uint32_t _ptr_credential;
8228         uint32_t _ptr_return_authenticator;
8229         TALLOC_CTX *_mem_save_server_name_0;
8230         TALLOC_CTX *_mem_save_computer_name_0;
8231         TALLOC_CTX *_mem_save_credential_0;
8232         TALLOC_CTX *_mem_save_return_authenticator_0;
8233         TALLOC_CTX *_mem_save_validation_0;
8234         TALLOC_CTX *_mem_save_authoritative_0;
8235         if (flags & NDR_IN) {
8236                 ZERO_STRUCT(r->out);
8237
8238                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8239                 if (_ptr_server_name) {
8240                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8241                 } else {
8242                         r->in.server_name = NULL;
8243                 }
8244                 if (r->in.server_name) {
8245                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8246                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8247                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8248                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8249                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8250                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8251                         }
8252                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8253                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
8254                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8255                 }
8256                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8257                 if (_ptr_computer_name) {
8258                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8259                 } else {
8260                         r->in.computer_name = NULL;
8261                 }
8262                 if (r->in.computer_name) {
8263                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8264                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8265                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8266                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8267                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8268                                 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.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
8269                         }
8270                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8271                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
8272                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8273                 }
8274                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8275                 if (_ptr_credential) {
8276                         NDR_PULL_ALLOC(ndr, r->in.credential);
8277                 } else {
8278                         r->in.credential = NULL;
8279                 }
8280                 if (r->in.credential) {
8281                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8282                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8283                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8284                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8285                 }
8286                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8287                 if (_ptr_return_authenticator) {
8288                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8289                 } else {
8290                         r->in.return_authenticator = NULL;
8291                 }
8292                 if (r->in.return_authenticator) {
8293                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8294                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8295                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8296                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8297                 }
8298                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
8299                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8300                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8301                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
8302                 NDR_PULL_ALLOC(ndr, r->out.validation);
8303                 ZERO_STRUCTP(r->out.validation);
8304                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
8305                 ZERO_STRUCTP(r->out.authoritative);
8306         }
8307         if (flags & NDR_OUT) {
8308                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8309                 if (_ptr_return_authenticator) {
8310                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8311                 } else {
8312                         r->out.return_authenticator = NULL;
8313                 }
8314                 if (r->out.return_authenticator) {
8315                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8316                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8317                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8318                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8319                 }
8320                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8321                         NDR_PULL_ALLOC(ndr, r->out.validation);
8322                 }
8323                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
8324                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
8325                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8326                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8327                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
8328                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8329                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
8330                 }
8331                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
8332                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
8333                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
8334                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
8335                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8336         }
8337         return NDR_ERR_SUCCESS;
8338 }
8339
8340 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
8341 {
8342         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
8343         ndr->depth++;
8344         if (flags & NDR_SET_VALUES) {
8345                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8346         }
8347         if (flags & NDR_IN) {
8348                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
8349                 ndr->depth++;
8350                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8351                 ndr->depth++;
8352                 if (r->in.server_name) {
8353                         ndr_print_string(ndr, "server_name", r->in.server_name);
8354                 }
8355                 ndr->depth--;
8356                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8357                 ndr->depth++;
8358                 if (r->in.computer_name) {
8359                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8360                 }
8361                 ndr->depth--;
8362                 ndr_print_ptr(ndr, "credential", r->in.credential);
8363                 ndr->depth++;
8364                 if (r->in.credential) {
8365                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8366                 }
8367                 ndr->depth--;
8368                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8369                 ndr->depth++;
8370                 if (r->in.return_authenticator) {
8371                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8372                 }
8373                 ndr->depth--;
8374                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
8375                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8376                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
8377                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
8378                 ndr->depth--;
8379         }
8380         if (flags & NDR_OUT) {
8381                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
8382                 ndr->depth++;
8383                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8384                 ndr->depth++;
8385                 if (r->out.return_authenticator) {
8386                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8387                 }
8388                 ndr->depth--;
8389                 ndr_print_ptr(ndr, "validation", r->out.validation);
8390                 ndr->depth++;
8391                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
8392                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
8393                 ndr->depth--;
8394                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
8395                 ndr->depth++;
8396                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
8397                 ndr->depth--;
8398                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8399                 ndr->depth--;
8400         }
8401         ndr->depth--;
8402 }
8403
8404 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
8405 {
8406         if (flags & NDR_IN) {
8407                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8408                 if (r->in.server_name) {
8409                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8410                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8411                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8412                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8413                 }
8414                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8415                 if (r->in.computer_name) {
8416                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8417                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8418                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8419                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8420                 }
8421                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8422                 if (r->in.credential) {
8423                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8424                 }
8425                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8426                 if (r->in.return_authenticator) {
8427                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8428                 }
8429                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
8430                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8431                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8432         }
8433         if (flags & NDR_OUT) {
8434                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8435                 if (r->out.return_authenticator) {
8436                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8437                 }
8438                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8439         }
8440         return NDR_ERR_SUCCESS;
8441 }
8442
8443 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
8444 {
8445         uint32_t _ptr_server_name;
8446         uint32_t _ptr_computer_name;
8447         uint32_t _ptr_credential;
8448         uint32_t _ptr_return_authenticator;
8449         TALLOC_CTX *_mem_save_server_name_0;
8450         TALLOC_CTX *_mem_save_computer_name_0;
8451         TALLOC_CTX *_mem_save_credential_0;
8452         TALLOC_CTX *_mem_save_return_authenticator_0;
8453         if (flags & NDR_IN) {
8454                 ZERO_STRUCT(r->out);
8455
8456                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8457                 if (_ptr_server_name) {
8458                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8459                 } else {
8460                         r->in.server_name = NULL;
8461                 }
8462                 if (r->in.server_name) {
8463                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8464                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8465                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8466                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8467                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8468                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8469                         }
8470                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8471                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
8472                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8473                 }
8474                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8475                 if (_ptr_computer_name) {
8476                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8477                 } else {
8478                         r->in.computer_name = NULL;
8479                 }
8480                 if (r->in.computer_name) {
8481                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8482                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8483                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8484                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8485                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8486                                 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.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
8487                         }
8488                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8489                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
8490                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8491                 }
8492                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8493                 if (_ptr_credential) {
8494                         NDR_PULL_ALLOC(ndr, r->in.credential);
8495                 } else {
8496                         r->in.credential = NULL;
8497                 }
8498                 if (r->in.credential) {
8499                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8500                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8501                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8502                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8503                 }
8504                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8505                 if (_ptr_return_authenticator) {
8506                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8507                 } else {
8508                         r->in.return_authenticator = NULL;
8509                 }
8510                 if (r->in.return_authenticator) {
8511                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8512                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8513                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8514                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8515                 }
8516                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
8517                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8518                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8519         }
8520         if (flags & NDR_OUT) {
8521                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8522                 if (_ptr_return_authenticator) {
8523                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8524                 } else {
8525                         r->out.return_authenticator = NULL;
8526                 }
8527                 if (r->out.return_authenticator) {
8528                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8529                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8530                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8531                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8532                 }
8533                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8534         }
8535         return NDR_ERR_SUCCESS;
8536 }
8537
8538 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
8539 {
8540         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
8541         ndr->depth++;
8542         if (flags & NDR_SET_VALUES) {
8543                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8544         }
8545         if (flags & NDR_IN) {
8546                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
8547                 ndr->depth++;
8548                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8549                 ndr->depth++;
8550                 if (r->in.server_name) {
8551                         ndr_print_string(ndr, "server_name", r->in.server_name);
8552                 }
8553                 ndr->depth--;
8554                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8555                 ndr->depth++;
8556                 if (r->in.computer_name) {
8557                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8558                 }
8559                 ndr->depth--;
8560                 ndr_print_ptr(ndr, "credential", r->in.credential);
8561                 ndr->depth++;
8562                 if (r->in.credential) {
8563                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8564                 }
8565                 ndr->depth--;
8566                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8567                 ndr->depth++;
8568                 if (r->in.return_authenticator) {
8569                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8570                 }
8571                 ndr->depth--;
8572                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
8573                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8574                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
8575                 ndr->depth--;
8576         }
8577         if (flags & NDR_OUT) {
8578                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
8579                 ndr->depth++;
8580                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8581                 ndr->depth++;
8582                 if (r->out.return_authenticator) {
8583                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8584                 }
8585                 ndr->depth--;
8586                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8587                 ndr->depth--;
8588         }
8589         ndr->depth--;
8590 }
8591
8592 static enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
8593 {
8594         if (flags & NDR_IN) {
8595                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8596                 if (r->in.server_name) {
8597                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8598                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8599                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8600                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8601                 }
8602                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8603                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8604                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8605                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8606                 if (r->in.credentials == NULL) {
8607                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8608                 }
8609                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8610         }
8611         if (flags & NDR_OUT) {
8612                 if (r->out.credentials == NULL) {
8613                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8614                 }
8615                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8616                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8617         }
8618         return NDR_ERR_SUCCESS;
8619 }
8620
8621 static enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
8622 {
8623         uint32_t _ptr_server_name;
8624         TALLOC_CTX *_mem_save_server_name_0;
8625         TALLOC_CTX *_mem_save_credentials_0;
8626         if (flags & NDR_IN) {
8627                 ZERO_STRUCT(r->out);
8628
8629                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8630                 if (_ptr_server_name) {
8631                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8632                 } else {
8633                         r->in.server_name = NULL;
8634                 }
8635                 if (r->in.server_name) {
8636                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8637                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8638                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8639                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8640                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8641                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8642                         }
8643                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8644                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
8645                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8646                 }
8647                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8648                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8649                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8650                         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.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
8651                 }
8652                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8653                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
8654                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8655                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8656                 }
8657                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8658                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8659                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8660                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8661                 NDR_PULL_ALLOC(ndr, r->out.credentials);
8662                 *r->out.credentials = *r->in.credentials;
8663         }
8664         if (flags & NDR_OUT) {
8665                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8666                         NDR_PULL_ALLOC(ndr, r->out.credentials);
8667                 }
8668                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8669                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
8670                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8671                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8672                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8673         }
8674         return NDR_ERR_SUCCESS;
8675 }
8676
8677 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
8678 {
8679         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
8680         ndr->depth++;
8681         if (flags & NDR_SET_VALUES) {
8682                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8683         }
8684         if (flags & NDR_IN) {
8685                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
8686                 ndr->depth++;
8687                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8688                 ndr->depth++;
8689                 if (r->in.server_name) {
8690                         ndr_print_string(ndr, "server_name", r->in.server_name);
8691                 }
8692                 ndr->depth--;
8693                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8694                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8695                 ndr->depth++;
8696                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8697                 ndr->depth--;
8698                 ndr->depth--;
8699         }
8700         if (flags & NDR_OUT) {
8701                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
8702                 ndr->depth++;
8703                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
8704                 ndr->depth++;
8705                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
8706                 ndr->depth--;
8707                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8708                 ndr->depth--;
8709         }
8710         ndr->depth--;
8711 }
8712
8713 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
8714 {
8715         if (flags & NDR_IN) {
8716                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8717                 if (r->in.server_name) {
8718                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8719                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8720                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8721                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8722                 }
8723                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8724                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8725                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8726                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8727                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8728                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8729                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8730                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8731                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8732                 if (r->in.credentials == NULL) {
8733                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8734                 }
8735                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8736         }
8737         if (flags & NDR_OUT) {
8738                 if (r->out.credentials == NULL) {
8739                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8740                 }
8741                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8742                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8743         }
8744         return NDR_ERR_SUCCESS;
8745 }
8746
8747 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
8748 {
8749         uint32_t _ptr_server_name;
8750         TALLOC_CTX *_mem_save_server_name_0;
8751         TALLOC_CTX *_mem_save_credentials_0;
8752         if (flags & NDR_IN) {
8753                 ZERO_STRUCT(r->out);
8754
8755                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8756                 if (_ptr_server_name) {
8757                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8758                 } else {
8759                         r->in.server_name = NULL;
8760                 }
8761                 if (r->in.server_name) {
8762                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8763                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8764                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8765                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8766                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8767                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8768                         }
8769                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8770                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
8771                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8772                 }
8773                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8774                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8775                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8776                         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.account_name), ndr_get_array_length(ndr, &r->in.account_name));
8777                 }
8778                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8779                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
8780                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8781                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8782                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8783                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8784                         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.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
8785                 }
8786                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8787                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
8788                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8789                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8790                 }
8791                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8792                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8793                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8794                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8795                 NDR_PULL_ALLOC(ndr, r->out.credentials);
8796                 *r->out.credentials = *r->in.credentials;
8797         }
8798         if (flags & NDR_OUT) {
8799                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8800                         NDR_PULL_ALLOC(ndr, r->out.credentials);
8801                 }
8802                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8803                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
8804                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8805                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8806                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8807         }
8808         return NDR_ERR_SUCCESS;
8809 }
8810
8811 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
8812 {
8813         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
8814         ndr->depth++;
8815         if (flags & NDR_SET_VALUES) {
8816                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8817         }
8818         if (flags & NDR_IN) {
8819                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
8820                 ndr->depth++;
8821                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8822                 ndr->depth++;
8823                 if (r->in.server_name) {
8824                         ndr_print_string(ndr, "server_name", r->in.server_name);
8825                 }
8826                 ndr->depth--;
8827                 ndr_print_string(ndr, "account_name", r->in.account_name);
8828                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8829                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8830                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8831                 ndr->depth++;
8832                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8833                 ndr->depth--;
8834                 ndr->depth--;
8835         }
8836         if (flags & NDR_OUT) {
8837                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
8838                 ndr->depth++;
8839                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
8840                 ndr->depth++;
8841                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
8842                 ndr->depth--;
8843                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8844                 ndr->depth--;
8845         }
8846         ndr->depth--;
8847 }
8848
8849 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
8850 {
8851         if (flags & NDR_IN) {
8852                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8853                 if (r->in.server_name) {
8854                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8855                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8856                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8857                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8858                 }
8859                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8860                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8861                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8862                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8863                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8864                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8865                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8866                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8867                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8868                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8869                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.new_password));
8870         }
8871         if (flags & NDR_OUT) {
8872                 if (r->out.return_authenticator == NULL) {
8873                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8874                 }
8875                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8876                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8877         }
8878         return NDR_ERR_SUCCESS;
8879 }
8880
8881 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
8882 {
8883         uint32_t _ptr_server_name;
8884         TALLOC_CTX *_mem_save_server_name_0;
8885         TALLOC_CTX *_mem_save_return_authenticator_0;
8886         if (flags & NDR_IN) {
8887                 ZERO_STRUCT(r->out);
8888
8889                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8890                 if (_ptr_server_name) {
8891                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8892                 } else {
8893                         r->in.server_name = NULL;
8894                 }
8895                 if (r->in.server_name) {
8896                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8897                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8898                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8899                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8900                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8901                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8902                         }
8903                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8904                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
8905                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8906                 }
8907                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8908                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8909                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8910                         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.account_name), ndr_get_array_length(ndr, &r->in.account_name));
8911                 }
8912                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8913                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
8914                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8915                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8916                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8917                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8918                         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.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
8919                 }
8920                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8921                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
8922                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8923                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.new_password));
8924                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8925                 ZERO_STRUCTP(r->out.return_authenticator);
8926         }
8927         if (flags & NDR_OUT) {
8928                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8929                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8930                 }
8931                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8932                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8933                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8934                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8935                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8936         }
8937         return NDR_ERR_SUCCESS;
8938 }
8939
8940 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
8941 {
8942         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
8943         ndr->depth++;
8944         if (flags & NDR_SET_VALUES) {
8945                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8946         }
8947         if (flags & NDR_IN) {
8948                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
8949                 ndr->depth++;
8950                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8951                 ndr->depth++;
8952                 if (r->in.server_name) {
8953                         ndr_print_string(ndr, "server_name", r->in.server_name);
8954                 }
8955                 ndr->depth--;
8956                 ndr_print_string(ndr, "account_name", r->in.account_name);
8957                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8958                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8959                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
8960                 ndr_print_samr_Password(ndr, "new_password", &r->in.new_password);
8961                 ndr->depth--;
8962         }
8963         if (flags & NDR_OUT) {
8964                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
8965                 ndr->depth++;
8966                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8967                 ndr->depth++;
8968                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8969                 ndr->depth--;
8970                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8971                 ndr->depth--;
8972         }
8973         ndr->depth--;
8974 }
8975
8976 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
8977 {
8978         if (flags & NDR_IN) {
8979                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8980                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8981                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8982                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8983                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8984                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8985                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8986                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8987                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8988                 if (r->in.return_authenticator == NULL) {
8989                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8990                 }
8991                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8992                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
8993                 if (r->in.sequence_num == NULL) {
8994                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8995                 }
8996                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
8997                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
8998         }
8999         if (flags & NDR_OUT) {
9000                 if (r->out.return_authenticator == NULL) {
9001                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9002                 }
9003                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9004                 if (r->out.sequence_num == NULL) {
9005                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9006                 }
9007                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
9008                 if (r->out.delta_enum_array == NULL) {
9009                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9010                 }
9011                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9012                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9013         }
9014         return NDR_ERR_SUCCESS;
9015 }
9016
9017 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
9018 {
9019         TALLOC_CTX *_mem_save_return_authenticator_0;
9020         TALLOC_CTX *_mem_save_sequence_num_0;
9021         TALLOC_CTX *_mem_save_delta_enum_array_0;
9022         if (flags & NDR_IN) {
9023                 ZERO_STRUCT(r->out);
9024
9025                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9026                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9027                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9028                         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.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9029                 }
9030                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9031                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
9032                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9033                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9034                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9035                         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.computername), ndr_get_array_length(ndr, &r->in.computername));
9036                 }
9037                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9038                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9039                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9040                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9041                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9042                 }
9043                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9044                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9045                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9046                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9047                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9048                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9049                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
9050                 }
9051                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9052                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9053                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
9054                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9055                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9056                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9057                 *r->out.return_authenticator = *r->in.return_authenticator;
9058                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9059                 *r->out.sequence_num = *r->in.sequence_num;
9060                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9061                 ZERO_STRUCTP(r->out.delta_enum_array);
9062         }
9063         if (flags & NDR_OUT) {
9064                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9065                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9066                 }
9067                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9068                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9069                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9070                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9071                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9072                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9073                 }
9074                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9075                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9076                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
9077                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9078                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9079                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9080                 }
9081                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9082                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9083                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9084                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9085                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9086         }
9087         return NDR_ERR_SUCCESS;
9088 }
9089
9090 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
9091 {
9092         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
9093         ndr->depth++;
9094         if (flags & NDR_SET_VALUES) {
9095                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9096         }
9097         if (flags & NDR_IN) {
9098                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
9099                 ndr->depth++;
9100                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9101                 ndr_print_string(ndr, "computername", r->in.computername);
9102                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9103                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9104                 ndr->depth++;
9105                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9106                 ndr->depth--;
9107                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9108                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
9109                 ndr->depth++;
9110                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
9111                 ndr->depth--;
9112                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9113                 ndr->depth--;
9114         }
9115         if (flags & NDR_OUT) {
9116                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
9117                 ndr->depth++;
9118                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9119                 ndr->depth++;
9120                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9121                 ndr->depth--;
9122                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
9123                 ndr->depth++;
9124                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
9125                 ndr->depth--;
9126                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9127                 ndr->depth++;
9128                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
9129                 ndr->depth--;
9130                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9131                 ndr->depth--;
9132         }
9133         ndr->depth--;
9134 }
9135
9136 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
9137 {
9138         if (flags & NDR_IN) {
9139                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9140                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9141                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9142                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9143                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9144                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9145                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9146                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9147                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9148                 if (r->in.return_authenticator == NULL) {
9149                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9150                 }
9151                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9152                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9153                 if (r->in.sync_context == NULL) {
9154                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9155                 }
9156                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
9157                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9158         }
9159         if (flags & NDR_OUT) {
9160                 if (r->out.return_authenticator == NULL) {
9161                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9162                 }
9163                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9164                 if (r->out.sync_context == NULL) {
9165                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9166                 }
9167                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
9168                 if (r->out.delta_enum_array == NULL) {
9169                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9170                 }
9171                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9172                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9173         }
9174         return NDR_ERR_SUCCESS;
9175 }
9176
9177 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
9178 {
9179         TALLOC_CTX *_mem_save_return_authenticator_0;
9180         TALLOC_CTX *_mem_save_sync_context_0;
9181         TALLOC_CTX *_mem_save_delta_enum_array_0;
9182         if (flags & NDR_IN) {
9183                 ZERO_STRUCT(r->out);
9184
9185                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9186                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9187                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9188                         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.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9189                 }
9190                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9191                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
9192                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9193                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9194                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9195                         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.computername), ndr_get_array_length(ndr, &r->in.computername));
9196                 }
9197                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9198                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9199                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9200                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9201                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9202                 }
9203                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9204                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9205                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9206                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9207                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9208                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9209                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
9210                 }
9211                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9212                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
9213                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
9214                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9215                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9216                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9217                 *r->out.return_authenticator = *r->in.return_authenticator;
9218                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
9219                 *r->out.sync_context = *r->in.sync_context;
9220                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9221                 ZERO_STRUCTP(r->out.delta_enum_array);
9222         }
9223         if (flags & NDR_OUT) {
9224                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9225                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9226                 }
9227                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9228                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9229                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9230                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9231                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9232                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
9233                 }
9234                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9235                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
9236                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
9237                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9238                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9239                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9240                 }
9241                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9242                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9243                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9244                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9245                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9246         }
9247         return NDR_ERR_SUCCESS;
9248 }
9249
9250 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
9251 {
9252         ndr_print_struct(ndr, name, "netr_DatabaseSync");
9253         ndr->depth++;
9254         if (flags & NDR_SET_VALUES) {
9255                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9256         }
9257         if (flags & NDR_IN) {
9258                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
9259                 ndr->depth++;
9260                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9261                 ndr_print_string(ndr, "computername", r->in.computername);
9262                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9263                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9264                 ndr->depth++;
9265                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9266                 ndr->depth--;
9267                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9268                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
9269                 ndr->depth++;
9270                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
9271                 ndr->depth--;
9272                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9273                 ndr->depth--;
9274         }
9275         if (flags & NDR_OUT) {
9276                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
9277                 ndr->depth++;
9278                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9279                 ndr->depth++;
9280                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9281                 ndr->depth--;
9282                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
9283                 ndr->depth++;
9284                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
9285                 ndr->depth--;
9286                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9287                 ndr->depth++;
9288                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
9289                 ndr->depth--;
9290                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9291                 ndr->depth--;
9292         }
9293         ndr->depth--;
9294 }
9295
9296 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
9297 {
9298         if (flags & NDR_IN) {
9299                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9300                 if (r->in.logon_server) {
9301                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9302                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9303                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9304                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9305                 }
9306                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9307                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9308                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9309                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9310                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9311                 if (r->in.return_authenticator == NULL) {
9312                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9313                 }
9314                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9315                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9316                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
9317                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9318                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9319         }
9320         if (flags & NDR_OUT) {
9321                 if (r->out.return_authenticator == NULL) {
9322                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9323                 }
9324                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9325                 if (r->out.buffer == NULL) {
9326                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9327                 }
9328                 {
9329                         struct ndr_push *_ndr_buffer;
9330                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9331                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9332                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9333                 }
9334                 if (r->out.count_returned == NULL) {
9335                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9336                 }
9337                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9338                 if (r->out.total_entries == NULL) {
9339                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9340                 }
9341                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9342                 if (r->out.recordid == NULL) {
9343                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9344                 }
9345                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9346                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9347         }
9348         return NDR_ERR_SUCCESS;
9349 }
9350
9351 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
9352 {
9353         uint32_t _ptr_logon_server;
9354         TALLOC_CTX *_mem_save_logon_server_0;
9355         TALLOC_CTX *_mem_save_return_authenticator_0;
9356         TALLOC_CTX *_mem_save_buffer_0;
9357         TALLOC_CTX *_mem_save_count_returned_0;
9358         TALLOC_CTX *_mem_save_total_entries_0;
9359         TALLOC_CTX *_mem_save_recordid_0;
9360         if (flags & NDR_IN) {
9361                 ZERO_STRUCT(r->out);
9362
9363                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9364                 if (_ptr_logon_server) {
9365                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9366                 } else {
9367                         r->in.logon_server = NULL;
9368                 }
9369                 if (r->in.logon_server) {
9370                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9371                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9372                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9373                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9374                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9375                                 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.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9376                         }
9377                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9378                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
9379                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9380                 }
9381                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9382                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9383                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9384                         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.computername), ndr_get_array_length(ndr, &r->in.computername));
9385                 }
9386                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9387                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9388                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9389                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9390                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9391                 }
9392                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9393                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9394                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9395                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9396                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9397                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
9398                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9399                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9400                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9401                 *r->out.return_authenticator = *r->in.return_authenticator;
9402                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9403                 ZERO_STRUCTP(r->out.buffer);
9404                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9405                 ZERO_STRUCTP(r->out.count_returned);
9406                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9407                 ZERO_STRUCTP(r->out.total_entries);
9408                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9409                 ZERO_STRUCTP(r->out.recordid);
9410         }
9411         if (flags & NDR_OUT) {
9412                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9413                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9414                 }
9415                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9416                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9417                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9418                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9419                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9420                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9421                 }
9422                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9423                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9424                 {
9425                         struct ndr_pull *_ndr_buffer;
9426                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9427                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9428                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9429                 }
9430                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9431                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9432                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9433                 }
9434                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9435                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9436                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9437                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9438                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9439                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9440                 }
9441                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9442                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9443                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9444                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9445                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9446                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9447                 }
9448                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9449                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9450                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9451                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9452                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9453         }
9454         return NDR_ERR_SUCCESS;
9455 }
9456
9457 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
9458 {
9459         ndr_print_struct(ndr, name, "netr_AccountDeltas");
9460         ndr->depth++;
9461         if (flags & NDR_SET_VALUES) {
9462                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9463         }
9464         if (flags & NDR_IN) {
9465                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
9466                 ndr->depth++;
9467                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9468                 ndr->depth++;
9469                 if (r->in.logon_server) {
9470                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9471                 }
9472                 ndr->depth--;
9473                 ndr_print_string(ndr, "computername", r->in.computername);
9474                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9475                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9476                 ndr->depth++;
9477                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9478                 ndr->depth--;
9479                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
9480                 ndr_print_uint32(ndr, "count", r->in.count);
9481                 ndr_print_uint32(ndr, "level", r->in.level);
9482                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9483                 ndr->depth--;
9484         }
9485         if (flags & NDR_OUT) {
9486                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
9487                 ndr->depth++;
9488                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9489                 ndr->depth++;
9490                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9491                 ndr->depth--;
9492                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9493                 ndr->depth++;
9494                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9495                 ndr->depth--;
9496                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9497                 ndr->depth++;
9498                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9499                 ndr->depth--;
9500                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9501                 ndr->depth++;
9502                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9503                 ndr->depth--;
9504                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9505                 ndr->depth++;
9506                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9507                 ndr->depth--;
9508                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9509                 ndr->depth--;
9510         }
9511         ndr->depth--;
9512 }
9513
9514 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
9515 {
9516         if (flags & NDR_IN) {
9517                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9518                 if (r->in.logon_server) {
9519                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9520                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9521                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9522                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9523                 }
9524                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9525                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9526                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9527                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9528                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9529                 if (r->in.return_authenticator == NULL) {
9530                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9531                 }
9532                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9533                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
9534                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9535                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9536                 if (r->in.recordid == NULL) {
9537                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9538                 }
9539                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9540         }
9541         if (flags & NDR_OUT) {
9542                 if (r->out.return_authenticator == NULL) {
9543                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9544                 }
9545                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9546                 if (r->out.buffer == NULL) {
9547                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9548                 }
9549                 {
9550                         struct ndr_push *_ndr_buffer;
9551                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9552                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9553                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9554                 }
9555                 if (r->out.count_returned == NULL) {
9556                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9557                 }
9558                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9559                 if (r->out.total_entries == NULL) {
9560                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9561                 }
9562                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9563                 if (r->out.next_reference == NULL) {
9564                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9565                 }
9566                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
9567                 if (r->out.recordid == NULL) {
9568                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9569                 }
9570                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9571                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9572         }
9573         return NDR_ERR_SUCCESS;
9574 }
9575
9576 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
9577 {
9578         uint32_t _ptr_logon_server;
9579         TALLOC_CTX *_mem_save_logon_server_0;
9580         TALLOC_CTX *_mem_save_return_authenticator_0;
9581         TALLOC_CTX *_mem_save_buffer_0;
9582         TALLOC_CTX *_mem_save_count_returned_0;
9583         TALLOC_CTX *_mem_save_total_entries_0;
9584         TALLOC_CTX *_mem_save_next_reference_0;
9585         TALLOC_CTX *_mem_save_recordid_0;
9586         if (flags & NDR_IN) {
9587                 ZERO_STRUCT(r->out);
9588
9589                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9590                 if (_ptr_logon_server) {
9591                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9592                 } else {
9593                         r->in.logon_server = NULL;
9594                 }
9595                 if (r->in.logon_server) {
9596                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9597                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9598                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9599                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9600                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9601                                 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.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9602                         }
9603                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9604                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
9605                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9606                 }
9607                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9608                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9609                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9610                         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.computername), ndr_get_array_length(ndr, &r->in.computername));
9611                 }
9612                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9613                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9614                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9615                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9616                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9617                 }
9618                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9619                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9620                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9621                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9622                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
9623                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9624                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9625                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9626                         NDR_PULL_ALLOC(ndr, r->in.recordid);
9627                 }
9628                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9629                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
9630                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9631                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9632                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9633                 *r->out.return_authenticator = *r->in.return_authenticator;
9634                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9635                 ZERO_STRUCTP(r->out.buffer);
9636                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9637                 ZERO_STRUCTP(r->out.count_returned);
9638                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9639                 ZERO_STRUCTP(r->out.total_entries);
9640                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
9641                 ZERO_STRUCTP(r->out.next_reference);
9642                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9643                 *r->out.recordid = *r->in.recordid;
9644         }
9645         if (flags & NDR_OUT) {
9646                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9647                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9648                 }
9649                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9650                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9651                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9652                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9653                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9654                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9655                 }
9656                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9657                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9658                 {
9659                         struct ndr_pull *_ndr_buffer;
9660                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9661                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9662                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9663                 }
9664                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9665                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9666                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9667                 }
9668                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9669                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9670                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9671                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9672                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9673                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9674                 }
9675                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9676                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9677                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9678                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9679                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9680                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
9681                 }
9682                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
9683                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
9684                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
9685                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
9686                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9687                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9688                 }
9689                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9690                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9691                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9692                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9693                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9694         }
9695         return NDR_ERR_SUCCESS;
9696 }
9697
9698 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
9699 {
9700         ndr_print_struct(ndr, name, "netr_AccountSync");
9701         ndr->depth++;
9702         if (flags & NDR_SET_VALUES) {
9703                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9704         }
9705         if (flags & NDR_IN) {
9706                 ndr_print_struct(ndr, "in", "netr_AccountSync");
9707                 ndr->depth++;
9708                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9709                 ndr->depth++;
9710                 if (r->in.logon_server) {
9711                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9712                 }
9713                 ndr->depth--;
9714                 ndr_print_string(ndr, "computername", r->in.computername);
9715                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9716                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9717                 ndr->depth++;
9718                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9719                 ndr->depth--;
9720                 ndr_print_uint32(ndr, "reference", r->in.reference);
9721                 ndr_print_uint32(ndr, "level", r->in.level);
9722                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9723                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
9724                 ndr->depth++;
9725                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
9726                 ndr->depth--;
9727                 ndr->depth--;
9728         }
9729         if (flags & NDR_OUT) {
9730                 ndr_print_struct(ndr, "out", "netr_AccountSync");
9731                 ndr->depth++;
9732                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9733                 ndr->depth++;
9734                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9735                 ndr->depth--;
9736                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9737                 ndr->depth++;
9738                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9739                 ndr->depth--;
9740                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9741                 ndr->depth++;
9742                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9743                 ndr->depth--;
9744                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9745                 ndr->depth++;
9746                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9747                 ndr->depth--;
9748                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
9749                 ndr->depth++;
9750                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
9751                 ndr->depth--;
9752                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9753                 ndr->depth++;
9754                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9755                 ndr->depth--;
9756                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9757                 ndr->depth--;
9758         }
9759         ndr->depth--;
9760 }
9761
9762 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
9763 {
9764         if (flags & NDR_IN) {
9765                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9766                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9767                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9768                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9769                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
9770                 if (r->in.domainname) {
9771                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9772                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9773                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9774                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9775                 }
9776         }
9777         if (flags & NDR_OUT) {
9778                 if (r->out.dcname == NULL) {
9779                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9780                 }
9781                 if (*r->out.dcname == NULL) {
9782                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9783                 }
9784                 NDR_CHECK(ndr_push_ref_ptr(ndr));
9785                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9786                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9787                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9788                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9789                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9790         }
9791         return NDR_ERR_SUCCESS;
9792 }
9793
9794 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
9795 {
9796         uint32_t _ptr_domainname;
9797         uint32_t _ptr_dcname;
9798         TALLOC_CTX *_mem_save_domainname_0;
9799         TALLOC_CTX *_mem_save_dcname_0;
9800         if (flags & NDR_IN) {
9801                 ZERO_STRUCT(r->out);
9802
9803                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9804                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9805                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9806                         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.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9807                 }
9808                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9809                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
9810                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
9811                 if (_ptr_domainname) {
9812                         NDR_PULL_ALLOC(ndr, r->in.domainname);
9813                 } else {
9814                         r->in.domainname = NULL;
9815                 }
9816                 if (r->in.domainname) {
9817                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9818                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
9819                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
9820                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
9821                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
9822                                 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.domainname), ndr_get_array_length(ndr, &r->in.domainname));
9823                         }
9824                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
9825                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
9826                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
9827                 }
9828                 NDR_PULL_ALLOC(ndr, r->out.dcname);
9829                 ZERO_STRUCTP(r->out.dcname);
9830         }
9831         if (flags & NDR_OUT) {
9832                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9833                         NDR_PULL_ALLOC(ndr, r->out.dcname);
9834                 }
9835                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9836                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
9837                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_dcname));
9838                 NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
9839                 NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
9840                 if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
9841                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.dcname), ndr_get_array_length(ndr, r->out.dcname));
9842                 }
9843                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
9844                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
9845                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
9846                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9847         }
9848         return NDR_ERR_SUCCESS;
9849 }
9850
9851 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
9852 {
9853         ndr_print_struct(ndr, name, "netr_GetDcName");
9854         ndr->depth++;
9855         if (flags & NDR_SET_VALUES) {
9856                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9857         }
9858         if (flags & NDR_IN) {
9859                 ndr_print_struct(ndr, "in", "netr_GetDcName");
9860                 ndr->depth++;
9861                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9862                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
9863                 ndr->depth++;
9864                 if (r->in.domainname) {
9865                         ndr_print_string(ndr, "domainname", r->in.domainname);
9866                 }
9867                 ndr->depth--;
9868                 ndr->depth--;
9869         }
9870         if (flags & NDR_OUT) {
9871                 ndr_print_struct(ndr, "out", "netr_GetDcName");
9872                 ndr->depth++;
9873                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
9874                 ndr->depth++;
9875                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
9876                 ndr->depth++;
9877                 ndr_print_string(ndr, "dcname", *r->out.dcname);
9878                 ndr->depth--;
9879                 ndr->depth--;
9880                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9881                 ndr->depth--;
9882         }
9883         ndr->depth--;
9884 }
9885
9886 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
9887 {
9888         if (flags & NDR_IN) {
9889                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9890                 if (r->in.logon_server) {
9891                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9892                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9893                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9894                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9895                 }
9896                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
9897                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9898         }
9899         if (flags & NDR_OUT) {
9900                 if (r->out.info == NULL) {
9901                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9902                 }
9903                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
9904                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9905                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9906         }
9907         return NDR_ERR_SUCCESS;
9908 }
9909
9910 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
9911 {
9912         uint32_t _ptr_logon_server;
9913         TALLOC_CTX *_mem_save_logon_server_0;
9914         TALLOC_CTX *_mem_save_info_0;
9915         if (flags & NDR_IN) {
9916                 ZERO_STRUCT(r->out);
9917
9918                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9919                 if (_ptr_logon_server) {
9920                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9921                 } else {
9922                         r->in.logon_server = NULL;
9923                 }
9924                 if (r->in.logon_server) {
9925                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9926                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9927                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9928                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9929                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9930                                 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.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9931                         }
9932                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9933                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
9934                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9935                 }
9936                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
9937                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9938                 NDR_PULL_ALLOC(ndr, r->out.info);
9939                 ZERO_STRUCTP(r->out.info);
9940         }
9941         if (flags & NDR_OUT) {
9942                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9943                         NDR_PULL_ALLOC(ndr, r->out.info);
9944                 }
9945                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9946                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9947                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
9948                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9949                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9950                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9951         }
9952         return NDR_ERR_SUCCESS;
9953 }
9954
9955 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
9956 {
9957         ndr_print_struct(ndr, name, "netr_LogonControl");
9958         ndr->depth++;
9959         if (flags & NDR_SET_VALUES) {
9960                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9961         }
9962         if (flags & NDR_IN) {
9963                 ndr_print_struct(ndr, "in", "netr_LogonControl");
9964                 ndr->depth++;
9965                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9966                 ndr->depth++;
9967                 if (r->in.logon_server) {
9968                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9969                 }
9970                 ndr->depth--;
9971                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
9972                 ndr_print_uint32(ndr, "level", r->in.level);
9973                 ndr->depth--;
9974         }
9975         if (flags & NDR_OUT) {
9976                 ndr_print_struct(ndr, "out", "netr_LogonControl");
9977                 ndr->depth++;
9978                 ndr_print_ptr(ndr, "info", r->out.info);
9979                 ndr->depth++;
9980                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
9981                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
9982                 ndr->depth--;
9983                 ndr_print_WERROR(ndr, "result", r->out.result);
9984                 ndr->depth--;
9985         }
9986         ndr->depth--;
9987 }
9988
9989 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
9990 {
9991         if (flags & NDR_IN) {
9992                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9993                 if (r->in.logon_server) {
9994                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9995                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9996                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9997                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9998                 }
9999                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10000                 if (r->in.domainname) {
10001                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10002                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10003                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10004                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10005                 }
10006         }
10007         if (flags & NDR_OUT) {
10008                 if (r->out.dcname == NULL) {
10009                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10010                 }
10011                 if (*r->out.dcname == NULL) {
10012                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10013                 }
10014                 NDR_CHECK(ndr_push_ref_ptr(ndr));
10015                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10016                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10017                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10018                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10019                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10020         }
10021         return NDR_ERR_SUCCESS;
10022 }
10023
10024 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
10025 {
10026         uint32_t _ptr_logon_server;
10027         uint32_t _ptr_domainname;
10028         uint32_t _ptr_dcname;
10029         TALLOC_CTX *_mem_save_logon_server_0;
10030         TALLOC_CTX *_mem_save_domainname_0;
10031         TALLOC_CTX *_mem_save_dcname_0;
10032         if (flags & NDR_IN) {
10033                 ZERO_STRUCT(r->out);
10034
10035                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10036                 if (_ptr_logon_server) {
10037                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10038                 } else {
10039                         r->in.logon_server = NULL;
10040                 }
10041                 if (r->in.logon_server) {
10042                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10043                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10044                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10045                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10046                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10047                                 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.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
10048                         }
10049                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10050                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
10051                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10052                 }
10053                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
10054                 if (_ptr_domainname) {
10055                         NDR_PULL_ALLOC(ndr, r->in.domainname);
10056                 } else {
10057                         r->in.domainname = NULL;
10058                 }
10059                 if (r->in.domainname) {
10060                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10061                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
10062                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
10063                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
10064                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
10065                                 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.domainname), ndr_get_array_length(ndr, &r->in.domainname));
10066                         }
10067                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
10068                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
10069                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
10070                 }
10071                 NDR_PULL_ALLOC(ndr, r->out.dcname);
10072                 ZERO_STRUCTP(r->out.dcname);
10073         }
10074         if (flags & NDR_OUT) {
10075                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10076                         NDR_PULL_ALLOC(ndr, r->out.dcname);
10077                 }
10078                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10079                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
10080                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_dcname));
10081                 NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
10082                 NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
10083                 if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
10084                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.dcname), ndr_get_array_length(ndr, r->out.dcname));
10085                 }
10086                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
10087                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
10088                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
10089                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10090         }
10091         return NDR_ERR_SUCCESS;
10092 }
10093
10094 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
10095 {
10096         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
10097         ndr->depth++;
10098         if (flags & NDR_SET_VALUES) {
10099                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10100         }
10101         if (flags & NDR_IN) {
10102                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
10103                 ndr->depth++;
10104                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10105                 ndr->depth++;
10106                 if (r->in.logon_server) {
10107                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10108                 }
10109                 ndr->depth--;
10110                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
10111                 ndr->depth++;
10112                 if (r->in.domainname) {
10113                         ndr_print_string(ndr, "domainname", r->in.domainname);
10114                 }
10115                 ndr->depth--;
10116                 ndr->depth--;
10117         }
10118         if (flags & NDR_OUT) {
10119                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
10120                 ndr->depth++;
10121                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
10122                 ndr->depth++;
10123                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
10124                 ndr->depth++;
10125                 ndr_print_string(ndr, "dcname", *r->out.dcname);
10126                 ndr->depth--;
10127                 ndr->depth--;
10128                 ndr_print_WERROR(ndr, "result", r->out.result);
10129                 ndr->depth--;
10130         }
10131         ndr->depth--;
10132 }
10133
10134 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
10135 {
10136         if (flags & NDR_IN) {
10137                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10138                 if (r->in.logon_server) {
10139                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10140                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10141                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10142                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10143                 }
10144                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10145                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10146                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
10147                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10148         }
10149         if (flags & NDR_OUT) {
10150                 if (r->out.query == NULL) {
10151                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10152                 }
10153                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10154                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10155                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10156         }
10157         return NDR_ERR_SUCCESS;
10158 }
10159
10160 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
10161 {
10162         uint32_t _ptr_logon_server;
10163         TALLOC_CTX *_mem_save_logon_server_0;
10164         TALLOC_CTX *_mem_save_query_0;
10165         if (flags & NDR_IN) {
10166                 ZERO_STRUCT(r->out);
10167
10168                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10169                 if (_ptr_logon_server) {
10170                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10171                 } else {
10172                         r->in.logon_server = NULL;
10173                 }
10174                 if (r->in.logon_server) {
10175                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10176                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10177                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10178                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10179                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10180                                 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.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
10181                         }
10182                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10183                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
10184                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10185                 }
10186                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10187                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10188                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
10189                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10190                 NDR_PULL_ALLOC(ndr, r->out.query);
10191                 ZERO_STRUCTP(r->out.query);
10192         }
10193         if (flags & NDR_OUT) {
10194                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10195                         NDR_PULL_ALLOC(ndr, r->out.query);
10196                 }
10197                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10198                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10199                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10200                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10201                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10202                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10203         }
10204         return NDR_ERR_SUCCESS;
10205 }
10206
10207 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
10208 {
10209         ndr_print_struct(ndr, name, "netr_LogonControl2");
10210         ndr->depth++;
10211         if (flags & NDR_SET_VALUES) {
10212                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10213         }
10214         if (flags & NDR_IN) {
10215                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
10216                 ndr->depth++;
10217                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10218                 ndr->depth++;
10219                 if (r->in.logon_server) {
10220                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10221                 }
10222                 ndr->depth--;
10223                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
10224                 ndr_print_uint32(ndr, "level", r->in.level);
10225                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
10226                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
10227                 ndr->depth--;
10228         }
10229         if (flags & NDR_OUT) {
10230                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
10231                 ndr->depth++;
10232                 ndr_print_ptr(ndr, "query", r->out.query);
10233                 ndr->depth++;
10234                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10235                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10236                 ndr->depth--;
10237                 ndr_print_WERROR(ndr, "result", r->out.result);
10238                 ndr->depth--;
10239         }
10240         ndr->depth--;
10241 }
10242
10243 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
10244 {
10245         if (flags & NDR_IN) {
10246                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10247                 if (r->in.server_name) {
10248                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10249                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10250                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10251                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10252                 }
10253                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10254                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10255                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10256                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10257                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10258                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10259                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10260                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10261                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10262                 if (r->in.credentials == NULL) {
10263                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10264                 }
10265                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10266                 if (r->in.negotiate_flags == NULL) {
10267                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10268                 }
10269                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags));
10270         }
10271         if (flags & NDR_OUT) {
10272                 if (r->out.credentials == NULL) {
10273                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10274                 }
10275                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
10276                 if (r->out.negotiate_flags == NULL) {
10277                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10278                 }
10279                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags));
10280                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10281         }
10282         return NDR_ERR_SUCCESS;
10283 }
10284
10285 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
10286 {
10287         uint32_t _ptr_server_name;
10288         TALLOC_CTX *_mem_save_server_name_0;
10289         TALLOC_CTX *_mem_save_credentials_0;
10290         TALLOC_CTX *_mem_save_negotiate_flags_0;
10291         if (flags & NDR_IN) {
10292                 ZERO_STRUCT(r->out);
10293
10294                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10295                 if (_ptr_server_name) {
10296                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10297                 } else {
10298                         r->in.server_name = NULL;
10299                 }
10300                 if (r->in.server_name) {
10301                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10302                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10303                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10304                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10305                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10306                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
10307                         }
10308                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10309                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
10310                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10311                 }
10312                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10313                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10314                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10315                         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.account_name), ndr_get_array_length(ndr, &r->in.account_name));
10316                 }
10317                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10318                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
10319                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10320                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10321                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10322                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10323                         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.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
10324                 }
10325                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10326                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
10327                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10328                         NDR_PULL_ALLOC(ndr, r->in.credentials);
10329                 }
10330                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10331                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10332                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10333                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10334                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10335                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
10336                 }
10337                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10338                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10339                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags));
10340                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10341                 NDR_PULL_ALLOC(ndr, r->out.credentials);
10342                 *r->out.credentials = *r->in.credentials;
10343                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10344                 *r->out.negotiate_flags = *r->in.negotiate_flags;
10345         }
10346         if (flags & NDR_OUT) {
10347                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10348                         NDR_PULL_ALLOC(ndr, r->out.credentials);
10349                 }
10350                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10351                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
10352                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
10353                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10354                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10355                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10356                 }
10357                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10358                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10359                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags));
10360                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10361                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10362         }
10363         return NDR_ERR_SUCCESS;
10364 }
10365
10366 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
10367 {
10368         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
10369         ndr->depth++;
10370         if (flags & NDR_SET_VALUES) {
10371                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10372         }
10373         if (flags & NDR_IN) {
10374                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
10375                 ndr->depth++;
10376                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10377                 ndr->depth++;
10378                 if (r->in.server_name) {
10379                         ndr_print_string(ndr, "server_name", r->in.server_name);
10380                 }
10381                 ndr->depth--;
10382                 ndr_print_string(ndr, "account_name", r->in.account_name);
10383                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10384                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10385                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10386                 ndr->depth++;
10387                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10388                 ndr->depth--;
10389                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
10390                 ndr->depth++;
10391                 ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags);
10392                 ndr->depth--;
10393                 ndr->depth--;
10394         }
10395         if (flags & NDR_OUT) {
10396                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
10397                 ndr->depth++;
10398                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
10399                 ndr->depth++;
10400                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
10401                 ndr->depth--;
10402                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
10403                 ndr->depth++;
10404                 ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags);
10405                 ndr->depth--;
10406                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10407                 ndr->depth--;
10408         }
10409         ndr->depth--;
10410 }
10411
10412 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
10413 {
10414         if (flags & NDR_IN) {
10415                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10416                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10417                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10418                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10419                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10420                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10421                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10422                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10423                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10424                 if (r->in.return_authenticator == NULL) {
10425                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10426                 }
10427                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10428                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10429                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
10430                 if (r->in.sync_context == NULL) {
10431                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10432                 }
10433                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10434                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10435         }
10436         if (flags & NDR_OUT) {
10437                 if (r->out.return_authenticator == NULL) {
10438                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10439                 }
10440                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10441                 if (r->out.sync_context == NULL) {
10442                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10443                 }
10444                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10445                 if (r->out.delta_enum_array == NULL) {
10446                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10447                 }
10448                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10449                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10450         }
10451         return NDR_ERR_SUCCESS;
10452 }
10453
10454 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
10455 {
10456         TALLOC_CTX *_mem_save_return_authenticator_0;
10457         TALLOC_CTX *_mem_save_sync_context_0;
10458         TALLOC_CTX *_mem_save_delta_enum_array_0;
10459         if (flags & NDR_IN) {
10460                 ZERO_STRUCT(r->out);
10461
10462                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10463                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10464                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10465                         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.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
10466                 }
10467                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10468                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
10469                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10470                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10471                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10472                         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.computername), ndr_get_array_length(ndr, &r->in.computername));
10473                 }
10474                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10475                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10476                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10477                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10478                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10479                 }
10480                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10481                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10482                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10483                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10484                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10485                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
10486                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10487                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
10488                 }
10489                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10490                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10491                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10492                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10493                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10494                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10495                 *r->out.return_authenticator = *r->in.return_authenticator;
10496                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10497                 *r->out.sync_context = *r->in.sync_context;
10498                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10499                 ZERO_STRUCTP(r->out.delta_enum_array);
10500         }
10501         if (flags & NDR_OUT) {
10502                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10503                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10504                 }
10505                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10506                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10507                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10508                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10509                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10510                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
10511                 }
10512                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10513                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10514                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10515                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10516                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10517                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10518                 }
10519                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10520                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10521                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10522                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10523                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10524         }
10525         return NDR_ERR_SUCCESS;
10526 }
10527
10528 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
10529 {
10530         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
10531         ndr->depth++;
10532         if (flags & NDR_SET_VALUES) {
10533                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10534         }
10535         if (flags & NDR_IN) {
10536                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
10537                 ndr->depth++;
10538                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10539                 ndr_print_string(ndr, "computername", r->in.computername);
10540                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10541                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10542                 ndr->depth++;
10543                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10544                 ndr->depth--;
10545                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10546                 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
10547                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10548                 ndr->depth++;
10549                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10550                 ndr->depth--;
10551                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10552                 ndr->depth--;
10553         }
10554         if (flags & NDR_OUT) {
10555                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
10556                 ndr->depth++;
10557                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10558                 ndr->depth++;
10559                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10560                 ndr->depth--;
10561                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10562                 ndr->depth++;
10563                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10564                 ndr->depth--;
10565                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10566                 ndr->depth++;
10567                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
10568                 ndr->depth--;
10569                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10570                 ndr->depth--;
10571         }
10572         ndr->depth--;
10573 }
10574
10575 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
10576 {
10577         if (flags & NDR_IN) {
10578                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10579                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10580                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10581                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10582                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10583                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10584                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10585                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10586                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10587                 if (r->in.return_authenticator == NULL) {
10588                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10589                 }
10590                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10591                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.change_log_entry));
10592                 if (r->in.change_log_entry) {
10593                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10594                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, r->in.change_log_entry_size));
10595                 }
10596                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10597         }
10598         if (flags & NDR_OUT) {
10599                 if (r->out.return_authenticator == NULL) {
10600                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10601                 }
10602                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10603                 if (r->out.delta_enum_array == NULL) {
10604                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10605                 }
10606                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10607                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10608         }
10609         return NDR_ERR_SUCCESS;
10610 }
10611
10612 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
10613 {
10614         uint32_t _ptr_change_log_entry;
10615         TALLOC_CTX *_mem_save_return_authenticator_0;
10616         TALLOC_CTX *_mem_save_change_log_entry_0;
10617         TALLOC_CTX *_mem_save_delta_enum_array_0;
10618         if (flags & NDR_IN) {
10619                 ZERO_STRUCT(r->out);
10620
10621                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10622                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10623                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10624                         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.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
10625                 }
10626                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10627                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
10628                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10629                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10630                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10631                         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.computername), ndr_get_array_length(ndr, &r->in.computername));
10632                 }
10633                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10634                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10635                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10636                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10637                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10638                 }
10639                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10640                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10641                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10642                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10643                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_change_log_entry));
10644                 if (_ptr_change_log_entry) {
10645                         NDR_PULL_ALLOC(ndr, r->in.change_log_entry);
10646                 } else {
10647                         r->in.change_log_entry = NULL;
10648                 }
10649                 if (r->in.change_log_entry) {
10650                         _mem_save_change_log_entry_0 = NDR_PULL_GET_MEM_CTX(ndr);
10651                         NDR_PULL_SET_MEM_CTX(ndr, r->in.change_log_entry, 0);
10652                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.change_log_entry));
10653                         NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry));
10654                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry)));
10655                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_change_log_entry_0, 0);
10656                 }
10657                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
10658                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10659                 *r->out.return_authenticator = *r->in.return_authenticator;
10660                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10661                 ZERO_STRUCTP(r->out.delta_enum_array);
10662                 if (r->in.change_log_entry) {
10663                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.change_log_entry, r->in.change_log_entry_size));
10664                 }
10665         }
10666         if (flags & NDR_OUT) {
10667                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10668                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10669                 }
10670                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10671                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10672                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10673                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10674                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10675                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10676                 }
10677                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10678                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10679                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10680                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10681                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10682         }
10683         return NDR_ERR_SUCCESS;
10684 }
10685
10686 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
10687 {
10688         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
10689         ndr->depth++;
10690         if (flags & NDR_SET_VALUES) {
10691                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10692         }
10693         if (flags & NDR_IN) {
10694                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
10695                 ndr->depth++;
10696                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10697                 ndr_print_string(ndr, "computername", r->in.computername);
10698                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10699                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10700                 ndr->depth++;
10701                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10702                 ndr->depth--;
10703                 ndr_print_ptr(ndr, "change_log_entry", r->in.change_log_entry);
10704                 ndr->depth++;
10705                 if (r->in.change_log_entry) {
10706                         ndr_print_array_uint8(ndr, "change_log_entry", r->in.change_log_entry, r->in.change_log_entry_size);
10707                 }
10708                 ndr->depth--;
10709                 ndr_print_uint32(ndr, "change_log_entry_size", r->in.change_log_entry_size);
10710                 ndr->depth--;
10711         }
10712         if (flags & NDR_OUT) {
10713                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
10714                 ndr->depth++;
10715                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10716                 ndr->depth++;
10717                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10718                 ndr->depth--;
10719                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10720                 ndr->depth++;
10721                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
10722                 ndr->depth--;
10723                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10724                 ndr->depth--;
10725         }
10726         ndr->depth--;
10727 }
10728
10729 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
10730 {
10731         if (flags & NDR_IN) {
10732                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10733                 if (r->in.logon_server) {
10734                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10735                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10736                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10737                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10738                 }
10739                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10740                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10741                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
10742                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10743         }
10744         if (flags & NDR_OUT) {
10745                 if (r->out.query == NULL) {
10746                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10747                 }
10748                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10749                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10750                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10751         }
10752         return NDR_ERR_SUCCESS;
10753 }
10754
10755 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
10756 {
10757         uint32_t _ptr_logon_server;
10758         TALLOC_CTX *_mem_save_logon_server_0;
10759         TALLOC_CTX *_mem_save_query_0;
10760         if (flags & NDR_IN) {
10761                 ZERO_STRUCT(r->out);
10762
10763                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10764                 if (_ptr_logon_server) {
10765                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10766                 } else {
10767                         r->in.logon_server = NULL;
10768                 }
10769                 if (r->in.logon_server) {
10770                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10771                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10772                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10773                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10774                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10775                                 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.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
10776                         }
10777                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10778                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
10779                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10780                 }
10781                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10782                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10783                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
10784                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10785                 NDR_PULL_ALLOC(ndr, r->out.query);
10786                 ZERO_STRUCTP(r->out.query);
10787         }
10788         if (flags & NDR_OUT) {
10789                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10790                         NDR_PULL_ALLOC(ndr, r->out.query);
10791                 }
10792                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10793                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10794                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10795                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10796                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10797                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10798         }
10799         return NDR_ERR_SUCCESS;
10800 }
10801
10802 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
10803 {
10804         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
10805         ndr->depth++;
10806         if (flags & NDR_SET_VALUES) {
10807                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10808         }
10809         if (flags & NDR_IN) {
10810                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
10811                 ndr->depth++;
10812                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10813                 ndr->depth++;
10814                 if (r->in.logon_server) {
10815                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10816                 }
10817                 ndr->depth--;
10818                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
10819                 ndr_print_uint32(ndr, "level", r->in.level);
10820                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
10821                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
10822                 ndr->depth--;
10823         }
10824         if (flags & NDR_OUT) {
10825                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
10826                 ndr->depth++;
10827                 ndr_print_ptr(ndr, "query", r->out.query);
10828                 ndr->depth++;
10829                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10830                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10831                 ndr->depth--;
10832                 ndr_print_WERROR(ndr, "result", r->out.result);
10833                 ndr->depth--;
10834         }
10835         ndr->depth--;
10836 }
10837
10838 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
10839 {
10840         if (flags & NDR_IN) {
10841                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10842                 if (r->in.server_name) {
10843                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10844                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10845                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10846                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10847                 }
10848         }
10849         if (flags & NDR_OUT) {
10850                 if (r->out.trusted_domains_blob == NULL) {
10851                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10852                 }
10853                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
10854                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10855         }
10856         return NDR_ERR_SUCCESS;
10857 }
10858
10859 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
10860 {
10861         uint32_t _ptr_server_name;
10862         TALLOC_CTX *_mem_save_server_name_0;
10863         TALLOC_CTX *_mem_save_trusted_domains_blob_0;
10864         if (flags & NDR_IN) {
10865                 ZERO_STRUCT(r->out);
10866
10867                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10868                 if (_ptr_server_name) {
10869                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10870                 } else {
10871                         r->in.server_name = NULL;
10872                 }
10873                 if (r->in.server_name) {
10874                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10875                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10876                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10877                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10878                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10879                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
10880                         }
10881                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10882                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
10883                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10884                 }
10885                 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
10886                 ZERO_STRUCTP(r->out.trusted_domains_blob);
10887         }
10888         if (flags & NDR_OUT) {
10889                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10890                         NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
10891                 }
10892                 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
10893                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
10894                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
10895                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
10896                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10897         }
10898         return NDR_ERR_SUCCESS;
10899 }
10900
10901 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
10902 {
10903         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
10904         ndr->depth++;
10905         if (flags & NDR_SET_VALUES) {
10906                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10907         }
10908         if (flags & NDR_IN) {
10909                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
10910                 ndr->depth++;
10911                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10912                 ndr->depth++;
10913                 if (r->in.server_name) {
10914                         ndr_print_string(ndr, "server_name", r->in.server_name);
10915                 }
10916                 ndr->depth--;
10917                 ndr->depth--;
10918         }
10919         if (flags & NDR_OUT) {
10920                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
10921                 ndr->depth++;
10922                 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
10923                 ndr->depth++;
10924                 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
10925                 ndr->depth--;
10926                 ndr_print_WERROR(ndr, "result", r->out.result);
10927                 ndr->depth--;
10928         }
10929         ndr->depth--;
10930 }
10931
10932 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
10933 {
10934         if (flags & NDR_IN) {
10935                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
10936                 if (r->in.server_unc) {
10937                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
10938                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10939                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
10940                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10941                 }
10942                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
10943                 if (r->in.domain_name) {
10944                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
10945                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10946                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
10947                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10948                 }
10949                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
10950                 if (r->in.domain_guid) {
10951                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
10952                 }
10953                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
10954                 if (r->in.site_guid) {
10955                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
10956                 }
10957                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
10958         }
10959         if (flags & NDR_OUT) {
10960                 if (r->out.info == NULL) {
10961                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10962                 }
10963                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10964                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10965         }
10966         return NDR_ERR_SUCCESS;
10967 }
10968
10969 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
10970 {
10971         uint32_t _ptr_server_unc;
10972         uint32_t _ptr_domain_name;
10973         uint32_t _ptr_domain_guid;
10974         uint32_t _ptr_site_guid;
10975         TALLOC_CTX *_mem_save_server_unc_0;
10976         TALLOC_CTX *_mem_save_domain_name_0;
10977         TALLOC_CTX *_mem_save_domain_guid_0;
10978         TALLOC_CTX *_mem_save_site_guid_0;
10979         TALLOC_CTX *_mem_save_info_0;
10980         if (flags & NDR_IN) {
10981                 ZERO_STRUCT(r->out);
10982
10983                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
10984                 if (_ptr_server_unc) {
10985                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
10986                 } else {
10987                         r->in.server_unc = NULL;
10988                 }
10989                 if (r->in.server_unc) {
10990                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
10991                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
10992                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
10993                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
10994                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
10995                                 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.server_unc), ndr_get_array_length(ndr, &r->in.server_unc));
10996                         }
10997                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
10998                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16));
10999                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11000                 }
11001                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11002                 if (_ptr_domain_name) {
11003                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11004                 } else {
11005                         r->in.domain_name = NULL;
11006                 }
11007                 if (r->in.domain_name) {
11008                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11009                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11010                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11011                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11012                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11013                                 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.domain_name), ndr_get_array_length(ndr, &r->in.domain_name));
11014                         }
11015                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11016                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16));
11017                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11018                 }
11019                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11020                 if (_ptr_domain_guid) {
11021                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11022                 } else {
11023                         r->in.domain_guid = NULL;
11024                 }
11025                 if (r->in.domain_guid) {
11026                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11027                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11028                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11029                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11030                 }
11031                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
11032                 if (_ptr_site_guid) {
11033                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
11034                 } else {
11035                         r->in.site_guid = NULL;
11036                 }
11037                 if (r->in.site_guid) {
11038                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11039                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
11040                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
11041                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
11042                 }
11043                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11044                 NDR_PULL_ALLOC(ndr, r->out.info);
11045                 ZERO_STRUCTP(r->out.info);
11046         }
11047         if (flags & NDR_OUT) {
11048                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11049                         NDR_PULL_ALLOC(ndr, r->out.info);
11050                 }
11051                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11052                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11053                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11054                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11055                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11056         }
11057         return NDR_ERR_SUCCESS;
11058 }
11059
11060 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
11061 {
11062         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
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", "netr_DsRGetDCName");
11069                 ndr->depth++;
11070                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11071                 ndr->depth++;
11072                 if (r->in.server_unc) {
11073                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11074                 }
11075                 ndr->depth--;
11076                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11077                 ndr->depth++;
11078                 if (r->in.domain_name) {
11079                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11080                 }
11081                 ndr->depth--;
11082                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11083                 ndr->depth++;
11084                 if (r->in.domain_guid) {
11085                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11086                 }
11087                 ndr->depth--;
11088                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
11089                 ndr->depth++;
11090                 if (r->in.site_guid) {
11091                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
11092                 }
11093                 ndr->depth--;
11094                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11095                 ndr->depth--;
11096         }
11097         if (flags & NDR_OUT) {
11098                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
11099                 ndr->depth++;
11100                 ndr_print_ptr(ndr, "info", r->out.info);
11101                 ndr->depth++;
11102                 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info);
11103                 ndr->depth--;
11104                 ndr_print_WERROR(ndr, "result", r->out.result);
11105                 ndr->depth--;
11106         }
11107         ndr->depth--;
11108 }
11109
11110 static enum ndr_err_code ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11111 {
11112         if (flags & NDR_IN) {
11113         }
11114         if (flags & NDR_OUT) {
11115                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11116         }
11117         return NDR_ERR_SUCCESS;
11118 }
11119
11120 static enum ndr_err_code ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
11121 {
11122         if (flags & NDR_IN) {
11123         }
11124         if (flags & NDR_OUT) {
11125                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11126         }
11127         return NDR_ERR_SUCCESS;
11128 }
11129
11130 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11131 {
11132         ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
11133         ndr->depth++;
11134         if (flags & NDR_SET_VALUES) {
11135                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11136         }
11137         if (flags & NDR_IN) {
11138                 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
11139                 ndr->depth++;
11140                 ndr->depth--;
11141         }
11142         if (flags & NDR_OUT) {
11143                 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
11144                 ndr->depth++;
11145                 ndr_print_WERROR(ndr, "result", r->out.result);
11146                 ndr->depth--;
11147         }
11148         ndr->depth--;
11149 }
11150
11151 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11152 {
11153         if (flags & NDR_IN) {
11154         }
11155         if (flags & NDR_OUT) {
11156                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11157         }
11158         return NDR_ERR_SUCCESS;
11159 }
11160
11161 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
11162 {
11163         if (flags & NDR_IN) {
11164         }
11165         if (flags & NDR_OUT) {
11166                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11167         }
11168         return NDR_ERR_SUCCESS;
11169 }
11170
11171 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11172 {
11173         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
11174         ndr->depth++;
11175         if (flags & NDR_SET_VALUES) {
11176                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11177         }
11178         if (flags & NDR_IN) {
11179                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
11180                 ndr->depth++;
11181                 ndr->depth--;
11182         }
11183         if (flags & NDR_OUT) {
11184                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
11185                 ndr->depth++;
11186                 ndr_print_WERROR(ndr, "result", r->out.result);
11187                 ndr->depth--;
11188         }
11189         ndr->depth--;
11190 }
11191
11192 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTRUSTRID(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTRUSTRID *r)
11193 {
11194         if (flags & NDR_IN) {
11195         }
11196         if (flags & NDR_OUT) {
11197                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11198         }
11199         return NDR_ERR_SUCCESS;
11200 }
11201
11202 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTRUSTRID(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTRUSTRID *r)
11203 {
11204         if (flags & NDR_IN) {
11205         }
11206         if (flags & NDR_OUT) {
11207                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11208         }
11209         return NDR_ERR_SUCCESS;
11210 }
11211
11212 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTRUSTRID(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTRUSTRID *r)
11213 {
11214         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTRUSTRID");
11215         ndr->depth++;
11216         if (flags & NDR_SET_VALUES) {
11217                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11218         }
11219         if (flags & NDR_IN) {
11220                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTRUSTRID");
11221                 ndr->depth++;
11222                 ndr->depth--;
11223         }
11224         if (flags & NDR_OUT) {
11225                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTRUSTRID");
11226                 ndr->depth++;
11227                 ndr_print_WERROR(ndr, "result", r->out.result);
11228                 ndr->depth--;
11229         }
11230         ndr->depth--;
11231 }
11232
11233 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11234 {
11235         if (flags & NDR_IN) {
11236         }
11237         if (flags & NDR_OUT) {
11238                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11239         }
11240         return NDR_ERR_SUCCESS;
11241 }
11242
11243 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11244 {
11245         if (flags & NDR_IN) {
11246         }
11247         if (flags & NDR_OUT) {
11248                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11249         }
11250         return NDR_ERR_SUCCESS;
11251 }
11252
11253 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11254 {
11255         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
11256         ndr->depth++;
11257         if (flags & NDR_SET_VALUES) {
11258                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11259         }
11260         if (flags & NDR_IN) {
11261                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11262                 ndr->depth++;
11263                 ndr->depth--;
11264         }
11265         if (flags & NDR_OUT) {
11266                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11267                 ndr->depth++;
11268                 ndr_print_WERROR(ndr, "result", r->out.result);
11269                 ndr->depth--;
11270         }
11271         ndr->depth--;
11272 }
11273
11274 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11275 {
11276         if (flags & NDR_IN) {
11277         }
11278         if (flags & NDR_OUT) {
11279                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11280         }
11281         return NDR_ERR_SUCCESS;
11282 }
11283
11284 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11285 {
11286         if (flags & NDR_IN) {
11287         }
11288         if (flags & NDR_OUT) {
11289                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11290         }
11291         return NDR_ERR_SUCCESS;
11292 }
11293
11294 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11295 {
11296         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11297         ndr->depth++;
11298         if (flags & NDR_SET_VALUES) {
11299                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11300         }
11301         if (flags & NDR_IN) {
11302                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11303                 ndr->depth++;
11304                 ndr->depth--;
11305         }
11306         if (flags & NDR_OUT) {
11307                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11308                 ndr->depth++;
11309                 ndr_print_WERROR(ndr, "result", r->out.result);
11310                 ndr->depth--;
11311         }
11312         ndr->depth--;
11313 }
11314
11315 static enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
11316 {
11317         if (flags & NDR_IN) {
11318                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11319                 if (r->in.server_name) {
11320                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11321                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11322                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11323                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11324                 }
11325                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11326                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11327                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11328                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11329                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11330                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11331                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11332                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11333                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11334                 if (r->in.credentials == NULL) {
11335                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11336                 }
11337                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11338                 if (r->in.negotiate_flags == NULL) {
11339                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11340                 }
11341                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11342         }
11343         if (flags & NDR_OUT) {
11344                 if (r->out.credentials == NULL) {
11345                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11346                 }
11347                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11348                 if (r->out.negotiate_flags == NULL) {
11349                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11350                 }
11351                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11352                 if (r->out.rid == NULL) {
11353                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11354                 }
11355                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11356                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11357         }
11358         return NDR_ERR_SUCCESS;
11359 }
11360
11361 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
11362 {
11363         uint32_t _ptr_server_name;
11364         TALLOC_CTX *_mem_save_server_name_0;
11365         TALLOC_CTX *_mem_save_credentials_0;
11366         TALLOC_CTX *_mem_save_negotiate_flags_0;
11367         TALLOC_CTX *_mem_save_rid_0;
11368         if (flags & NDR_IN) {
11369                 ZERO_STRUCT(r->out);
11370
11371                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11372                 if (_ptr_server_name) {
11373                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11374                 } else {
11375                         r->in.server_name = NULL;
11376                 }
11377                 if (r->in.server_name) {
11378                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11379                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11380                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11381                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11382                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11383                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
11384                         }
11385                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11386                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
11387                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11388                 }
11389                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11390                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11391                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11392                         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.account_name), ndr_get_array_length(ndr, &r->in.account_name));
11393                 }
11394                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11395                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
11396                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11397                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11398                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11399                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11400                         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.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
11401                 }
11402                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11403                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
11404                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11405                         NDR_PULL_ALLOC(ndr, r->in.credentials);
11406                 }
11407                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11408                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11409                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11410                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11411                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11412                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11413                 }
11414                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11415                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11416                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags));
11417                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11418                 NDR_PULL_ALLOC(ndr, r->out.credentials);
11419                 *r->out.credentials = *r->in.credentials;
11420                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11421                 *r->out.negotiate_flags = *r->in.negotiate_flags;
11422                 NDR_PULL_ALLOC(ndr, r->out.rid);
11423                 ZERO_STRUCTP(r->out.rid);
11424         }
11425         if (flags & NDR_OUT) {
11426                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11427                         NDR_PULL_ALLOC(ndr, r->out.credentials);
11428                 }
11429                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11430                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
11431                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11432                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11433                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11434                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11435                 }
11436                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11437                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11438                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags));
11439                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11440                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11441                         NDR_PULL_ALLOC(ndr, r->out.rid);
11442                 }
11443                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11444                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11445                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11446                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11447                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11448         }
11449         return NDR_ERR_SUCCESS;
11450 }
11451
11452 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
11453 {
11454         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
11455         ndr->depth++;
11456         if (flags & NDR_SET_VALUES) {
11457                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11458         }
11459         if (flags & NDR_IN) {
11460                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
11461                 ndr->depth++;
11462                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11463                 ndr->depth++;
11464                 if (r->in.server_name) {
11465                         ndr_print_string(ndr, "server_name", r->in.server_name);
11466                 }
11467                 ndr->depth--;
11468                 ndr_print_string(ndr, "account_name", r->in.account_name);
11469                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11470                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11471                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11472                 ndr->depth++;
11473                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11474                 ndr->depth--;
11475                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11476                 ndr->depth++;
11477                 ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags);
11478                 ndr->depth--;
11479                 ndr->depth--;
11480         }
11481         if (flags & NDR_OUT) {
11482                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
11483                 ndr->depth++;
11484                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
11485                 ndr->depth++;
11486                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
11487                 ndr->depth--;
11488                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11489                 ndr->depth++;
11490                 ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags);
11491                 ndr->depth--;
11492                 ndr_print_ptr(ndr, "rid", r->out.rid);
11493                 ndr->depth++;
11494                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11495                 ndr->depth--;
11496                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11497                 ndr->depth--;
11498         }
11499         ndr->depth--;
11500 }
11501
11502 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
11503 {
11504         if (flags & NDR_IN) {
11505                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11506                 if (r->in.server_unc) {
11507                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11508                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11509                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11510                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11511                 }
11512                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11513                 if (r->in.domain_name) {
11514                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11515                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11516                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11517                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11518                 }
11519                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11520                 if (r->in.domain_guid) {
11521                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11522                 }
11523                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
11524                 if (r->in.site_name) {
11525                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11526                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11527                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11528                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.site_name, ndr_charset_length(r->in.site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11529                 }
11530                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11531         }
11532         if (flags & NDR_OUT) {
11533                 if (r->out.info == NULL) {
11534                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11535                 }
11536                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11537                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11538         }
11539         return NDR_ERR_SUCCESS;
11540 }
11541
11542 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
11543 {
11544         uint32_t _ptr_server_unc;
11545         uint32_t _ptr_domain_name;
11546         uint32_t _ptr_domain_guid;
11547         uint32_t _ptr_site_name;
11548         TALLOC_CTX *_mem_save_server_unc_0;
11549         TALLOC_CTX *_mem_save_domain_name_0;
11550         TALLOC_CTX *_mem_save_domain_guid_0;
11551         TALLOC_CTX *_mem_save_site_name_0;
11552         TALLOC_CTX *_mem_save_info_0;
11553         if (flags & NDR_IN) {
11554                 ZERO_STRUCT(r->out);
11555
11556                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11557                 if (_ptr_server_unc) {
11558                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11559                 } else {
11560                         r->in.server_unc = NULL;
11561                 }
11562                 if (r->in.server_unc) {
11563                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11564                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11565                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11566                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11567                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11568                                 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.server_unc), ndr_get_array_length(ndr, &r->in.server_unc));
11569                         }
11570                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11571                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16));
11572                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11573                 }
11574                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11575                 if (_ptr_domain_name) {
11576                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11577                 } else {
11578                         r->in.domain_name = NULL;
11579                 }
11580                 if (r->in.domain_name) {
11581                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11582                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11583                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11584                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11585                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11586                                 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.domain_name), ndr_get_array_length(ndr, &r->in.domain_name));
11587                         }
11588                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11589                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16));
11590                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11591                 }
11592                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11593                 if (_ptr_domain_guid) {
11594                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11595                 } else {
11596                         r->in.domain_guid = NULL;
11597                 }
11598                 if (r->in.domain_guid) {
11599                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11600                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11601                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11602                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11603                 }
11604                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
11605                 if (_ptr_site_name) {
11606                         NDR_PULL_ALLOC(ndr, r->in.site_name);
11607                 } else {
11608                         r->in.site_name = NULL;
11609                 }
11610                 if (r->in.site_name) {
11611                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11612                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
11613                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
11614                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
11615                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
11616                                 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.site_name), ndr_get_array_length(ndr, &r->in.site_name));
11617                         }
11618                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
11619                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.site_name, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t), CH_UTF16));
11620                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
11621                 }
11622                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11623                 NDR_PULL_ALLOC(ndr, r->out.info);
11624                 ZERO_STRUCTP(r->out.info);
11625         }
11626         if (flags & NDR_OUT) {
11627                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11628                         NDR_PULL_ALLOC(ndr, r->out.info);
11629                 }
11630                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11631                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11632                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11633                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11634                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11635         }
11636         return NDR_ERR_SUCCESS;
11637 }
11638
11639 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
11640 {
11641         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
11642         ndr->depth++;
11643         if (flags & NDR_SET_VALUES) {
11644                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11645         }
11646         if (flags & NDR_IN) {
11647                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
11648                 ndr->depth++;
11649                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11650                 ndr->depth++;
11651                 if (r->in.server_unc) {
11652                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11653                 }
11654                 ndr->depth--;
11655                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11656                 ndr->depth++;
11657                 if (r->in.domain_name) {
11658                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11659                 }
11660                 ndr->depth--;
11661                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11662                 ndr->depth++;
11663                 if (r->in.domain_guid) {
11664                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11665                 }
11666                 ndr->depth--;
11667                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
11668                 ndr->depth++;
11669                 if (r->in.site_name) {
11670                         ndr_print_string(ndr, "site_name", r->in.site_name);
11671                 }
11672                 ndr->depth--;
11673                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11674                 ndr->depth--;
11675         }
11676         if (flags & NDR_OUT) {
11677                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
11678                 ndr->depth++;
11679                 ndr_print_ptr(ndr, "info", r->out.info);
11680                 ndr->depth++;
11681                 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info);
11682                 ndr->depth--;
11683                 ndr_print_WERROR(ndr, "result", r->out.result);
11684                 ndr->depth--;
11685         }
11686         ndr->depth--;
11687 }
11688
11689 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
11690 {
11691         if (flags & NDR_IN) {
11692                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11693                 if (r->in.computer_name) {
11694                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11695                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11696                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11697                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11698                 }
11699         }
11700         if (flags & NDR_OUT) {
11701                 if (r->out.site == NULL) {
11702                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11703                 }
11704                 if (*r->out.site == NULL) {
11705                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11706                 }
11707                 NDR_CHECK(ndr_push_ref_ptr(ndr));
11708                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11709                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11710                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11711                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11712                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11713         }
11714         return NDR_ERR_SUCCESS;
11715 }
11716
11717 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
11718 {
11719         uint32_t _ptr_computer_name;
11720         uint32_t _ptr_site;
11721         TALLOC_CTX *_mem_save_computer_name_0;
11722         TALLOC_CTX *_mem_save_site_0;
11723         if (flags & NDR_IN) {
11724                 ZERO_STRUCT(r->out);
11725
11726                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
11727                 if (_ptr_computer_name) {
11728                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
11729                 } else {
11730                         r->in.computer_name = NULL;
11731                 }
11732                 if (r->in.computer_name) {
11733                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11734                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
11735                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11736                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11737                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11738                                 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.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
11739                         }
11740                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11741                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
11742                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
11743                 }
11744                 NDR_PULL_ALLOC(ndr, r->out.site);
11745                 ZERO_STRUCTP(r->out.site);
11746         }
11747         if (flags & NDR_OUT) {
11748                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11749                         NDR_PULL_ALLOC(ndr, r->out.site);
11750                 }
11751                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
11752                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
11753                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_site));
11754                 NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
11755                 NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
11756                 if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
11757                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.site), ndr_get_array_length(ndr, r->out.site));
11758                 }
11759                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
11760                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
11761                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
11762                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11763         }
11764         return NDR_ERR_SUCCESS;
11765 }
11766
11767 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
11768 {
11769         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
11770         ndr->depth++;
11771         if (flags & NDR_SET_VALUES) {
11772                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11773         }
11774         if (flags & NDR_IN) {
11775                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
11776                 ndr->depth++;
11777                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
11778                 ndr->depth++;
11779                 if (r->in.computer_name) {
11780                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
11781                 }
11782                 ndr->depth--;
11783                 ndr->depth--;
11784         }
11785         if (flags & NDR_OUT) {
11786                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
11787                 ndr->depth++;
11788                 ndr_print_ptr(ndr, "site", r->out.site);
11789                 ndr->depth++;
11790                 ndr_print_ptr(ndr, "site", *r->out.site);
11791                 ndr->depth++;
11792                 ndr_print_string(ndr, "site", *r->out.site);
11793                 ndr->depth--;
11794                 ndr->depth--;
11795                 ndr_print_WERROR(ndr, "result", r->out.result);
11796                 ndr->depth--;
11797         }
11798         ndr->depth--;
11799 }
11800
11801 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
11802 {
11803         if (flags & NDR_IN) {
11804                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11805                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11806                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11807                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11808                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11809                 if (r->in.computer_name) {
11810                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11811                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11812                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11813                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11814                 }
11815                 if (r->in.credential == NULL) {
11816                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11817                 }
11818                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11819                 if (r->in.return_authenticator == NULL) {
11820                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11821                 }
11822                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11823                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11824                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
11825                 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
11826         }
11827         if (flags & NDR_OUT) {
11828                 if (r->out.return_authenticator == NULL) {
11829                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11830                 }
11831                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11832                 if (r->out.info == NULL) {
11833                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11834                 }
11835                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
11836                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11837                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11838         }
11839         return NDR_ERR_SUCCESS;
11840 }
11841
11842 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
11843 {
11844         uint32_t _ptr_computer_name;
11845         TALLOC_CTX *_mem_save_computer_name_0;
11846         TALLOC_CTX *_mem_save_credential_0;
11847         TALLOC_CTX *_mem_save_return_authenticator_0;
11848         TALLOC_CTX *_mem_save_info_0;
11849         if (flags & NDR_IN) {
11850                 ZERO_STRUCT(r->out);
11851
11852                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11853                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11854                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11855                         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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
11856                 }
11857                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11858                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
11859                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
11860                 if (_ptr_computer_name) {
11861                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
11862                 } else {
11863                         r->in.computer_name = NULL;
11864                 }
11865                 if (r->in.computer_name) {
11866                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11867                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
11868                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11869                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11870                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11871                                 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.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
11872                         }
11873                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11874                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
11875                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
11876                 }
11877                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11878                         NDR_PULL_ALLOC(ndr, r->in.credential);
11879                 }
11880                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
11881                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
11882                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11883                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
11884                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11885                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11886                 }
11887                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11888                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11889                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11890                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11891                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11892                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
11893                 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
11894                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11895                 *r->out.return_authenticator = *r->in.return_authenticator;
11896                 NDR_PULL_ALLOC(ndr, r->out.info);
11897                 ZERO_STRUCTP(r->out.info);
11898         }
11899         if (flags & NDR_OUT) {
11900                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11901                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11902                 }
11903                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11904                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11905                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11906                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11907                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11908                         NDR_PULL_ALLOC(ndr, r->out.info);
11909                 }
11910                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11911                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11912                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
11913                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11914                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11915                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11916         }
11917         return NDR_ERR_SUCCESS;
11918 }
11919
11920 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
11921 {
11922         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
11923         ndr->depth++;
11924         if (flags & NDR_SET_VALUES) {
11925                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11926         }
11927         if (flags & NDR_IN) {
11928                 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
11929                 ndr->depth++;
11930                 ndr_print_string(ndr, "server_name", r->in.server_name);
11931                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
11932                 ndr->depth++;
11933                 if (r->in.computer_name) {
11934                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
11935                 }
11936                 ndr->depth--;
11937                 ndr_print_ptr(ndr, "credential", r->in.credential);
11938                 ndr->depth++;
11939                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
11940                 ndr->depth--;
11941                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11942                 ndr->depth++;
11943                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11944                 ndr->depth--;
11945                 ndr_print_uint32(ndr, "level", r->in.level);
11946                 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
11947                 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
11948                 ndr->depth--;
11949         }
11950         if (flags & NDR_OUT) {
11951                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
11952                 ndr->depth++;
11953                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11954                 ndr->depth++;
11955                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11956                 ndr->depth--;
11957                 ndr_print_ptr(ndr, "info", r->out.info);
11958                 ndr->depth++;
11959                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
11960                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
11961                 ndr->depth--;
11962                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11963                 ndr->depth--;
11964         }
11965         ndr->depth--;
11966 }
11967
11968 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
11969 {
11970         if (flags & NDR_IN) {
11971                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11972                 if (r->in.server_name) {
11973                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11974                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11975                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11976                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11977                 }
11978                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11979                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11980                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11981                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11982                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11983                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11984                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11985                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11986                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11987                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
11988                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
11989         }
11990         if (flags & NDR_OUT) {
11991                 if (r->out.return_authenticator == NULL) {
11992                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11993                 }
11994                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11995                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11996         }
11997         return NDR_ERR_SUCCESS;
11998 }
11999
12000 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
12001 {
12002         uint32_t _ptr_server_name;
12003         TALLOC_CTX *_mem_save_server_name_0;
12004         TALLOC_CTX *_mem_save_return_authenticator_0;
12005         if (flags & NDR_IN) {
12006                 ZERO_STRUCT(r->out);
12007
12008                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12009                 if (_ptr_server_name) {
12010                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12011                 } else {
12012                         r->in.server_name = NULL;
12013                 }
12014                 if (r->in.server_name) {
12015                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12016                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12017                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12018                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12019                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12020                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
12021                         }
12022                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12023                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
12024                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12025                 }
12026                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12027                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12028                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12029                         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.account_name), ndr_get_array_length(ndr, &r->in.account_name));
12030                 }
12031                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12032                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
12033                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12034                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12035                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12036                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12037                         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.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
12038                 }
12039                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12040                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
12041                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
12042                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
12043                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12044                 ZERO_STRUCTP(r->out.return_authenticator);
12045         }
12046         if (flags & NDR_OUT) {
12047                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12048                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12049                 }
12050                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12051                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12052                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12053                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12054                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12055         }
12056         return NDR_ERR_SUCCESS;
12057 }
12058
12059 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
12060 {
12061         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
12062         ndr->depth++;
12063         if (flags & NDR_SET_VALUES) {
12064                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12065         }
12066         if (flags & NDR_IN) {
12067                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
12068                 ndr->depth++;
12069                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12070                 ndr->depth++;
12071                 if (r->in.server_name) {
12072                         ndr_print_string(ndr, "server_name", r->in.server_name);
12073                 }
12074                 ndr->depth--;
12075                 ndr_print_string(ndr, "account_name", r->in.account_name);
12076                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12077                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12078                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
12079                 ndr_print_netr_CryptPassword(ndr, "new_password", &r->in.new_password);
12080                 ndr->depth--;
12081         }
12082         if (flags & NDR_OUT) {
12083                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
12084                 ndr->depth++;
12085                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12086                 ndr->depth++;
12087                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12088                 ndr->depth--;
12089                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12090                 ndr->depth--;
12091         }
12092         ndr->depth--;
12093 }
12094
12095 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
12096 {
12097         if (flags & NDR_IN) {
12098                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12099                 if (r->in.server_name) {
12100                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12101                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12102                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12103                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12104                 }
12105                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12106                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12107                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12108                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12109                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12110                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12111                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12112                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12113                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12114                 if (r->in.credential == NULL) {
12115                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12116                 }
12117                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12118         }
12119         if (flags & NDR_OUT) {
12120                 if (r->out.return_authenticator == NULL) {
12121                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12122                 }
12123                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12124                 if (r->out.password == NULL) {
12125                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12126                 }
12127                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12128                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12129         }
12130         return NDR_ERR_SUCCESS;
12131 }
12132
12133 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
12134 {
12135         uint32_t _ptr_server_name;
12136         TALLOC_CTX *_mem_save_server_name_0;
12137         TALLOC_CTX *_mem_save_credential_0;
12138         TALLOC_CTX *_mem_save_return_authenticator_0;
12139         TALLOC_CTX *_mem_save_password_0;
12140         if (flags & NDR_IN) {
12141                 ZERO_STRUCT(r->out);
12142
12143                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12144                 if (_ptr_server_name) {
12145                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12146                 } else {
12147                         r->in.server_name = NULL;
12148                 }
12149                 if (r->in.server_name) {
12150                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12151                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12152                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12153                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12154                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12155                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
12156                         }
12157                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12158                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
12159                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12160                 }
12161                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12162                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12163                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12164                         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.account_name), ndr_get_array_length(ndr, &r->in.account_name));
12165                 }
12166                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12167                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
12168                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12169                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12170                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12171                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12172                         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.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
12173                 }
12174                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12175                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
12176                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12177                         NDR_PULL_ALLOC(ndr, r->in.credential);
12178                 }
12179                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12180                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12181                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12182                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12183                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12184                 ZERO_STRUCTP(r->out.return_authenticator);
12185                 NDR_PULL_ALLOC(ndr, r->out.password);
12186                 ZERO_STRUCTP(r->out.password);
12187         }
12188         if (flags & NDR_OUT) {
12189                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12190                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12191                 }
12192                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12193                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12194                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12195                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12196                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12197                         NDR_PULL_ALLOC(ndr, r->out.password);
12198                 }
12199                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
12200                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
12201                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12202                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
12203                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12204         }
12205         return NDR_ERR_SUCCESS;
12206 }
12207
12208 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
12209 {
12210         ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
12211         ndr->depth++;
12212         if (flags & NDR_SET_VALUES) {
12213                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12214         }
12215         if (flags & NDR_IN) {
12216                 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
12217                 ndr->depth++;
12218                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12219                 ndr->depth++;
12220                 if (r->in.server_name) {
12221                         ndr_print_string(ndr, "server_name", r->in.server_name);
12222                 }
12223                 ndr->depth--;
12224                 ndr_print_string(ndr, "account_name", r->in.account_name);
12225                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12226                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12227                 ndr_print_ptr(ndr, "credential", r->in.credential);
12228                 ndr->depth++;
12229                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12230                 ndr->depth--;
12231                 ndr->depth--;
12232         }
12233         if (flags & NDR_OUT) {
12234                 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
12235                 ndr->depth++;
12236                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12237                 ndr->depth++;
12238                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12239                 ndr->depth--;
12240                 ndr_print_ptr(ndr, "password", r->out.password);
12241                 ndr->depth++;
12242                 ndr_print_samr_Password(ndr, "password", r->out.password);
12243                 ndr->depth--;
12244                 ndr_print_WERROR(ndr, "result", r->out.result);
12245                 ndr->depth--;
12246         }
12247         ndr->depth--;
12248 }
12249
12250 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12251 {
12252         if (flags & NDR_IN) {
12253         }
12254         if (flags & NDR_OUT) {
12255                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12256         }
12257         return NDR_ERR_SUCCESS;
12258 }
12259
12260 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
12261 {
12262         if (flags & NDR_IN) {
12263         }
12264         if (flags & NDR_OUT) {
12265                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12266         }
12267         return NDR_ERR_SUCCESS;
12268 }
12269
12270 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12271 {
12272         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
12273         ndr->depth++;
12274         if (flags & NDR_SET_VALUES) {
12275                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12276         }
12277         if (flags & NDR_IN) {
12278                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
12279                 ndr->depth++;
12280                 ndr->depth--;
12281         }
12282         if (flags & NDR_OUT) {
12283                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
12284                 ndr->depth++;
12285                 ndr_print_WERROR(ndr, "result", r->out.result);
12286                 ndr->depth--;
12287         }
12288         ndr->depth--;
12289 }
12290
12291 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
12292 {
12293         uint32_t cntr_addresses_1;
12294         if (flags & NDR_IN) {
12295                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12296                 if (r->in.server_name) {
12297                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12298                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12299                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12300                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12301                 }
12302                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12303                 if (r->in.addresses == NULL) {
12304                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12305                 }
12306                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12307                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12308                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12309                 }
12310                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12311                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12312                 }
12313         }
12314         if (flags & NDR_OUT) {
12315                 if (r->out.ctr == NULL) {
12316                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12317                 }
12318                 if (*r->out.ctr == NULL) {
12319                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12320                 }
12321                 NDR_CHECK(ndr_push_ref_ptr(ndr));
12322                 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12323                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12324         }
12325         return NDR_ERR_SUCCESS;
12326 }
12327
12328 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
12329 {
12330         uint32_t _ptr_server_name;
12331         uint32_t cntr_addresses_1;
12332         uint32_t _ptr_ctr;
12333         TALLOC_CTX *_mem_save_server_name_0;
12334         TALLOC_CTX *_mem_save_addresses_1;
12335         TALLOC_CTX *_mem_save_ctr_0;
12336         TALLOC_CTX *_mem_save_ctr_1;
12337         if (flags & NDR_IN) {
12338                 ZERO_STRUCT(r->out);
12339
12340                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12341                 if (_ptr_server_name) {
12342                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12343                 } else {
12344                         r->in.server_name = NULL;
12345                 }
12346                 if (r->in.server_name) {
12347                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12348                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12349                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12350                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12351                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12352                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
12353                         }
12354                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12355                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
12356                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12357                 }
12358                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12359                 if (r->in.count < 0 || r->in.count > 32000) {
12360                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12361                 }
12362                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
12363                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12364                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
12365                 }
12366                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
12367                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
12368                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12369                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12370                 }
12371                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12372                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12373                 }
12374                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
12375                 NDR_PULL_ALLOC(ndr, r->out.ctr);
12376                 ZERO_STRUCTP(r->out.ctr);
12377                 if (r->in.addresses) {
12378                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
12379                 }
12380         }
12381         if (flags & NDR_OUT) {
12382                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12383                         NDR_PULL_ALLOC(ndr, r->out.ctr);
12384                 }
12385                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12386                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12387                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_ctr));
12388                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12389                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
12390                 }
12391                 _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
12392                 NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12393                 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12394                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, LIBNDR_FLAG_REF_ALLOC);
12395                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
12396                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12397         }
12398         return NDR_ERR_SUCCESS;
12399 }
12400
12401 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
12402 {
12403         uint32_t cntr_addresses_1;
12404         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
12405         ndr->depth++;
12406         if (flags & NDR_SET_VALUES) {
12407                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12408         }
12409         if (flags & NDR_IN) {
12410                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
12411                 ndr->depth++;
12412                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12413                 ndr->depth++;
12414                 if (r->in.server_name) {
12415                         ndr_print_string(ndr, "server_name", r->in.server_name);
12416                 }
12417                 ndr->depth--;
12418                 ndr_print_uint32(ndr, "count", r->in.count);
12419                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
12420                 ndr->depth++;
12421                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", r->in.count);
12422                 ndr->depth++;
12423                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
12424                         char *idx_1=NULL;
12425                         asprintf(&idx_1, "[%d]", cntr_addresses_1);
12426                         if (idx_1) {
12427                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
12428                                 free(idx_1);
12429                         }
12430                 }
12431                 ndr->depth--;
12432                 ndr->depth--;
12433                 ndr->depth--;
12434         }
12435         if (flags & NDR_OUT) {
12436                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
12437                 ndr->depth++;
12438                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
12439                 ndr->depth++;
12440                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
12441                 ndr->depth++;
12442                 ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
12443                 ndr->depth--;
12444                 ndr->depth--;
12445                 ndr_print_WERROR(ndr, "result", r->out.result);
12446                 ndr->depth--;
12447         }
12448         ndr->depth--;
12449 }
12450
12451 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
12452 {
12453         if (flags & NDR_IN) {
12454                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12455                 if (r->in.server_unc) {
12456                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12457                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12458                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12459                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12460                 }
12461                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
12462                 if (r->in.client_account) {
12463                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12464                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12465                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12466                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.client_account, ndr_charset_length(r->in.client_account, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12467                 }
12468                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
12469                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12470                 if (r->in.domain_name) {
12471                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12472                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12473                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12474                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12475                 }
12476                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12477                 if (r->in.domain_guid) {
12478                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12479                 }
12480                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
12481                 if (r->in.site_name) {
12482                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12483                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12484                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12485                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.site_name, ndr_charset_length(r->in.site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12486                 }
12487                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12488         }
12489         if (flags & NDR_OUT) {
12490                 if (r->out.info == NULL) {
12491                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12492                 }
12493                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12494                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12495         }
12496         return NDR_ERR_SUCCESS;
12497 }
12498
12499 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
12500 {
12501         uint32_t _ptr_server_unc;
12502         uint32_t _ptr_client_account;
12503         uint32_t _ptr_domain_name;
12504         uint32_t _ptr_domain_guid;
12505         uint32_t _ptr_site_name;
12506         TALLOC_CTX *_mem_save_server_unc_0;
12507         TALLOC_CTX *_mem_save_client_account_0;
12508         TALLOC_CTX *_mem_save_domain_name_0;
12509         TALLOC_CTX *_mem_save_domain_guid_0;
12510         TALLOC_CTX *_mem_save_site_name_0;
12511         TALLOC_CTX *_mem_save_info_0;
12512         if (flags & NDR_IN) {
12513                 ZERO_STRUCT(r->out);
12514
12515                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12516                 if (_ptr_server_unc) {
12517                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12518                 } else {
12519                         r->in.server_unc = NULL;
12520                 }
12521                 if (r->in.server_unc) {
12522                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12523                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12524                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12525                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12526                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12527                                 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.server_unc), ndr_get_array_length(ndr, &r->in.server_unc));
12528                         }
12529                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12530                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16));
12531                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12532                 }
12533                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
12534                 if (_ptr_client_account) {
12535                         NDR_PULL_ALLOC(ndr, r->in.client_account);
12536                 } else {
12537                         r->in.client_account = NULL;
12538                 }
12539                 if (r->in.client_account) {
12540                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
12541                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
12542                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
12543                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
12544                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
12545                                 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.client_account), ndr_get_array_length(ndr, &r->in.client_account));
12546                         }
12547                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
12548                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.client_account, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t), CH_UTF16));
12549                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
12550                 }
12551                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
12552                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12553                 if (_ptr_domain_name) {
12554                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12555                 } else {
12556                         r->in.domain_name = NULL;
12557                 }
12558                 if (r->in.domain_name) {
12559                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12560                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12561                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12562                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12563                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12564                                 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.domain_name), ndr_get_array_length(ndr, &r->in.domain_name));
12565                         }
12566                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12567                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16));
12568                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12569                 }
12570                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12571                 if (_ptr_domain_guid) {
12572                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12573                 } else {
12574                         r->in.domain_guid = NULL;
12575                 }
12576                 if (r->in.domain_guid) {
12577                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12578                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12579                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12580                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12581                 }
12582                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
12583                 if (_ptr_site_name) {
12584                         NDR_PULL_ALLOC(ndr, r->in.site_name);
12585                 } else {
12586                         r->in.site_name = NULL;
12587                 }
12588                 if (r->in.site_name) {
12589                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12590                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
12591                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
12592                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
12593                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
12594                                 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.site_name), ndr_get_array_length(ndr, &r->in.site_name));
12595                         }
12596                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
12597                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.site_name, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t), CH_UTF16));
12598                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
12599                 }
12600                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12601                 NDR_PULL_ALLOC(ndr, r->out.info);
12602                 ZERO_STRUCTP(r->out.info);
12603         }
12604         if (flags & NDR_OUT) {
12605                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12606                         NDR_PULL_ALLOC(ndr, r->out.info);
12607                 }
12608                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12609                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12610                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12611                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12612                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12613         }
12614         return NDR_ERR_SUCCESS;
12615 }
12616
12617 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
12618 {
12619         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
12620         ndr->depth++;
12621         if (flags & NDR_SET_VALUES) {
12622                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12623         }
12624         if (flags & NDR_IN) {
12625                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
12626                 ndr->depth++;
12627                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12628                 ndr->depth++;
12629                 if (r->in.server_unc) {
12630                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12631                 }
12632                 ndr->depth--;
12633                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
12634                 ndr->depth++;
12635                 if (r->in.client_account) {
12636                         ndr_print_string(ndr, "client_account", r->in.client_account);
12637                 }
12638                 ndr->depth--;
12639                 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
12640                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12641                 ndr->depth++;
12642                 if (r->in.domain_name) {
12643                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12644                 }
12645                 ndr->depth--;
12646                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12647                 ndr->depth++;
12648                 if (r->in.domain_guid) {
12649                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12650                 }
12651                 ndr->depth--;
12652                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
12653                 ndr->depth++;
12654                 if (r->in.site_name) {
12655                         ndr_print_string(ndr, "site_name", r->in.site_name);
12656                 }
12657                 ndr->depth--;
12658                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
12659                 ndr->depth--;
12660         }
12661         if (flags & NDR_OUT) {
12662                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
12663                 ndr->depth++;
12664                 ndr_print_ptr(ndr, "info", r->out.info);
12665                 ndr->depth++;
12666                 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info);
12667                 ndr->depth--;
12668                 ndr_print_WERROR(ndr, "result", r->out.result);
12669                 ndr->depth--;
12670         }
12671         ndr->depth--;
12672 }
12673
12674 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
12675 {
12676         if (flags & NDR_IN) {
12677         }
12678         if (flags & NDR_OUT) {
12679                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12680         }
12681         return NDR_ERR_SUCCESS;
12682 }
12683
12684 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
12685 {
12686         if (flags & NDR_IN) {
12687         }
12688         if (flags & NDR_OUT) {
12689                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12690         }
12691         return NDR_ERR_SUCCESS;
12692 }
12693
12694 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
12695 {
12696         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
12697         ndr->depth++;
12698         if (flags & NDR_SET_VALUES) {
12699                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12700         }
12701         if (flags & NDR_IN) {
12702                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
12703                 ndr->depth++;
12704                 ndr->depth--;
12705         }
12706         if (flags & NDR_OUT) {
12707                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
12708                 ndr->depth++;
12709                 ndr_print_WERROR(ndr, "result", r->out.result);
12710                 ndr->depth--;
12711         }
12712         ndr->depth--;
12713 }
12714
12715 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
12716 {
12717         if (flags & NDR_IN) {
12718                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12719                 if (r->in.server_name) {
12720                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12721                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12722                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12723                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12724                 }
12725         }
12726         if (flags & NDR_OUT) {
12727                 if (r->out.dom_trust_list == NULL) {
12728                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12729                 }
12730                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
12731                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12732         }
12733         return NDR_ERR_SUCCESS;
12734 }
12735
12736 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
12737 {
12738         uint32_t _ptr_server_name;
12739         TALLOC_CTX *_mem_save_server_name_0;
12740         TALLOC_CTX *_mem_save_dom_trust_list_0;
12741         if (flags & NDR_IN) {
12742                 ZERO_STRUCT(r->out);
12743
12744                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12745                 if (_ptr_server_name) {
12746                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12747                 } else {
12748                         r->in.server_name = NULL;
12749                 }
12750                 if (r->in.server_name) {
12751                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12752                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12753                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12754                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12755                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12756                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
12757                         }
12758                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12759                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
12760                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12761                 }
12762                 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
12763                 ZERO_STRUCTP(r->out.dom_trust_list);
12764         }
12765         if (flags & NDR_OUT) {
12766                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12767                         NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
12768                 }
12769                 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
12770                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
12771                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
12772                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
12773                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12774         }
12775         return NDR_ERR_SUCCESS;
12776 }
12777
12778 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
12779 {
12780         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
12781         ndr->depth++;
12782         if (flags & NDR_SET_VALUES) {
12783                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12784         }
12785         if (flags & NDR_IN) {
12786                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
12787                 ndr->depth++;
12788                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12789                 ndr->depth++;
12790                 if (r->in.server_name) {
12791                         ndr_print_string(ndr, "server_name", r->in.server_name);
12792                 }
12793                 ndr->depth--;
12794                 ndr->depth--;
12795         }
12796         if (flags & NDR_OUT) {
12797                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
12798                 ndr->depth++;
12799                 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
12800                 ndr->depth++;
12801                 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
12802                 ndr->depth--;
12803                 ndr_print_WERROR(ndr, "result", r->out.result);
12804                 ndr->depth--;
12805         }
12806         ndr->depth--;
12807 }
12808
12809 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
12810 {
12811         uint32_t cntr_addresses_1;
12812         if (flags & NDR_IN) {
12813                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12814                 if (r->in.server_name) {
12815                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12816                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12817                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12818                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12819                 }
12820                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12821                 if (r->in.addresses == NULL) {
12822                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12823                 }
12824                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12825                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12826                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12827                 }
12828                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12829                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12830                 }
12831         }
12832         if (flags & NDR_OUT) {
12833                 if (r->out.ctr == NULL) {
12834                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12835                 }
12836                 if (*r->out.ctr == NULL) {
12837                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12838                 }
12839                 NDR_CHECK(ndr_push_ref_ptr(ndr));
12840                 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12841                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12842         }
12843         return NDR_ERR_SUCCESS;
12844 }
12845
12846 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
12847 {
12848         uint32_t _ptr_server_name;
12849         uint32_t cntr_addresses_1;
12850         uint32_t _ptr_ctr;
12851         TALLOC_CTX *_mem_save_server_name_0;
12852         TALLOC_CTX *_mem_save_addresses_1;
12853         TALLOC_CTX *_mem_save_ctr_0;
12854         TALLOC_CTX *_mem_save_ctr_1;
12855         if (flags & NDR_IN) {
12856                 ZERO_STRUCT(r->out);
12857
12858                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12859                 if (_ptr_server_name) {
12860                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12861                 } else {
12862                         r->in.server_name = NULL;
12863                 }
12864                 if (r->in.server_name) {
12865                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12866                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12867                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12868                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12869                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12870                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
12871                         }
12872                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12873                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
12874                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12875                 }
12876                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12877                 if (r->in.count < 0 || r->in.count > 32000) {
12878                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12879                 }
12880                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
12881                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12882                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
12883                 }
12884                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
12885                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
12886                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12887                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12888                 }
12889                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12890                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12891                 }
12892                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
12893                 NDR_PULL_ALLOC(ndr, r->out.ctr);
12894                 ZERO_STRUCTP(r->out.ctr);
12895                 if (r->in.addresses) {
12896                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
12897                 }
12898         }
12899         if (flags & NDR_OUT) {
12900                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12901                         NDR_PULL_ALLOC(ndr, r->out.ctr);
12902                 }
12903                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12904                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12905                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_ctr));
12906                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12907                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
12908                 }
12909                 _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
12910                 NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12911                 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12912                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, LIBNDR_FLAG_REF_ALLOC);
12913                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
12914                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12915         }
12916         return NDR_ERR_SUCCESS;
12917 }
12918
12919 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
12920 {
12921         uint32_t cntr_addresses_1;
12922         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
12923         ndr->depth++;
12924         if (flags & NDR_SET_VALUES) {
12925                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12926         }
12927         if (flags & NDR_IN) {
12928                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
12929                 ndr->depth++;
12930                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12931                 ndr->depth++;
12932                 if (r->in.server_name) {
12933                         ndr_print_string(ndr, "server_name", r->in.server_name);
12934                 }
12935                 ndr->depth--;
12936                 ndr_print_uint32(ndr, "count", r->in.count);
12937                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
12938                 ndr->depth++;
12939                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", r->in.count);
12940                 ndr->depth++;
12941                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
12942                         char *idx_1=NULL;
12943                         asprintf(&idx_1, "[%d]", cntr_addresses_1);
12944                         if (idx_1) {
12945                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
12946                                 free(idx_1);
12947                         }
12948                 }
12949                 ndr->depth--;
12950                 ndr->depth--;
12951                 ndr->depth--;
12952         }
12953         if (flags & NDR_OUT) {
12954                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
12955                 ndr->depth++;
12956                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
12957                 ndr->depth++;
12958                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
12959                 ndr->depth++;
12960                 ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
12961                 ndr->depth--;
12962                 ndr->depth--;
12963                 ndr_print_WERROR(ndr, "result", r->out.result);
12964                 ndr->depth--;
12965         }
12966         ndr->depth--;
12967 }
12968
12969 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
12970 {
12971         if (flags & NDR_IN) {
12972                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12973                 if (r->in.server_name) {
12974                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12975                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12976                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12977                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12978                 }
12979         }
12980         if (flags & NDR_OUT) {
12981                 if (r->out.ctr == NULL) {
12982                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12983                 }
12984                 NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
12985                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12986         }
12987         return NDR_ERR_SUCCESS;
12988 }
12989
12990 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
12991 {
12992         uint32_t _ptr_server_name;
12993         TALLOC_CTX *_mem_save_server_name_0;
12994         TALLOC_CTX *_mem_save_ctr_0;
12995         if (flags & NDR_IN) {
12996                 ZERO_STRUCT(r->out);
12997
12998                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12999                 if (_ptr_server_name) {
13000                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13001                 } else {
13002                         r->in.server_name = NULL;
13003                 }
13004                 if (r->in.server_name) {
13005                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13006                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13007                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13008                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13009                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13010                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13011                         }
13012                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13013                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
13014                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13015                 }
13016                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13017                 ZERO_STRUCTP(r->out.ctr);
13018         }
13019         if (flags & NDR_OUT) {
13020                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13021                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13022                 }
13023                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13024                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13025                 NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13026                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13027                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13028         }
13029         return NDR_ERR_SUCCESS;
13030 }
13031
13032 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13033 {
13034         ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
13035         ndr->depth++;
13036         if (flags & NDR_SET_VALUES) {
13037                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13038         }
13039         if (flags & NDR_IN) {
13040                 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
13041                 ndr->depth++;
13042                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13043                 ndr->depth++;
13044                 if (r->in.server_name) {
13045                         ndr_print_string(ndr, "server_name", r->in.server_name);
13046                 }
13047                 ndr->depth--;
13048                 ndr->depth--;
13049         }
13050         if (flags & NDR_OUT) {
13051                 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
13052                 ndr->depth++;
13053                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13054                 ndr->depth++;
13055                 ndr_print_DcSitesCtr(ndr, "ctr", r->out.ctr);
13056                 ndr->depth--;
13057                 ndr_print_WERROR(ndr, "result", r->out.result);
13058                 ndr->depth--;
13059         }
13060         ndr->depth--;
13061 }
13062
13063 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
13064 {
13065         if (flags & NDR_IN) {
13066                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13067                 if (r->in.server_name) {
13068                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13069                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13070                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13071                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13072                 }
13073                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13074                 if (r->in.computer_name) {
13075                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13076                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13077                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13078                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13079                 }
13080                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
13081                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
13082                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
13083                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
13084                 if (r->in.flags == NULL) {
13085                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13086                 }
13087                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
13088         }
13089         if (flags & NDR_OUT) {
13090                 if (r->out.validation == NULL) {
13091                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13092                 }
13093                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13094                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13095                 if (r->out.authoritative == NULL) {
13096                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13097                 }
13098                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
13099                 if (r->out.flags == NULL) {
13100                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13101                 }
13102                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
13103                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13104         }
13105         return NDR_ERR_SUCCESS;
13106 }
13107
13108 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
13109 {
13110         uint32_t _ptr_server_name;
13111         uint32_t _ptr_computer_name;
13112         TALLOC_CTX *_mem_save_server_name_0;
13113         TALLOC_CTX *_mem_save_computer_name_0;
13114         TALLOC_CTX *_mem_save_validation_0;
13115         TALLOC_CTX *_mem_save_authoritative_0;
13116         TALLOC_CTX *_mem_save_flags_0;
13117         if (flags & NDR_IN) {
13118                 ZERO_STRUCT(r->out);
13119
13120                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13121                 if (_ptr_server_name) {
13122                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13123                 } else {
13124                         r->in.server_name = NULL;
13125                 }
13126                 if (r->in.server_name) {
13127                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13128                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13129                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13130                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13131                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13132                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13133                         }
13134                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13135                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
13136                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13137                 }
13138                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13139                 if (_ptr_computer_name) {
13140                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13141                 } else {
13142                         r->in.computer_name = NULL;
13143                 }
13144                 if (r->in.computer_name) {
13145                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13146                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13147                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13148                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13149                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13150                                 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.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
13151                         }
13152                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13153                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
13154                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13155                 }
13156                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
13157                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
13158                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
13159                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
13160                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13161                         NDR_PULL_ALLOC(ndr, r->in.flags);
13162                 }
13163                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13164                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
13165                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
13166                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13167                 NDR_PULL_ALLOC(ndr, r->out.validation);
13168                 ZERO_STRUCTP(r->out.validation);
13169                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
13170                 ZERO_STRUCTP(r->out.authoritative);
13171                 NDR_PULL_ALLOC(ndr, r->out.flags);
13172                 *r->out.flags = *r->in.flags;
13173         }
13174         if (flags & NDR_OUT) {
13175                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13176                         NDR_PULL_ALLOC(ndr, r->out.validation);
13177                 }
13178                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
13179                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
13180                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13181                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13182                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
13183                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13184                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
13185                 }
13186                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
13187                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
13188                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
13189                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
13190                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13191                         NDR_PULL_ALLOC(ndr, r->out.flags);
13192                 }
13193                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13194                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
13195                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
13196                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13197                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13198         }
13199         return NDR_ERR_SUCCESS;
13200 }
13201
13202 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
13203 {
13204         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
13205         ndr->depth++;
13206         if (flags & NDR_SET_VALUES) {
13207                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13208         }
13209         if (flags & NDR_IN) {
13210                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
13211                 ndr->depth++;
13212                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13213                 ndr->depth++;
13214                 if (r->in.server_name) {
13215                         ndr_print_string(ndr, "server_name", r->in.server_name);
13216                 }
13217                 ndr->depth--;
13218                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13219                 ndr->depth++;
13220                 if (r->in.computer_name) {
13221                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13222                 }
13223                 ndr->depth--;
13224                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
13225                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
13226                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
13227                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
13228                 ndr_print_ptr(ndr, "flags", r->in.flags);
13229                 ndr->depth++;
13230                 ndr_print_uint32(ndr, "flags", *r->in.flags);
13231                 ndr->depth--;
13232                 ndr->depth--;
13233         }
13234         if (flags & NDR_OUT) {
13235                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
13236                 ndr->depth++;
13237                 ndr_print_ptr(ndr, "validation", r->out.validation);
13238                 ndr->depth++;
13239                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
13240                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
13241                 ndr->depth--;
13242                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
13243                 ndr->depth++;
13244                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
13245                 ndr->depth--;
13246                 ndr_print_ptr(ndr, "flags", r->out.flags);
13247                 ndr->depth++;
13248                 ndr_print_uint32(ndr, "flags", *r->out.flags);
13249                 ndr->depth--;
13250                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13251                 ndr->depth--;
13252         }
13253         ndr->depth--;
13254 }
13255
13256 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13257 {
13258         if (flags & NDR_IN) {
13259                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13260                 if (r->in.server_name) {
13261                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13262                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13263                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13264                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13265                 }
13266                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
13267         }
13268         if (flags & NDR_OUT) {
13269                 if (r->out.trusts == NULL) {
13270                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13271                 }
13272                 if (*r->out.trusts == NULL) {
13273                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13274                 }
13275                 NDR_CHECK(ndr_push_ref_ptr(ndr));
13276                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trusts));
13277                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13278         }
13279         return NDR_ERR_SUCCESS;
13280 }
13281
13282 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
13283 {
13284         uint32_t _ptr_server_name;
13285         uint32_t _ptr_trusts;
13286         TALLOC_CTX *_mem_save_server_name_0;
13287         TALLOC_CTX *_mem_save_trusts_0;
13288         TALLOC_CTX *_mem_save_trusts_1;
13289         if (flags & NDR_IN) {
13290                 ZERO_STRUCT(r->out);
13291
13292                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13293                 if (_ptr_server_name) {
13294                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13295                 } else {
13296                         r->in.server_name = NULL;
13297                 }
13298                 if (r->in.server_name) {
13299                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13300                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13301                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13302                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13303                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13304                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13305                         }
13306                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13307                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
13308                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13309                 }
13310                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
13311                 NDR_PULL_ALLOC(ndr, r->out.trusts);
13312                 ZERO_STRUCTP(r->out.trusts);
13313         }
13314         if (flags & NDR_OUT) {
13315                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13316                         NDR_PULL_ALLOC(ndr, r->out.trusts);
13317                 }
13318                 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
13319                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
13320                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_trusts));
13321                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13322                         NDR_PULL_ALLOC(ndr, *r->out.trusts);
13323                 }
13324                 _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
13325                 NDR_PULL_SET_MEM_CTX(ndr, *r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
13326                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trusts));
13327                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, LIBNDR_FLAG_REF_ALLOC);
13328                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
13329                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13330         }
13331         return NDR_ERR_SUCCESS;
13332 }
13333
13334 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13335 {
13336         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
13337         ndr->depth++;
13338         if (flags & NDR_SET_VALUES) {
13339                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13340         }
13341         if (flags & NDR_IN) {
13342                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
13343                 ndr->depth++;
13344                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13345                 ndr->depth++;
13346                 if (r->in.server_name) {
13347                         ndr_print_string(ndr, "server_name", r->in.server_name);
13348                 }
13349                 ndr->depth--;
13350                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
13351                 ndr->depth--;
13352         }
13353         if (flags & NDR_OUT) {
13354                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
13355                 ndr->depth++;
13356                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
13357                 ndr->depth++;
13358                 ndr_print_ptr(ndr, "trusts", *r->out.trusts);
13359                 ndr->depth++;
13360                 ndr_print_netr_DomainTrustList(ndr, "trusts", *r->out.trusts);
13361                 ndr->depth--;
13362                 ndr->depth--;
13363                 ndr_print_WERROR(ndr, "result", r->out.result);
13364                 ndr->depth--;
13365         }
13366         ndr->depth--;
13367 }
13368
13369 static enum ndr_err_code ndr_push_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_push *ndr, int flags, const struct netr_DSRDEREGISTERDNSHOSTRECORDS *r)
13370 {
13371         if (flags & NDR_IN) {
13372         }
13373         if (flags & NDR_OUT) {
13374                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13375         }
13376         return NDR_ERR_SUCCESS;
13377 }
13378
13379 static enum ndr_err_code ndr_pull_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_pull *ndr, int flags, struct netr_DSRDEREGISTERDNSHOSTRECORDS *r)
13380 {
13381         if (flags & NDR_IN) {
13382         }
13383         if (flags & NDR_OUT) {
13384                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13385         }
13386         return NDR_ERR_SUCCESS;
13387 }
13388
13389 _PUBLIC_ void ndr_print_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRDEREGISTERDNSHOSTRECORDS *r)
13390 {
13391         ndr_print_struct(ndr, name, "netr_DSRDEREGISTERDNSHOSTRECORDS");
13392         ndr->depth++;
13393         if (flags & NDR_SET_VALUES) {
13394                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13395         }
13396         if (flags & NDR_IN) {
13397                 ndr_print_struct(ndr, "in", "netr_DSRDEREGISTERDNSHOSTRECORDS");
13398                 ndr->depth++;
13399                 ndr->depth--;
13400         }
13401         if (flags & NDR_OUT) {
13402                 ndr_print_struct(ndr, "out", "netr_DSRDEREGISTERDNSHOSTRECORDS");
13403                 ndr->depth++;
13404                 ndr_print_WERROR(ndr, "result", r->out.result);
13405                 ndr->depth--;
13406         }
13407         ndr->depth--;
13408 }
13409
13410 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
13411 {
13412         if (flags & NDR_IN) {
13413                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13414                 if (r->in.server_name) {
13415                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13416                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13417                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13418                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13419                 }
13420                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13421                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13422                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13423                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13424                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13425                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13426                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13427                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13428                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13429                 if (r->in.credential == NULL) {
13430                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13431                 }
13432                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13433         }
13434         if (flags & NDR_OUT) {
13435                 if (r->out.return_authenticator == NULL) {
13436                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13437                 }
13438                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13439                 if (r->out.password == NULL) {
13440                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13441                 }
13442                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
13443                 if (r->out.password2 == NULL) {
13444                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13445                 }
13446                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
13447                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13448         }
13449         return NDR_ERR_SUCCESS;
13450 }
13451
13452 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
13453 {
13454         uint32_t _ptr_server_name;
13455         TALLOC_CTX *_mem_save_server_name_0;
13456         TALLOC_CTX *_mem_save_credential_0;
13457         TALLOC_CTX *_mem_save_return_authenticator_0;
13458         TALLOC_CTX *_mem_save_password_0;
13459         TALLOC_CTX *_mem_save_password2_0;
13460         if (flags & NDR_IN) {
13461                 ZERO_STRUCT(r->out);
13462
13463                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13464                 if (_ptr_server_name) {
13465                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13466                 } else {
13467                         r->in.server_name = NULL;
13468                 }
13469                 if (r->in.server_name) {
13470                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13471                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13472                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13473                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13474                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13475                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13476                         }
13477                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13478                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
13479                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13480                 }
13481                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13482                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13483                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13484                         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.account_name), ndr_get_array_length(ndr, &r->in.account_name));
13485                 }
13486                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13487                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
13488                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13489                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13490                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13491                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13492                         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.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
13493                 }
13494                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13495                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
13496                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13497                         NDR_PULL_ALLOC(ndr, r->in.credential);
13498                 }
13499                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13500                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13501                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13502                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13503                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13504                 ZERO_STRUCTP(r->out.return_authenticator);
13505                 NDR_PULL_ALLOC(ndr, r->out.password);
13506                 ZERO_STRUCTP(r->out.password);
13507                 NDR_PULL_ALLOC(ndr, r->out.password2);
13508                 ZERO_STRUCTP(r->out.password2);
13509         }
13510         if (flags & NDR_OUT) {
13511                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13512                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13513                 }
13514                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13515                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13516                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13517                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13518                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13519                         NDR_PULL_ALLOC(ndr, r->out.password);
13520                 }
13521                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
13522                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
13523                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
13524                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
13525                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13526                         NDR_PULL_ALLOC(ndr, r->out.password2);
13527                 }
13528                 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
13529                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
13530                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
13531                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
13532                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13533         }
13534         return NDR_ERR_SUCCESS;
13535 }
13536
13537 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
13538 {
13539         ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
13540         ndr->depth++;
13541         if (flags & NDR_SET_VALUES) {
13542                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13543         }
13544         if (flags & NDR_IN) {
13545                 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
13546                 ndr->depth++;
13547                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13548                 ndr->depth++;
13549                 if (r->in.server_name) {
13550                         ndr_print_string(ndr, "server_name", r->in.server_name);
13551                 }
13552                 ndr->depth--;
13553                 ndr_print_string(ndr, "account_name", r->in.account_name);
13554                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13555                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13556                 ndr_print_ptr(ndr, "credential", r->in.credential);
13557                 ndr->depth++;
13558                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13559                 ndr->depth--;
13560                 ndr->depth--;
13561         }
13562         if (flags & NDR_OUT) {
13563                 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
13564                 ndr->depth++;
13565                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13566                 ndr->depth++;
13567                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13568                 ndr->depth--;
13569                 ndr_print_ptr(ndr, "password", r->out.password);
13570                 ndr->depth++;
13571                 ndr_print_samr_Password(ndr, "password", r->out.password);
13572                 ndr->depth--;
13573                 ndr_print_ptr(ndr, "password2", r->out.password2);
13574                 ndr->depth++;
13575                 ndr_print_samr_Password(ndr, "password2", r->out.password2);
13576                 ndr->depth--;
13577                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13578                 ndr->depth--;
13579         }
13580         ndr->depth--;
13581 }
13582
13583 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
13584 {
13585         if (flags & NDR_IN) {
13586                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13587                 if (r->in.server_name) {
13588                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13589                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13590                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13591                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13592                 }
13593                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
13594                 if (r->in.trusted_domain_name) {
13595                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
13596                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13597                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
13598                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.trusted_domain_name, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13599                 }
13600                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
13601         }
13602         if (flags & NDR_OUT) {
13603                 if (r->out.forest_trust_info == NULL) {
13604                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13605                 }
13606                 if (*r->out.forest_trust_info == NULL) {
13607                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13608                 }
13609                 NDR_CHECK(ndr_push_ref_ptr(ndr));
13610                 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
13611                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13612         }
13613         return NDR_ERR_SUCCESS;
13614 }
13615
13616 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
13617 {
13618         uint32_t _ptr_server_name;
13619         uint32_t _ptr_trusted_domain_name;
13620         uint32_t _ptr_forest_trust_info;
13621         TALLOC_CTX *_mem_save_server_name_0;
13622         TALLOC_CTX *_mem_save_trusted_domain_name_0;
13623         TALLOC_CTX *_mem_save_forest_trust_info_0;
13624         TALLOC_CTX *_mem_save_forest_trust_info_1;
13625         if (flags & NDR_IN) {
13626                 ZERO_STRUCT(r->out);
13627
13628                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13629                 if (_ptr_server_name) {
13630                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13631                 } else {
13632                         r->in.server_name = NULL;
13633                 }
13634                 if (r->in.server_name) {
13635                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13636                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13637                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13638                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13639                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13640                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13641                         }
13642                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13643                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
13644                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13645                 }
13646                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
13647                 if (_ptr_trusted_domain_name) {
13648                         NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
13649                 } else {
13650                         r->in.trusted_domain_name = NULL;
13651                 }
13652                 if (r->in.trusted_domain_name) {
13653                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13654                         NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
13655                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
13656                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
13657                         if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
13658                                 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.trusted_domain_name), ndr_get_array_length(ndr, &r->in.trusted_domain_name));
13659                         }
13660                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
13661                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.trusted_domain_name, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t), CH_UTF16));
13662                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
13663                 }
13664                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
13665                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
13666                 ZERO_STRUCTP(r->out.forest_trust_info);
13667         }
13668         if (flags & NDR_OUT) {
13669                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13670                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
13671                 }
13672                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13673                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
13674                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_forest_trust_info));
13675                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13676                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
13677                 }
13678                 _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
13679                 NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
13680                 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
13681                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, LIBNDR_FLAG_REF_ALLOC);
13682                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
13683                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13684         }
13685         return NDR_ERR_SUCCESS;
13686 }
13687
13688 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
13689 {
13690         ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
13691         ndr->depth++;
13692         if (flags & NDR_SET_VALUES) {
13693                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13694         }
13695         if (flags & NDR_IN) {
13696                 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
13697                 ndr->depth++;
13698                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13699                 ndr->depth++;
13700                 if (r->in.server_name) {
13701                         ndr_print_string(ndr, "server_name", r->in.server_name);
13702                 }
13703                 ndr->depth--;
13704                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
13705                 ndr->depth++;
13706                 if (r->in.trusted_domain_name) {
13707                         ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
13708                 }
13709                 ndr->depth--;
13710                 ndr_print_uint32(ndr, "flags", r->in.flags);
13711                 ndr->depth--;
13712         }
13713         if (flags & NDR_OUT) {
13714                 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
13715                 ndr->depth++;
13716                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
13717                 ndr->depth++;
13718                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
13719                 ndr->depth++;
13720                 ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
13721                 ndr->depth--;
13722                 ndr->depth--;
13723                 ndr_print_WERROR(ndr, "result", r->out.result);
13724                 ndr->depth--;
13725         }
13726         ndr->depth--;
13727 }
13728
13729 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
13730 {
13731         if (flags & NDR_IN) {
13732                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13733                 if (r->in.server_name) {
13734                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13735                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13736                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13737                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13738                 }
13739                 if (r->in.trusted_domain_name == NULL) {
13740                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13741                 }
13742                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
13743                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13744                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
13745                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.trusted_domain_name, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13746                 if (r->in.credential == NULL) {
13747                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13748                 }
13749                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13750                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
13751         }
13752         if (flags & NDR_OUT) {
13753                 if (r->out.return_authenticator == NULL) {
13754                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13755                 }
13756                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13757                 if (r->out.forest_trust_info == NULL) {
13758                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13759                 }
13760                 if (*r->out.forest_trust_info == NULL) {
13761                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13762                 }
13763                 NDR_CHECK(ndr_push_ref_ptr(ndr));
13764                 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
13765                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13766         }
13767         return NDR_ERR_SUCCESS;
13768 }
13769
13770 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
13771 {
13772         uint32_t _ptr_server_name;
13773         uint32_t _ptr_forest_trust_info;
13774         TALLOC_CTX *_mem_save_server_name_0;
13775         TALLOC_CTX *_mem_save_credential_0;
13776         TALLOC_CTX *_mem_save_return_authenticator_0;
13777         TALLOC_CTX *_mem_save_forest_trust_info_0;
13778         TALLOC_CTX *_mem_save_forest_trust_info_1;
13779         if (flags & NDR_IN) {
13780                 ZERO_STRUCT(r->out);
13781
13782                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13783                 if (_ptr_server_name) {
13784                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13785                 } else {
13786                         r->in.server_name = NULL;
13787                 }
13788                 if (r->in.server_name) {
13789                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13790                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13791                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13792                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13793                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13794                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13795                         }
13796                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13797                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
13798                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13799                 }
13800                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
13801                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
13802                 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
13803                         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.trusted_domain_name), ndr_get_array_length(ndr, &r->in.trusted_domain_name));
13804                 }
13805                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
13806                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.trusted_domain_name, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t), CH_UTF16));
13807                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13808                         NDR_PULL_ALLOC(ndr, r->in.credential);
13809                 }
13810                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13811                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13812                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13813                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13814                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
13815                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13816                 ZERO_STRUCTP(r->out.return_authenticator);
13817                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
13818                 ZERO_STRUCTP(r->out.forest_trust_info);
13819         }
13820         if (flags & NDR_OUT) {
13821                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13822                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13823                 }
13824                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13825                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13826                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13827                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13828                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13829                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
13830                 }
13831                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13832                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
13833                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_forest_trust_info));
13834                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13835                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
13836                 }
13837                 _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
13838                 NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
13839                 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
13840                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, LIBNDR_FLAG_REF_ALLOC);
13841                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
13842                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13843         }
13844         return NDR_ERR_SUCCESS;
13845 }
13846
13847 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
13848 {
13849         ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
13850         ndr->depth++;
13851         if (flags & NDR_SET_VALUES) {
13852                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13853         }
13854         if (flags & NDR_IN) {
13855                 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
13856                 ndr->depth++;
13857                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13858                 ndr->depth++;
13859                 if (r->in.server_name) {
13860                         ndr_print_string(ndr, "server_name", r->in.server_name);
13861                 }
13862                 ndr->depth--;
13863                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
13864                 ndr->depth++;
13865                 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
13866                 ndr->depth--;
13867                 ndr_print_ptr(ndr, "credential", r->in.credential);
13868                 ndr->depth++;
13869                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13870                 ndr->depth--;
13871                 ndr_print_uint32(ndr, "flags", r->in.flags);
13872                 ndr->depth--;
13873         }
13874         if (flags & NDR_OUT) {
13875                 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
13876                 ndr->depth++;
13877                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13878                 ndr->depth++;
13879                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13880                 ndr->depth--;
13881                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
13882                 ndr->depth++;
13883                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
13884                 ndr->depth++;
13885                 ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
13886                 ndr->depth--;
13887                 ndr->depth--;
13888                 ndr_print_WERROR(ndr, "result", r->out.result);
13889                 ndr->depth--;
13890         }
13891         ndr->depth--;
13892 }
13893
13894 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
13895 {
13896         if (flags & NDR_IN) {
13897                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13898                 if (r->in.server_name) {
13899                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13900                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13901                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13902                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13903                 }
13904                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13905                 if (r->in.computer_name) {
13906                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13907                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13908                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13909                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13910                 }
13911                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
13912                 if (r->in.credential) {
13913                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13914                 }
13915                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
13916                 if (r->in.return_authenticator) {
13917                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
13918                 }
13919                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
13920                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
13921                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
13922                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
13923                 if (r->in.flags == NULL) {
13924                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13925                 }
13926                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
13927         }
13928         if (flags & NDR_OUT) {
13929                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
13930                 if (r->out.return_authenticator) {
13931                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13932                 }
13933                 if (r->out.validation == NULL) {
13934                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13935                 }
13936                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13937                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13938                 if (r->out.authoritative == NULL) {
13939                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13940                 }
13941                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
13942                 if (r->out.flags == NULL) {
13943                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13944                 }
13945                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
13946                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13947         }
13948         return NDR_ERR_SUCCESS;
13949 }
13950
13951 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
13952 {
13953         uint32_t _ptr_server_name;
13954         uint32_t _ptr_computer_name;
13955         uint32_t _ptr_credential;
13956         uint32_t _ptr_return_authenticator;
13957         TALLOC_CTX *_mem_save_server_name_0;
13958         TALLOC_CTX *_mem_save_computer_name_0;
13959         TALLOC_CTX *_mem_save_credential_0;
13960         TALLOC_CTX *_mem_save_return_authenticator_0;
13961         TALLOC_CTX *_mem_save_validation_0;
13962         TALLOC_CTX *_mem_save_authoritative_0;
13963         TALLOC_CTX *_mem_save_flags_0;
13964         if (flags & NDR_IN) {
13965                 ZERO_STRUCT(r->out);
13966
13967                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13968                 if (_ptr_server_name) {
13969                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13970                 } else {
13971                         r->in.server_name = NULL;
13972                 }
13973                 if (r->in.server_name) {
13974                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13975                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13976                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13977                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13978                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13979                                 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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13980                         }
13981                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13982                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
13983                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13984                 }
13985                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13986                 if (_ptr_computer_name) {
13987                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13988                 } else {
13989                         r->in.computer_name = NULL;
13990                 }
13991                 if (r->in.computer_name) {
13992                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13993                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13994                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13995                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13996                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13997                                 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.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
13998                         }
13999                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14000                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
14001                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
14002                 }
14003                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
14004                 if (_ptr_credential) {
14005                         NDR_PULL_ALLOC(ndr, r->in.credential);
14006                 } else {
14007                         r->in.credential = NULL;
14008                 }
14009                 if (r->in.credential) {
14010                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14011                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
14012                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14013                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
14014                 }
14015                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14016                 if (_ptr_return_authenticator) {
14017                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
14018                 } else {
14019                         r->in.return_authenticator = NULL;
14020                 }
14021                 if (r->in.return_authenticator) {
14022                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14023                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
14024                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14025                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14026                 }
14027                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
14028                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14029                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14030                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
14031                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14032                         NDR_PULL_ALLOC(ndr, r->in.flags);
14033                 }
14034                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14035                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
14036                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
14037                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14038                 NDR_PULL_ALLOC(ndr, r->out.validation);
14039                 ZERO_STRUCTP(r->out.validation);
14040                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14041                 ZERO_STRUCTP(r->out.authoritative);
14042                 NDR_PULL_ALLOC(ndr, r->out.flags);
14043                 *r->out.flags = *r->in.flags;
14044         }
14045         if (flags & NDR_OUT) {
14046                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14047                 if (_ptr_return_authenticator) {
14048                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14049                 } else {
14050                         r->out.return_authenticator = NULL;
14051                 }
14052                 if (r->out.return_authenticator) {
14053                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14054                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
14055                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14056                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14057                 }
14058                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14059                         NDR_PULL_ALLOC(ndr, r->out.validation);
14060                 }
14061                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
14062                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
14063                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14064                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14065                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
14066                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14067                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
14068                 }
14069                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
14070                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
14071                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
14072                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
14073                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14074                         NDR_PULL_ALLOC(ndr, r->out.flags);
14075                 }
14076                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14077                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
14078                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
14079                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14080                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14081         }
14082         return NDR_ERR_SUCCESS;
14083 }
14084
14085 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
14086 {
14087         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
14088         ndr->depth++;
14089         if (flags & NDR_SET_VALUES) {
14090                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14091         }
14092         if (flags & NDR_IN) {
14093                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
14094                 ndr->depth++;
14095                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14096                 ndr->depth++;
14097                 if (r->in.server_name) {
14098                         ndr_print_string(ndr, "server_name", r->in.server_name);
14099                 }
14100                 ndr->depth--;
14101                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14102                 ndr->depth++;
14103                 if (r->in.computer_name) {
14104                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
14105                 }
14106                 ndr->depth--;
14107                 ndr_print_ptr(ndr, "credential", r->in.credential);
14108                 ndr->depth++;
14109                 if (r->in.credential) {
14110                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14111                 }
14112                 ndr->depth--;
14113                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
14114                 ndr->depth++;
14115                 if (r->in.return_authenticator) {
14116                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
14117                 }
14118                 ndr->depth--;
14119                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
14120                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
14121                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
14122                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
14123                 ndr_print_ptr(ndr, "flags", r->in.flags);
14124                 ndr->depth++;
14125                 ndr_print_uint32(ndr, "flags", *r->in.flags);
14126                 ndr->depth--;
14127                 ndr->depth--;
14128         }
14129         if (flags & NDR_OUT) {
14130                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
14131                 ndr->depth++;
14132                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14133                 ndr->depth++;
14134                 if (r->out.return_authenticator) {
14135                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14136                 }
14137                 ndr->depth--;
14138                 ndr_print_ptr(ndr, "validation", r->out.validation);
14139                 ndr->depth++;
14140                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
14141                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
14142                 ndr->depth--;
14143                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
14144                 ndr->depth++;
14145                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
14146                 ndr->depth--;
14147                 ndr_print_ptr(ndr, "flags", r->out.flags);
14148                 ndr->depth++;
14149                 ndr_print_uint32(ndr, "flags", *r->out.flags);
14150                 ndr->depth--;
14151                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14152                 ndr->depth--;
14153         }
14154         ndr->depth--;
14155 }
14156
14157 static enum ndr_err_code ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14158 {
14159         if (flags & NDR_IN) {
14160         }
14161         if (flags & NDR_OUT) {
14162                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14163         }
14164         return NDR_ERR_SUCCESS;
14165 }
14166
14167 static enum ndr_err_code ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERGETTRUSTINFO *r)
14168 {
14169         if (flags & NDR_IN) {
14170         }
14171         if (flags & NDR_OUT) {
14172                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14173         }
14174         return NDR_ERR_SUCCESS;
14175 }
14176
14177 _PUBLIC_ void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14178 {
14179         ndr_print_struct(ndr, name, "netr_NETRSERVERGETTRUSTINFO");
14180         ndr->depth++;
14181         if (flags & NDR_SET_VALUES) {
14182                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14183         }
14184         if (flags & NDR_IN) {
14185                 ndr_print_struct(ndr, "in", "netr_NETRSERVERGETTRUSTINFO");
14186                 ndr->depth++;
14187                 ndr->depth--;
14188         }
14189         if (flags & NDR_OUT) {
14190                 ndr_print_struct(ndr, "out", "netr_NETRSERVERGETTRUSTINFO");
14191                 ndr->depth++;
14192                 ndr_print_WERROR(ndr, "result", r->out.result);
14193                 ndr->depth--;
14194         }
14195         ndr->depth--;
14196 }
14197
14198 static const struct ndr_interface_call netlogon_calls[] = {
14199         {
14200                 "netr_LogonUasLogon",
14201                 sizeof(struct netr_LogonUasLogon),
14202                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
14203                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
14204                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
14205                 false,
14206         },
14207         {
14208                 "netr_LogonUasLogoff",
14209                 sizeof(struct netr_LogonUasLogoff),
14210                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
14211                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
14212                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
14213                 false,
14214         },
14215         {
14216                 "netr_LogonSamLogon",
14217                 sizeof(struct netr_LogonSamLogon),
14218                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
14219                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
14220                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
14221                 false,
14222         },
14223         {
14224                 "netr_LogonSamLogoff",
14225                 sizeof(struct netr_LogonSamLogoff),
14226                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
14227                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
14228                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
14229                 false,
14230         },
14231         {
14232                 "netr_ServerReqChallenge",
14233                 sizeof(struct netr_ServerReqChallenge),
14234                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
14235                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
14236                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
14237                 false,
14238         },
14239         {
14240                 "netr_ServerAuthenticate",
14241                 sizeof(struct netr_ServerAuthenticate),
14242                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
14243                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
14244                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
14245                 false,
14246         },
14247         {
14248                 "netr_ServerPasswordSet",
14249                 sizeof(struct netr_ServerPasswordSet),
14250                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
14251                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
14252                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
14253                 false,
14254         },
14255         {
14256                 "netr_DatabaseDeltas",
14257                 sizeof(struct netr_DatabaseDeltas),
14258                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
14259                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
14260                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
14261                 false,
14262         },
14263         {
14264                 "netr_DatabaseSync",
14265                 sizeof(struct netr_DatabaseSync),
14266                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
14267                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
14268                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
14269                 false,
14270         },
14271         {
14272                 "netr_AccountDeltas",
14273                 sizeof(struct netr_AccountDeltas),
14274                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
14275                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
14276                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
14277                 false,
14278         },
14279         {
14280                 "netr_AccountSync",
14281                 sizeof(struct netr_AccountSync),
14282                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
14283                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
14284                 (ndr_print_function_t) ndr_print_netr_AccountSync,
14285                 false,
14286         },
14287         {
14288                 "netr_GetDcName",
14289                 sizeof(struct netr_GetDcName),
14290                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
14291                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
14292                 (ndr_print_function_t) ndr_print_netr_GetDcName,
14293                 false,
14294         },
14295         {
14296                 "netr_LogonControl",
14297                 sizeof(struct netr_LogonControl),
14298                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
14299                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
14300                 (ndr_print_function_t) ndr_print_netr_LogonControl,
14301                 false,
14302         },
14303         {
14304                 "netr_GetAnyDCName",
14305                 sizeof(struct netr_GetAnyDCName),
14306                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
14307                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
14308                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
14309                 false,
14310         },
14311         {
14312                 "netr_LogonControl2",
14313                 sizeof(struct netr_LogonControl2),
14314                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
14315                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
14316                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
14317                 false,
14318         },
14319         {
14320                 "netr_ServerAuthenticate2",
14321                 sizeof(struct netr_ServerAuthenticate2),
14322                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
14323                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
14324                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
14325                 false,
14326         },
14327         {
14328                 "netr_DatabaseSync2",
14329                 sizeof(struct netr_DatabaseSync2),
14330                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
14331                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
14332                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
14333                 false,
14334         },
14335         {
14336                 "netr_DatabaseRedo",
14337                 sizeof(struct netr_DatabaseRedo),
14338                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
14339                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
14340                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
14341                 false,
14342         },
14343         {
14344                 "netr_LogonControl2Ex",
14345                 sizeof(struct netr_LogonControl2Ex),
14346                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
14347                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
14348                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
14349                 false,
14350         },
14351         {
14352                 "netr_NetrEnumerateTrustedDomains",
14353                 sizeof(struct netr_NetrEnumerateTrustedDomains),
14354                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
14355                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
14356                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
14357                 false,
14358         },
14359         {
14360                 "netr_DsRGetDCName",
14361                 sizeof(struct netr_DsRGetDCName),
14362                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
14363                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
14364                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
14365                 false,
14366         },
14367         {
14368                 "netr_NETRLOGONDUMMYROUTINE1",
14369                 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
14370                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
14371                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
14372                 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
14373                 false,
14374         },
14375         {
14376                 "netr_NETRLOGONSETSERVICEBITS",
14377                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
14378                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
14379                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
14380                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
14381                 false,
14382         },
14383         {
14384                 "netr_NETRLOGONGETTRUSTRID",
14385                 sizeof(struct netr_NETRLOGONGETTRUSTRID),
14386                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTRUSTRID,
14387                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTRUSTRID,
14388                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTRUSTRID,
14389                 false,
14390         },
14391         {
14392                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
14393                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
14394                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
14395                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
14396                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
14397                 false,
14398         },
14399         {
14400                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
14401                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
14402                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14403                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14404                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14405                 false,
14406         },
14407         {
14408                 "netr_ServerAuthenticate3",
14409                 sizeof(struct netr_ServerAuthenticate3),
14410                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
14411                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
14412                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
14413                 false,
14414         },
14415         {
14416                 "netr_DsRGetDCNameEx",
14417                 sizeof(struct netr_DsRGetDCNameEx),
14418                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
14419                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
14420                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
14421                 false,
14422         },
14423         {
14424                 "netr_DsRGetSiteName",
14425                 sizeof(struct netr_DsRGetSiteName),
14426                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
14427                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
14428                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
14429                 false,
14430         },
14431         {
14432                 "netr_LogonGetDomainInfo",
14433                 sizeof(struct netr_LogonGetDomainInfo),
14434                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
14435                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
14436                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
14437                 false,
14438         },
14439         {
14440                 "netr_ServerPasswordSet2",
14441                 sizeof(struct netr_ServerPasswordSet2),
14442                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
14443                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
14444                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
14445                 false,
14446         },
14447         {
14448                 "netr_ServerPasswordGet",
14449                 sizeof(struct netr_ServerPasswordGet),
14450                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
14451                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
14452                 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
14453                 false,
14454         },
14455         {
14456                 "netr_NETRLOGONSENDTOSAM",
14457                 sizeof(struct netr_NETRLOGONSENDTOSAM),
14458                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
14459                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
14460                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
14461                 false,
14462         },
14463         {
14464                 "netr_DsRAddressToSitenamesW",
14465                 sizeof(struct netr_DsRAddressToSitenamesW),
14466                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
14467                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
14468                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
14469                 false,
14470         },
14471         {
14472                 "netr_DsRGetDCNameEx2",
14473                 sizeof(struct netr_DsRGetDCNameEx2),
14474                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
14475                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
14476                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
14477                 false,
14478         },
14479         {
14480                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
14481                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
14482                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14483                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14484                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14485                 false,
14486         },
14487         {
14488                 "netr_NetrEnumerateTrustedDomainsEx",
14489                 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
14490                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
14491                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
14492                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
14493                 false,
14494         },
14495         {
14496                 "netr_DsRAddressToSitenamesExW",
14497                 sizeof(struct netr_DsRAddressToSitenamesExW),
14498                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
14499                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
14500                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
14501                 false,
14502         },
14503         {
14504                 "netr_DsrGetDcSiteCoverageW",
14505                 sizeof(struct netr_DsrGetDcSiteCoverageW),
14506                 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
14507                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
14508                 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
14509                 false,
14510         },
14511         {
14512                 "netr_LogonSamLogonEx",
14513                 sizeof(struct netr_LogonSamLogonEx),
14514                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
14515                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
14516                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
14517                 false,
14518         },
14519         {
14520                 "netr_DsrEnumerateDomainTrusts",
14521                 sizeof(struct netr_DsrEnumerateDomainTrusts),
14522                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
14523                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
14524                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
14525                 false,
14526         },
14527         {
14528                 "netr_DSRDEREGISTERDNSHOSTRECORDS",
14529                 sizeof(struct netr_DSRDEREGISTERDNSHOSTRECORDS),
14530                 (ndr_push_flags_fn_t) ndr_push_netr_DSRDEREGISTERDNSHOSTRECORDS,
14531                 (ndr_pull_flags_fn_t) ndr_pull_netr_DSRDEREGISTERDNSHOSTRECORDS,
14532                 (ndr_print_function_t) ndr_print_netr_DSRDEREGISTERDNSHOSTRECORDS,
14533                 false,
14534         },
14535         {
14536                 "netr_ServerTrustPasswordsGet",
14537                 sizeof(struct netr_ServerTrustPasswordsGet),
14538                 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
14539                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
14540                 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
14541                 false,
14542         },
14543         {
14544                 "netr_DsRGetForestTrustInformation",
14545                 sizeof(struct netr_DsRGetForestTrustInformation),
14546                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
14547                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
14548                 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
14549                 false,
14550         },
14551         {
14552                 "netr_GetForestTrustInformation",
14553                 sizeof(struct netr_GetForestTrustInformation),
14554                 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
14555                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
14556                 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
14557                 false,
14558         },
14559         {
14560                 "netr_LogonSamLogonWithFlags",
14561                 sizeof(struct netr_LogonSamLogonWithFlags),
14562                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
14563                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
14564                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
14565                 false,
14566         },
14567         {
14568                 "netr_NETRSERVERGETTRUSTINFO",
14569                 sizeof(struct netr_NETRSERVERGETTRUSTINFO),
14570                 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERGETTRUSTINFO,
14571                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERGETTRUSTINFO,
14572                 (ndr_print_function_t) ndr_print_netr_NETRSERVERGETTRUSTINFO,
14573                 false,
14574         },
14575         { NULL, 0, NULL, NULL, NULL, false }
14576 };
14577
14578 static const char * const netlogon_endpoint_strings[] = {
14579         "ncacn_np:[\\pipe\\netlogon]", 
14580         "ncacn_ip_tcp:", 
14581         "ncalrpc:", 
14582 };
14583
14584 static const struct ndr_interface_string_array netlogon_endpoints = {
14585         .count  = 3,
14586         .names  = netlogon_endpoint_strings
14587 };
14588
14589 static const char * const netlogon_authservice_strings[] = {
14590         "host", 
14591 };
14592
14593 static const struct ndr_interface_string_array netlogon_authservices = {
14594         .count  = 3,
14595         .names  = netlogon_authservice_strings
14596 };
14597
14598
14599 const struct ndr_interface_table ndr_table_netlogon = {
14600         .name           = "netlogon",
14601         .syntax_id      = {
14602                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
14603                 NDR_NETLOGON_VERSION
14604         },
14605         .helpstring     = NDR_NETLOGON_HELPSTRING,
14606         .num_calls      = 47,
14607         .calls          = netlogon_calls,
14608         .endpoints      = &netlogon_endpoints,
14609         .authservices   = &netlogon_authservices
14610 };
14611