r24538: merge from SAMBA_4_0:
[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 NTSTATUS 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 NT_STATUS_OK;
57 }
58
59 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
214 }
215
216 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
257 }
258
259 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
347 }
348
349 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
395 }
396
397 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
445 }
446
447 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
530 }
531
532 NTSTATUS 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 NT_STATUS_OK;
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_ NTSTATUS 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 NT_STATUS_OK;
638 }
639
640 _PUBLIC_ NTSTATUS 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 NT_STATUS_OK;
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_ NTSTATUS 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 NT_STATUS_OK;
827 }
828
829 _PUBLIC_ NTSTATUS 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 NT_STATUS_OK;
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_ NTSTATUS 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 NT_STATUS_OK;
864 }
865
866 _PUBLIC_ NTSTATUS 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 NT_STATUS_OK;
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_ NTSTATUS 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 NT_STATUS_OK;
909 }
910
911 _PUBLIC_ NTSTATUS 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 NT_STATUS_OK;
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_ NTSTATUS 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 NT_STATUS_OK;
944 }
945
946 _PUBLIC_ NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
1019 }
1020
1021 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
1139 }
1140
1141 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
1174 }
1175
1176 NTSTATUS 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 NT_STATUS_OK;
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_ NTSTATUS 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 NT_STATUS_OK;
1237 }
1238
1239 _PUBLIC_ NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
1337 }
1338
1339 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
1468 }
1469
1470 NTSTATUS 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 NT_STATUS_OK;
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_ NTSTATUS 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 NT_STATUS_OK;
1648 }
1649
1650 _PUBLIC_ NTSTATUS 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 NT_STATUS_OK;
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_ NTSTATUS 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 NT_STATUS_OK;
1843 }
1844
1845 _PUBLIC_ NTSTATUS 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 NT_STATUS_OK;
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_ NTSTATUS 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 NT_STATUS_OK;
1884 }
1885
1886 _PUBLIC_ NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
1934 }
1935
1936 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
2012 }
2013
2014 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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_size));
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_size));
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 NT_STATUS_OK;
2056 }
2057
2058 NTSTATUS 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 NT_STATUS_OK;
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", 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", 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 NTSTATUS 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->lmhistory));
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 NT_STATUS_OK;
2106 }
2107
2108 NTSTATUS 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->lmhistory));
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 NT_STATUS_OK;
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, "lmhistory", &r->lmhistory);
2130         ndr->depth--;
2131 }
2132
2133 NTSTATUS 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 NT_STATUS_OK;
2143 }
2144
2145 NTSTATUS 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 NT_STATUS_OK;
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_ NTSTATUS 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 NT_STATUS_OK;
2176 }
2177
2178 _PUBLIC_ NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
2225 }
2226
2227 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
2346 }
2347
2348 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
2491 }
2492
2493 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
2584 }
2585
2586 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
2662 }
2663
2664 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
2736 }
2737
2738 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
2877 }
2878
2879 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
2940 }
2941
2942 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
2984 }
2985
2986 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
3059 }
3060
3061 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
3220 }
3221
3222 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
3324 }
3325
3326 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
3391 }
3392
3393 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
3541 }
3542
3543 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
3571 }
3572
3573 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
3609 }
3610
3611 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
3693 }
3694
3695 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
3751 }
3752
3753 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
4009 }
4010
4011 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
4768 }
4769
4770 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
5193 }
5194
5195 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
5244 }
5245
5246 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
5327 }
5328
5329 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
5376 }
5377
5378 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
5412 }
5413
5414 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
5450 }
5451
5452 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
5498 }
5499
5500 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
5579 }
5580
5581 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
5707 }
5708
5709 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
5794 }
5795
5796 NTSTATUS 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 NT_STATUS_OK;
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 NTSTATUS ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
5946 {
5947         if (ndr_flags & NDR_SCALARS) {
5948                 NDR_CHECK(ndr_push_align(ndr, 4));
5949                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
5950                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
5951                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->dc_address_type));
5952                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
5953                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
5954                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
5955                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dc_flags));
5956                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
5957                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
5958         }
5959         if (ndr_flags & NDR_BUFFERS) {
5960                 if (r->dc_unc) {
5961                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
5962                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5963                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
5964                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5965                 }
5966                 if (r->dc_address) {
5967                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
5968                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5969                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
5970                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5971                 }
5972                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
5973                 if (r->domain_name) {
5974                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
5975                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5976                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
5977                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5978                 }
5979                 if (r->forest_name) {
5980                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
5981                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5982                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
5983                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5984                 }
5985                 if (r->dc_site_name) {
5986                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
5987                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5988                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
5989                         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));
5990                 }
5991                 if (r->client_site_name) {
5992                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
5993                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5994                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
5995                         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));
5996                 }
5997         }
5998         return NT_STATUS_OK;
5999 }
6000
6001 NTSTATUS ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6002 {
6003         uint32_t _ptr_dc_unc;
6004         TALLOC_CTX *_mem_save_dc_unc_0;
6005         uint32_t _ptr_dc_address;
6006         TALLOC_CTX *_mem_save_dc_address_0;
6007         uint32_t _ptr_domain_name;
6008         TALLOC_CTX *_mem_save_domain_name_0;
6009         uint32_t _ptr_forest_name;
6010         TALLOC_CTX *_mem_save_forest_name_0;
6011         uint32_t _ptr_dc_site_name;
6012         TALLOC_CTX *_mem_save_dc_site_name_0;
6013         uint32_t _ptr_client_site_name;
6014         TALLOC_CTX *_mem_save_client_site_name_0;
6015         if (ndr_flags & NDR_SCALARS) {
6016                 NDR_CHECK(ndr_pull_align(ndr, 4));
6017                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6018                 if (_ptr_dc_unc) {
6019                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6020                 } else {
6021                         r->dc_unc = NULL;
6022                 }
6023                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6024                 if (_ptr_dc_address) {
6025                         NDR_PULL_ALLOC(ndr, r->dc_address);
6026                 } else {
6027                         r->dc_address = NULL;
6028                 }
6029                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->dc_address_type));
6030                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6031                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6032                 if (_ptr_domain_name) {
6033                         NDR_PULL_ALLOC(ndr, r->domain_name);
6034                 } else {
6035                         r->domain_name = NULL;
6036                 }
6037                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6038                 if (_ptr_forest_name) {
6039                         NDR_PULL_ALLOC(ndr, r->forest_name);
6040                 } else {
6041                         r->forest_name = NULL;
6042                 }
6043                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dc_flags));
6044                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6045                 if (_ptr_dc_site_name) {
6046                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6047                 } else {
6048                         r->dc_site_name = NULL;
6049                 }
6050                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6051                 if (_ptr_client_site_name) {
6052                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6053                 } else {
6054                         r->client_site_name = NULL;
6055                 }
6056         }
6057         if (ndr_flags & NDR_BUFFERS) {
6058                 if (r->dc_unc) {
6059                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6060                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6061                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6062                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6063                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6064                                 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));
6065                         }
6066                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6067                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6068                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6069                 }
6070                 if (r->dc_address) {
6071                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6072                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6073                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6074                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6075                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6076                                 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));
6077                         }
6078                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6079                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6080                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6081                 }
6082                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6083                 if (r->domain_name) {
6084                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6085                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6086                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6087                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6088                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6089                                 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));
6090                         }
6091                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6092                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6093                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6094                 }
6095                 if (r->forest_name) {
6096                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6097                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6098                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
6099                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
6100                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
6101                                 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));
6102                         }
6103                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
6104                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
6105                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
6106                 }
6107                 if (r->dc_site_name) {
6108                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6109                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
6110                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
6111                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
6112                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
6113                                 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));
6114                         }
6115                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
6116                         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));
6117                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
6118                 }
6119                 if (r->client_site_name) {
6120                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6121                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
6122                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
6123                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
6124                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
6125                                 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));
6126                         }
6127                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
6128                         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));
6129                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
6130                 }
6131         }
6132         return NT_STATUS_OK;
6133 }
6134
6135 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
6136 {
6137         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
6138         ndr->depth++;
6139         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
6140         ndr->depth++;
6141         if (r->dc_unc) {
6142                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
6143         }
6144         ndr->depth--;
6145         ndr_print_ptr(ndr, "dc_address", r->dc_address);
6146         ndr->depth++;
6147         if (r->dc_address) {
6148                 ndr_print_string(ndr, "dc_address", r->dc_address);
6149         }
6150         ndr->depth--;
6151         ndr_print_int32(ndr, "dc_address_type", r->dc_address_type);
6152         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
6153         ndr_print_ptr(ndr, "domain_name", r->domain_name);
6154         ndr->depth++;
6155         if (r->domain_name) {
6156                 ndr_print_string(ndr, "domain_name", r->domain_name);
6157         }
6158         ndr->depth--;
6159         ndr_print_ptr(ndr, "forest_name", r->forest_name);
6160         ndr->depth++;
6161         if (r->forest_name) {
6162                 ndr_print_string(ndr, "forest_name", r->forest_name);
6163         }
6164         ndr->depth--;
6165         ndr_print_uint32(ndr, "dc_flags", r->dc_flags);
6166         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
6167         ndr->depth++;
6168         if (r->dc_site_name) {
6169                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
6170         }
6171         ndr->depth--;
6172         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
6173         ndr->depth++;
6174         if (r->client_site_name) {
6175                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
6176         }
6177         ndr->depth--;
6178         ndr->depth--;
6179 }
6180
6181 NTSTATUS ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
6182 {
6183         if (ndr_flags & NDR_SCALARS) {
6184                 NDR_CHECK(ndr_push_align(ndr, 4));
6185                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6186                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6187         }
6188         if (ndr_flags & NDR_BUFFERS) {
6189                 if (r->data) {
6190                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6191                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
6192                 }
6193         }
6194         return NT_STATUS_OK;
6195 }
6196
6197 NTSTATUS ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
6198 {
6199         uint32_t _ptr_data;
6200         TALLOC_CTX *_mem_save_data_0;
6201         if (ndr_flags & NDR_SCALARS) {
6202                 NDR_CHECK(ndr_pull_align(ndr, 4));
6203                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
6204                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6205                 if (_ptr_data) {
6206                         NDR_PULL_ALLOC(ndr, r->data);
6207                 } else {
6208                         r->data = NULL;
6209                 }
6210         }
6211         if (ndr_flags & NDR_BUFFERS) {
6212                 if (r->data) {
6213                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6214                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6215                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6216                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6217                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
6218                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6219                 }
6220                 if (r->data) {
6221                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
6222                 }
6223         }
6224         return NT_STATUS_OK;
6225 }
6226
6227 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
6228 {
6229         ndr_print_struct(ndr, name, "netr_Blob");
6230         ndr->depth++;
6231         ndr_print_uint32(ndr, "length", r->length);
6232         ndr_print_ptr(ndr, "data", r->data);
6233         ndr->depth++;
6234         if (r->data) {
6235                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6236         }
6237         ndr->depth--;
6238         ndr->depth--;
6239 }
6240
6241 NTSTATUS ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r)
6242 {
6243         uint32_t cntr_data_1;
6244         {
6245                 uint32_t _flags_save_STRUCT = ndr->flags;
6246                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6247                 if (ndr_flags & NDR_SCALARS) {
6248                         NDR_CHECK(ndr_push_align(ndr, 4));
6249                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
6250                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
6251                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6252                 }
6253                 if (ndr_flags & NDR_BUFFERS) {
6254                         if (r->data) {
6255                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
6256                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6257                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
6258                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6259                                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1]));
6260                                 }
6261                         }
6262                 }
6263                 ndr->flags = _flags_save_STRUCT;
6264         }
6265         return NT_STATUS_OK;
6266 }
6267
6268 NTSTATUS ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r)
6269 {
6270         uint32_t _ptr_data;
6271         uint32_t cntr_data_1;
6272         TALLOC_CTX *_mem_save_data_0;
6273         TALLOC_CTX *_mem_save_data_1;
6274         {
6275                 uint32_t _flags_save_STRUCT = ndr->flags;
6276                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6277                 if (ndr_flags & NDR_SCALARS) {
6278                         NDR_CHECK(ndr_pull_align(ndr, 4));
6279                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
6280                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
6281                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6282                         if (_ptr_data) {
6283                                 NDR_PULL_ALLOC(ndr, r->data);
6284                         } else {
6285                                 r->data = NULL;
6286                         }
6287                 }
6288                 if (ndr_flags & NDR_BUFFERS) {
6289                         if (r->data) {
6290                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6291                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6292                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6293                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
6294                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
6295                                         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));
6296                                 }
6297                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6298                                 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
6299                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6300                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6301                                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
6302                                 }
6303                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
6304                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6305                         }
6306                         if (r->data) {
6307                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2));
6308                         }
6309                         if (r->data) {
6310                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2));
6311                         }
6312                 }
6313                 ndr->flags = _flags_save_STRUCT;
6314         }
6315         return NT_STATUS_OK;
6316 }
6317
6318 _PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r)
6319 {
6320         uint32_t cntr_data_1;
6321         ndr_print_struct(ndr, name, "netr_BinaryString");
6322         {
6323                 uint32_t _flags_save_STRUCT = ndr->flags;
6324                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6325                 ndr->depth++;
6326                 ndr_print_uint16(ndr, "length", r->length);
6327                 ndr_print_uint16(ndr, "size", r->size);
6328                 ndr_print_ptr(ndr, "data", r->data);
6329                 ndr->depth++;
6330                 if (r->data) {
6331                         ndr->print(ndr, "%s: ARRAY(%d)", "data", r->length / 2);
6332                         ndr->depth++;
6333                         for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) {
6334                                 char *idx_1=NULL;
6335                                 asprintf(&idx_1, "[%d]", cntr_data_1);
6336                                 if (idx_1) {
6337                                         ndr_print_uint16(ndr, "data", r->data[cntr_data_1]);
6338                                         free(idx_1);
6339                                 }
6340                         }
6341                         ndr->depth--;
6342                 }
6343                 ndr->depth--;
6344                 ndr->depth--;
6345                 ndr->flags = _flags_save_STRUCT;
6346         }
6347 }
6348
6349 NTSTATUS ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
6350 {
6351         uint32_t cntr_unknown7_0;
6352         if (ndr_flags & NDR_SCALARS) {
6353                 NDR_CHECK(ndr_push_align(ndr, 4));
6354                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6355                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
6356                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
6357                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
6358                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
6359                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
6360                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
6361                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6362                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
6363                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6364                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6365                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6366                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
6367                 }
6368         }
6369         if (ndr_flags & NDR_BUFFERS) {
6370                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6371                 if (r->workstation_domain) {
6372                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6373                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6374                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6375                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6376                 }
6377                 if (r->workstation_site) {
6378                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6379                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6380                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6381                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6382                 }
6383                 if (r->unknown1) {
6384                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6385                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6386                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6387                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6388                 }
6389                 if (r->unknown2) {
6390                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6391                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6392                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6393                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6394                 }
6395                 if (r->unknown3) {
6396                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6397                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6398                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6399                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6400                 }
6401                 if (r->unknown4) {
6402                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6403                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6404                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6405                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6406                 }
6407                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6408                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
6409                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6410                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6411         }
6412         return NT_STATUS_OK;
6413 }
6414
6415 NTSTATUS ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
6416 {
6417         uint32_t _ptr_workstation_domain;
6418         TALLOC_CTX *_mem_save_workstation_domain_0;
6419         uint32_t _ptr_workstation_site;
6420         TALLOC_CTX *_mem_save_workstation_site_0;
6421         uint32_t _ptr_unknown1;
6422         TALLOC_CTX *_mem_save_unknown1_0;
6423         uint32_t _ptr_unknown2;
6424         TALLOC_CTX *_mem_save_unknown2_0;
6425         uint32_t _ptr_unknown3;
6426         TALLOC_CTX *_mem_save_unknown3_0;
6427         uint32_t _ptr_unknown4;
6428         TALLOC_CTX *_mem_save_unknown4_0;
6429         uint32_t cntr_unknown7_0;
6430         if (ndr_flags & NDR_SCALARS) {
6431                 NDR_CHECK(ndr_pull_align(ndr, 4));
6432                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6433                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
6434                 if (_ptr_workstation_domain) {
6435                         NDR_PULL_ALLOC(ndr, r->workstation_domain);
6436                 } else {
6437                         r->workstation_domain = NULL;
6438                 }
6439                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
6440                 if (_ptr_workstation_site) {
6441                         NDR_PULL_ALLOC(ndr, r->workstation_site);
6442                 } else {
6443                         r->workstation_site = NULL;
6444                 }
6445                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
6446                 if (_ptr_unknown1) {
6447                         NDR_PULL_ALLOC(ndr, r->unknown1);
6448                 } else {
6449                         r->unknown1 = NULL;
6450                 }
6451                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
6452                 if (_ptr_unknown2) {
6453                         NDR_PULL_ALLOC(ndr, r->unknown2);
6454                 } else {
6455                         r->unknown2 = NULL;
6456                 }
6457                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
6458                 if (_ptr_unknown3) {
6459                         NDR_PULL_ALLOC(ndr, r->unknown3);
6460                 } else {
6461                         r->unknown3 = NULL;
6462                 }
6463                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
6464                 if (_ptr_unknown4) {
6465                         NDR_PULL_ALLOC(ndr, r->unknown4);
6466                 } else {
6467                         r->unknown4 = NULL;
6468                 }
6469                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6470                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
6471                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6472                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6473                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6474                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
6475                 }
6476         }
6477         if (ndr_flags & NDR_BUFFERS) {
6478                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6479                 if (r->workstation_domain) {
6480                         _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6481                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
6482                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
6483                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
6484                         if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
6485                                 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));
6486                         }
6487                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
6488                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
6489                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
6490                 }
6491                 if (r->workstation_site) {
6492                         _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
6493                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
6494                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
6495                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
6496                         if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
6497                                 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));
6498                         }
6499                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
6500                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
6501                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
6502                 }
6503                 if (r->unknown1) {
6504                         _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6505                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
6506                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
6507                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
6508                         if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
6509                                 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));
6510                         }
6511                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
6512                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
6513                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
6514                 }
6515                 if (r->unknown2) {
6516                         _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6517                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
6518                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
6519                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
6520                         if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
6521                                 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));
6522                         }
6523                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
6524                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
6525                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
6526                 }
6527                 if (r->unknown3) {
6528                         _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6529                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
6530                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
6531                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
6532                         if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
6533                                 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));
6534                         }
6535                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
6536                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
6537                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
6538                 }
6539                 if (r->unknown4) {
6540                         _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6541                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
6542                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
6543                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
6544                         if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
6545                                 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));
6546                         }
6547                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
6548                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
6549                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
6550                 }
6551                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6552                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
6553                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6554                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6555         }
6556         return NT_STATUS_OK;
6557 }
6558
6559 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
6560 {
6561         uint32_t cntr_unknown7_0;
6562         ndr_print_struct(ndr, name, "netr_DomainQuery1");
6563         ndr->depth++;
6564         ndr_print_netr_Blob(ndr, "blob", &r->blob);
6565         ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
6566         ndr->depth++;
6567         if (r->workstation_domain) {
6568                 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
6569         }
6570         ndr->depth--;
6571         ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
6572         ndr->depth++;
6573         if (r->workstation_site) {
6574                 ndr_print_string(ndr, "workstation_site", r->workstation_site);
6575         }
6576         ndr->depth--;
6577         ndr_print_ptr(ndr, "unknown1", r->unknown1);
6578         ndr->depth++;
6579         if (r->unknown1) {
6580                 ndr_print_string(ndr, "unknown1", r->unknown1);
6581         }
6582         ndr->depth--;
6583         ndr_print_ptr(ndr, "unknown2", r->unknown2);
6584         ndr->depth++;
6585         if (r->unknown2) {
6586                 ndr_print_string(ndr, "unknown2", r->unknown2);
6587         }
6588         ndr->depth--;
6589         ndr_print_ptr(ndr, "unknown3", r->unknown3);
6590         ndr->depth++;
6591         if (r->unknown3) {
6592                 ndr_print_string(ndr, "unknown3", r->unknown3);
6593         }
6594         ndr->depth--;
6595         ndr_print_ptr(ndr, "unknown4", r->unknown4);
6596         ndr->depth++;
6597         if (r->unknown4) {
6598                 ndr_print_string(ndr, "unknown4", r->unknown4);
6599         }
6600         ndr->depth--;
6601         ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2);
6602         ndr_print_lsa_String(ndr, "product", &r->product);
6603         ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
6604         ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
6605         ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", 4);
6606         ndr->depth++;
6607         for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
6608                 char *idx_0=NULL;
6609                 asprintf(&idx_0, "[%d]", cntr_unknown7_0);
6610                 if (idx_0) {
6611                         ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
6612                         free(idx_0);
6613                 }
6614         }
6615         ndr->depth--;
6616         ndr->depth--;
6617 }
6618
6619 NTSTATUS ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
6620 {
6621         if (ndr_flags & NDR_SCALARS) {
6622                 int level = ndr_push_get_switch_value(ndr, r);
6623                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6624                 switch (level) {
6625                         case 1:
6626                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6627                         break;
6628
6629                         case 2:
6630                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6631                         break;
6632
6633                         default:
6634                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6635                 }
6636         }
6637         if (ndr_flags & NDR_BUFFERS) {
6638                 int level = ndr_push_get_switch_value(ndr, r);
6639                 switch (level) {
6640                         case 1:
6641                                 if (r->query1) {
6642                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6643                                 }
6644                         break;
6645
6646                         case 2:
6647                                 if (r->query1) {
6648                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6649                                 }
6650                         break;
6651
6652                         default:
6653                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6654                 }
6655         }
6656         return NT_STATUS_OK;
6657 }
6658
6659 NTSTATUS ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
6660 {
6661         int level;
6662         uint32_t _level;
6663         TALLOC_CTX *_mem_save_query1_0;
6664         level = ndr_pull_get_switch_value(ndr, r);
6665         if (ndr_flags & NDR_SCALARS) {
6666                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6667                 if (_level != level) {
6668                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6669                 }
6670                 switch (level) {
6671                         case 1: {
6672                                 uint32_t _ptr_query1;
6673                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6674                                 if (_ptr_query1) {
6675                                         NDR_PULL_ALLOC(ndr, r->query1);
6676                                 } else {
6677                                         r->query1 = NULL;
6678                                 }
6679                         break; }
6680
6681                         case 2: {
6682                                 uint32_t _ptr_query1;
6683                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6684                                 if (_ptr_query1) {
6685                                         NDR_PULL_ALLOC(ndr, r->query1);
6686                                 } else {
6687                                         r->query1 = NULL;
6688                                 }
6689                         break; }
6690
6691                         default:
6692                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6693                 }
6694         }
6695         if (ndr_flags & NDR_BUFFERS) {
6696                 switch (level) {
6697                         case 1:
6698                                 if (r->query1) {
6699                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6700                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6701                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6702                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6703                                 }
6704                         break;
6705
6706                         case 2:
6707                                 if (r->query1) {
6708                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6709                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6710                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6711                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6712                                 }
6713                         break;
6714
6715                         default:
6716                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6717                 }
6718         }
6719         return NT_STATUS_OK;
6720 }
6721
6722 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
6723 {
6724         int level;
6725         level = ndr_print_get_switch_value(ndr, r);
6726         ndr_print_union(ndr, name, level, "netr_DomainQuery");
6727         switch (level) {
6728                 case 1:
6729                         ndr_print_ptr(ndr, "query1", r->query1);
6730                         ndr->depth++;
6731                         if (r->query1) {
6732                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6733                         }
6734                         ndr->depth--;
6735                 break;
6736
6737                 case 2:
6738                         ndr_print_ptr(ndr, "query1", r->query1);
6739                         ndr->depth++;
6740                         if (r->query1) {
6741                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6742                         }
6743                         ndr->depth--;
6744                 break;
6745
6746                 default:
6747                         ndr_print_bad_level(ndr, name, level);
6748         }
6749 }
6750
6751 NTSTATUS ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
6752 {
6753         uint32_t cntr_unknown1_0;
6754         uint32_t cntr_unknown_0;
6755         if (ndr_flags & NDR_SCALARS) {
6756                 NDR_CHECK(ndr_push_align(ndr, 4));
6757                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6758                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6759                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
6760                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
6761                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
6762                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6763                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6764                 }
6765                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6766                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6767                 }
6768         }
6769         if (ndr_flags & NDR_BUFFERS) {
6770                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6771                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6772                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6773                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
6774                 if (r->sid) {
6775                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6776                 }
6777                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6778                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6779                 }
6780         }
6781         return NT_STATUS_OK;
6782 }
6783
6784 NTSTATUS ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
6785 {
6786         uint32_t _ptr_sid;
6787         TALLOC_CTX *_mem_save_sid_0;
6788         uint32_t cntr_unknown1_0;
6789         uint32_t cntr_unknown_0;
6790         if (ndr_flags & NDR_SCALARS) {
6791                 NDR_CHECK(ndr_pull_align(ndr, 4));
6792                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6793                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6794                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
6795                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
6796                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
6797                 if (_ptr_sid) {
6798                         NDR_PULL_ALLOC(ndr, r->sid);
6799                 } else {
6800                         r->sid = NULL;
6801                 }
6802                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6803                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6804                 }
6805                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6806                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
6807                 }
6808         }
6809         if (ndr_flags & NDR_BUFFERS) {
6810                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6811                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6812                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6813                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
6814                 if (r->sid) {
6815                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6816                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
6817                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6818                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
6819                 }
6820                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6821                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6822                 }
6823         }
6824         return NT_STATUS_OK;
6825 }
6826
6827 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
6828 {
6829         uint32_t cntr_unknown1_0;
6830         uint32_t cntr_unknown_0;
6831         ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
6832         ndr->depth++;
6833         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
6834         ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
6835         ndr_print_lsa_String(ndr, "forest", &r->forest);
6836         ndr_print_GUID(ndr, "guid", &r->guid);
6837         ndr_print_ptr(ndr, "sid", r->sid);
6838         ndr->depth++;
6839         if (r->sid) {
6840                 ndr_print_dom_sid2(ndr, "sid", r->sid);
6841         }
6842         ndr->depth--;
6843         ndr->print(ndr, "%s: ARRAY(%d)", "unknown1", 4);
6844         ndr->depth++;
6845         for (cntr_unknown1_0=0;cntr_unknown1_0<4;cntr_unknown1_0++) {
6846                 char *idx_0=NULL;
6847                 asprintf(&idx_0, "[%d]", cntr_unknown1_0);
6848                 if (idx_0) {
6849                         ndr_print_netr_BinaryString(ndr, "unknown1", &r->unknown1[cntr_unknown1_0]);
6850                         free(idx_0);
6851                 }
6852         }
6853         ndr->depth--;
6854         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 4);
6855         ndr->depth++;
6856         for (cntr_unknown_0=0;cntr_unknown_0<4;cntr_unknown_0++) {
6857                 char *idx_0=NULL;
6858                 asprintf(&idx_0, "[%d]", cntr_unknown_0);
6859                 if (idx_0) {
6860                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
6861                         free(idx_0);
6862                 }
6863         }
6864         ndr->depth--;
6865         ndr->depth--;
6866 }
6867
6868 NTSTATUS ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
6869 {
6870         uint32_t cntr_trusts_1;
6871         uint32_t cntr_unknown_0;
6872         if (ndr_flags & NDR_SCALARS) {
6873                 NDR_CHECK(ndr_push_align(ndr, 4));
6874                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
6875                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6876                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
6877                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
6878                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6879                 }
6880         }
6881         if (ndr_flags & NDR_BUFFERS) {
6882                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
6883                 if (r->trusts) {
6884                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6885                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6886                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
6887                         }
6888                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6889                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
6890                         }
6891                 }
6892         }
6893         return NT_STATUS_OK;
6894 }
6895
6896 NTSTATUS ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
6897 {
6898         uint32_t _ptr_trusts;
6899         uint32_t cntr_trusts_1;
6900         TALLOC_CTX *_mem_save_trusts_0;
6901         TALLOC_CTX *_mem_save_trusts_1;
6902         uint32_t cntr_unknown_0;
6903         if (ndr_flags & NDR_SCALARS) {
6904                 NDR_CHECK(ndr_pull_align(ndr, 4));
6905                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
6906                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
6907                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
6908                 if (_ptr_trusts) {
6909                         NDR_PULL_ALLOC(ndr, r->trusts);
6910                 } else {
6911                         r->trusts = NULL;
6912                 }
6913                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
6914                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
6915                 }
6916         }
6917         if (ndr_flags & NDR_BUFFERS) {
6918                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
6919                 if (r->trusts) {
6920                         _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
6921                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
6922                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
6923                         NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
6924                         _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
6925                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
6926                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6927                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
6928                         }
6929                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6930                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
6931                         }
6932                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
6933                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
6934                 }
6935                 if (r->trusts) {
6936                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
6937                 }
6938         }
6939         return NT_STATUS_OK;
6940 }
6941
6942 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
6943 {
6944         uint32_t cntr_trusts_1;
6945         uint32_t cntr_unknown_0;
6946         ndr_print_struct(ndr, name, "netr_DomainInfo1");
6947         ndr->depth++;
6948         ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
6949         ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
6950         ndr_print_ptr(ndr, "trusts", r->trusts);
6951         ndr->depth++;
6952         if (r->trusts) {
6953                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", r->num_trusts);
6954                 ndr->depth++;
6955                 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
6956                         char *idx_1=NULL;
6957                         asprintf(&idx_1, "[%d]", cntr_trusts_1);
6958                         if (idx_1) {
6959                                 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
6960                                 free(idx_1);
6961                         }
6962                 }
6963                 ndr->depth--;
6964         }
6965         ndr->depth--;
6966         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 14);
6967         ndr->depth++;
6968         for (cntr_unknown_0=0;cntr_unknown_0<14;cntr_unknown_0++) {
6969                 char *idx_0=NULL;
6970                 asprintf(&idx_0, "[%d]", cntr_unknown_0);
6971                 if (idx_0) {
6972                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
6973                         free(idx_0);
6974                 }
6975         }
6976         ndr->depth--;
6977         ndr->depth--;
6978 }
6979
6980 NTSTATUS ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
6981 {
6982         if (ndr_flags & NDR_SCALARS) {
6983                 int level = ndr_push_get_switch_value(ndr, r);
6984                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6985                 switch (level) {
6986                         case 1:
6987                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6988                         break;
6989
6990                         case 2:
6991                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6992                         break;
6993
6994                         default:
6995                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6996                 }
6997         }
6998         if (ndr_flags & NDR_BUFFERS) {
6999                 int level = ndr_push_get_switch_value(ndr, r);
7000                 switch (level) {
7001                         case 1:
7002                                 if (r->info1) {
7003                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7004                                 }
7005                         break;
7006
7007                         case 2:
7008                                 if (r->info1) {
7009                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7010                                 }
7011                         break;
7012
7013                         default:
7014                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7015                 }
7016         }
7017         return NT_STATUS_OK;
7018 }
7019
7020 NTSTATUS ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
7021 {
7022         int level;
7023         uint32_t _level;
7024         TALLOC_CTX *_mem_save_info1_0;
7025         level = ndr_pull_get_switch_value(ndr, r);
7026         if (ndr_flags & NDR_SCALARS) {
7027                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7028                 if (_level != level) {
7029                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7030                 }
7031                 switch (level) {
7032                         case 1: {
7033                                 uint32_t _ptr_info1;
7034                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7035                                 if (_ptr_info1) {
7036                                         NDR_PULL_ALLOC(ndr, r->info1);
7037                                 } else {
7038                                         r->info1 = NULL;
7039                                 }
7040                         break; }
7041
7042                         case 2: {
7043                                 uint32_t _ptr_info1;
7044                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7045                                 if (_ptr_info1) {
7046                                         NDR_PULL_ALLOC(ndr, r->info1);
7047                                 } else {
7048                                         r->info1 = NULL;
7049                                 }
7050                         break; }
7051
7052                         default:
7053                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7054                 }
7055         }
7056         if (ndr_flags & NDR_BUFFERS) {
7057                 switch (level) {
7058                         case 1:
7059                                 if (r->info1) {
7060                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7061                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7062                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7063                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7064                                 }
7065                         break;
7066
7067                         case 2:
7068                                 if (r->info1) {
7069                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7070                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7071                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7072                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7073                                 }
7074                         break;
7075
7076                         default:
7077                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7078                 }
7079         }
7080         return NT_STATUS_OK;
7081 }
7082
7083 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
7084 {
7085         int level;
7086         level = ndr_print_get_switch_value(ndr, r);
7087         ndr_print_union(ndr, name, level, "netr_DomainInfo");
7088         switch (level) {
7089                 case 1:
7090                         ndr_print_ptr(ndr, "info1", r->info1);
7091                         ndr->depth++;
7092                         if (r->info1) {
7093                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7094                         }
7095                         ndr->depth--;
7096                 break;
7097
7098                 case 2:
7099                         ndr_print_ptr(ndr, "info1", r->info1);
7100                         ndr->depth++;
7101                         if (r->info1) {
7102                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7103                         }
7104                         ndr->depth--;
7105                 break;
7106
7107                 default:
7108                         ndr_print_bad_level(ndr, name, level);
7109         }
7110 }
7111
7112 NTSTATUS ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
7113 {
7114         {
7115                 uint32_t _flags_save_STRUCT = ndr->flags;
7116                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7117                 if (ndr_flags & NDR_SCALARS) {
7118                         NDR_CHECK(ndr_push_align(ndr, 4));
7119                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7120                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
7121                 }
7122                 if (ndr_flags & NDR_BUFFERS) {
7123                 }
7124                 ndr->flags = _flags_save_STRUCT;
7125         }
7126         return NT_STATUS_OK;
7127 }
7128
7129 NTSTATUS ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
7130 {
7131         {
7132                 uint32_t _flags_save_STRUCT = ndr->flags;
7133                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7134                 if (ndr_flags & NDR_SCALARS) {
7135                         NDR_CHECK(ndr_pull_align(ndr, 4));
7136                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7137                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7138                 }
7139                 if (ndr_flags & NDR_BUFFERS) {
7140                 }
7141                 ndr->flags = _flags_save_STRUCT;
7142         }
7143         return NT_STATUS_OK;
7144 }
7145
7146 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
7147 {
7148         ndr_print_struct(ndr, name, "netr_CryptPassword");
7149         {
7150                 uint32_t _flags_save_STRUCT = ndr->flags;
7151                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7152                 ndr->depth++;
7153                 ndr_print_array_uint8(ndr, "data", r->data, 512);
7154                 ndr_print_uint32(ndr, "length", r->length);
7155                 ndr->depth--;
7156                 ndr->flags = _flags_save_STRUCT;
7157         }
7158 }
7159
7160 NTSTATUS ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7161 {
7162         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7163         return NT_STATUS_OK;
7164 }
7165
7166 NTSTATUS ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7167 {
7168         uint32_t v;
7169         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7170         *r = v;
7171         return NT_STATUS_OK;
7172 }
7173
7174 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7175 {
7176         ndr_print_uint32(ndr, name, r);
7177         ndr->depth++;
7178         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7179         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7180         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7181         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7182         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7183         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7184         ndr->depth--;
7185 }
7186
7187 NTSTATUS ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
7188 {
7189         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7190         return NT_STATUS_OK;
7191 }
7192
7193 NTSTATUS ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
7194 {
7195         uint32_t v;
7196         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7197         *r = v;
7198         return NT_STATUS_OK;
7199 }
7200
7201 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
7202 {
7203         const char *val = NULL;
7204
7205         switch (r) {
7206                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7207                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
7208                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
7209                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
7210         }
7211         ndr_print_enum(ndr, name, "ENUM", val, r);
7212 }
7213
7214 NTSTATUS ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7215 {
7216         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7217         return NT_STATUS_OK;
7218 }
7219
7220 NTSTATUS ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7221 {
7222         uint32_t v;
7223         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7224         *r = v;
7225         return NT_STATUS_OK;
7226 }
7227
7228 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
7229 {
7230         ndr_print_uint32(ndr, name, r);
7231         ndr->depth++;
7232         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
7233         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
7234         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
7235         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
7236         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
7237         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
7238         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
7239         ndr->depth--;
7240 }
7241
7242 NTSTATUS ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
7243 {
7244         if (ndr_flags & NDR_SCALARS) {
7245                 NDR_CHECK(ndr_push_align(ndr, 4));
7246                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7247                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7248                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
7249                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7250                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
7251                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
7252                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7253                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7254         }
7255         if (ndr_flags & NDR_BUFFERS) {
7256                 if (r->netbios_name) {
7257                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7258                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7259                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7260                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7261                 }
7262                 if (r->dns_name) {
7263                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7264                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7265                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7266                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7267                 }
7268                 if (r->sid) {
7269                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7270                 }
7271                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
7272         }
7273         return NT_STATUS_OK;
7274 }
7275
7276 NTSTATUS ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
7277 {
7278         uint32_t _ptr_netbios_name;
7279         TALLOC_CTX *_mem_save_netbios_name_0;
7280         uint32_t _ptr_dns_name;
7281         TALLOC_CTX *_mem_save_dns_name_0;
7282         uint32_t _ptr_sid;
7283         TALLOC_CTX *_mem_save_sid_0;
7284         if (ndr_flags & NDR_SCALARS) {
7285                 NDR_CHECK(ndr_pull_align(ndr, 4));
7286                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7287                 if (_ptr_netbios_name) {
7288                         NDR_PULL_ALLOC(ndr, r->netbios_name);
7289                 } else {
7290                         r->netbios_name = NULL;
7291                 }
7292                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7293                 if (_ptr_dns_name) {
7294                         NDR_PULL_ALLOC(ndr, r->dns_name);
7295                 } else {
7296                         r->dns_name = NULL;
7297                 }
7298                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
7299                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7300                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
7301                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
7302                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7303                 if (_ptr_sid) {
7304                         NDR_PULL_ALLOC(ndr, r->sid);
7305                 } else {
7306                         r->sid = NULL;
7307                 }
7308                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7309         }
7310         if (ndr_flags & NDR_BUFFERS) {
7311                 if (r->netbios_name) {
7312                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7313                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7314                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7315                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7316                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7317                                 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));
7318                         }
7319                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7320                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7321                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7322                 }
7323                 if (r->dns_name) {
7324                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7325                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7326                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7327                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7328                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7329                                 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));
7330                         }
7331                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7332                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7333                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7334                 }
7335                 if (r->sid) {
7336                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7337                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7338                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7339                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7340                 }
7341                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
7342         }
7343         return NT_STATUS_OK;
7344 }
7345
7346 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
7347 {
7348         ndr_print_struct(ndr, name, "netr_DomainTrust");
7349         ndr->depth++;
7350         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7351         ndr->depth++;
7352         if (r->netbios_name) {
7353                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7354         }
7355         ndr->depth--;
7356         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7357         ndr->depth++;
7358         if (r->dns_name) {
7359                 ndr_print_string(ndr, "dns_name", r->dns_name);
7360         }
7361         ndr->depth--;
7362         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
7363         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7364         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
7365         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
7366         ndr_print_ptr(ndr, "sid", r->sid);
7367         ndr->depth++;
7368         if (r->sid) {
7369                 ndr_print_dom_sid2(ndr, "sid", r->sid);
7370         }
7371         ndr->depth--;
7372         ndr_print_GUID(ndr, "guid", &r->guid);
7373         ndr->depth--;
7374 }
7375
7376 NTSTATUS ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
7377 {
7378         if (flags & NDR_IN) {
7379                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7380                 if (r->in.server_name) {
7381                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7382                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7383                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7384                         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));
7385                 }
7386                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7387                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7388                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7389                 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));
7390                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7391                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7392                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7393                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7394         }
7395         if (flags & NDR_OUT) {
7396                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
7397                 if (r->out.info) {
7398                         NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
7399                 }
7400                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
7401         }
7402         return NT_STATUS_OK;
7403 }
7404
7405 NTSTATUS ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
7406 {
7407         uint32_t _ptr_server_name;
7408         uint32_t _ptr_info;
7409         TALLOC_CTX *_mem_save_server_name_0;
7410         TALLOC_CTX *_mem_save_info_0;
7411         if (flags & NDR_IN) {
7412                 ZERO_STRUCT(r->out);
7413
7414                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7415                 if (_ptr_server_name) {
7416                         NDR_PULL_ALLOC(ndr, r->in.server_name);
7417                 } else {
7418                         r->in.server_name = NULL;
7419                 }
7420                 if (r->in.server_name) {
7421                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7422                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
7423                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
7424                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
7425                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
7426                                 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));
7427                         }
7428                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
7429                         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));
7430                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
7431                 }
7432                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
7433                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
7434                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
7435                         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));
7436                 }
7437                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
7438                 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));
7439                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
7440                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
7441                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
7442                         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));
7443                 }
7444                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
7445                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
7446         }
7447         if (flags & NDR_OUT) {
7448                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
7449                 if (_ptr_info) {
7450                         NDR_PULL_ALLOC(ndr, r->out.info);
7451                 } else {
7452                         r->out.info = NULL;
7453                 }
7454                 if (r->out.info) {
7455                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7456                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
7457                         NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
7458                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
7459                 }
7460                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
7461         }
7462         return NT_STATUS_OK;
7463 }
7464
7465 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
7466 {
7467         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
7468         ndr->depth++;
7469         if (flags & NDR_SET_VALUES) {
7470                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7471         }
7472         if (flags & NDR_IN) {
7473                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
7474                 ndr->depth++;
7475                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
7476                 ndr->depth++;
7477                 if (r->in.server_name) {
7478                         ndr_print_string(ndr, "server_name", r->in.server_name);
7479                 }
7480                 ndr->depth--;
7481                 ndr_print_string(ndr, "account_name", r->in.account_name);
7482                 ndr_print_string(ndr, "workstation", r->in.workstation);
7483                 ndr->depth--;
7484         }
7485         if (flags & NDR_OUT) {
7486                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
7487                 ndr->depth++;
7488                 ndr_print_ptr(ndr, "info", r->out.info);
7489                 ndr->depth++;
7490                 if (r->out.info) {
7491                         ndr_print_netr_UasInfo(ndr, "info", r->out.info);
7492                 }
7493                 ndr->depth--;
7494                 ndr_print_WERROR(ndr, "result", r->out.result);
7495                 ndr->depth--;
7496         }
7497         ndr->depth--;
7498 }
7499
7500 NTSTATUS ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
7501 {
7502         if (flags & NDR_IN) {
7503                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7504                 if (r->in.server_name) {
7505                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7506                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7507                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7508                         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));
7509                 }
7510                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7511                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7512                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7513                 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));
7514                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7515                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7516                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7517                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7518         }
7519         if (flags & NDR_OUT) {
7520                 if (r->out.info == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
7521                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
7522                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
7523         }
7524         return NT_STATUS_OK;
7525 }
7526
7527 NTSTATUS ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
7528 {
7529         uint32_t _ptr_server_name;
7530         TALLOC_CTX *_mem_save_server_name_0;
7531         TALLOC_CTX *_mem_save_info_0;
7532         if (flags & NDR_IN) {
7533                 ZERO_STRUCT(r->out);
7534
7535                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7536                 if (_ptr_server_name) {
7537                         NDR_PULL_ALLOC(ndr, r->in.server_name);
7538                 } else {
7539                         r->in.server_name = NULL;
7540                 }
7541                 if (r->in.server_name) {
7542                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7543                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
7544                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
7545                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
7546                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
7547                                 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));
7548                         }
7549                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
7550                         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));
7551                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
7552                 }
7553                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
7554                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
7555                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
7556                         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));
7557                 }
7558                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
7559                 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));
7560                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
7561                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
7562                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
7563                         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));
7564                 }
7565                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
7566                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
7567                 NDR_PULL_ALLOC(ndr, r->out.info);
7568                 ZERO_STRUCTP(r->out.info);
7569         }
7570         if (flags & NDR_OUT) {
7571                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7572                         NDR_PULL_ALLOC(ndr, r->out.info);
7573                 }
7574                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7575                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
7576                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
7577                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
7578                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
7579         }
7580         return NT_STATUS_OK;
7581 }
7582
7583 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
7584 {
7585         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
7586         ndr->depth++;
7587         if (flags & NDR_SET_VALUES) {
7588                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7589         }
7590         if (flags & NDR_IN) {
7591                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
7592                 ndr->depth++;
7593                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
7594                 ndr->depth++;
7595                 if (r->in.server_name) {
7596                         ndr_print_string(ndr, "server_name", r->in.server_name);
7597                 }
7598                 ndr->depth--;
7599                 ndr_print_string(ndr, "account_name", r->in.account_name);
7600                 ndr_print_string(ndr, "workstation", r->in.workstation);
7601                 ndr->depth--;
7602         }
7603         if (flags & NDR_OUT) {
7604                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
7605                 ndr->depth++;
7606                 ndr_print_ptr(ndr, "info", r->out.info);
7607                 ndr->depth++;
7608                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
7609                 ndr->depth--;
7610                 ndr_print_WERROR(ndr, "result", r->out.result);
7611                 ndr->depth--;
7612         }
7613         ndr->depth--;
7614 }
7615
7616 NTSTATUS ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
7617 {
7618         if (flags & NDR_IN) {
7619                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7620                 if (r->in.server_name) {
7621                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7622                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7623                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7624                         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));
7625                 }
7626                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
7627                 if (r->in.computer_name) {
7628                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
7629                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7630                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
7631                         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));
7632                 }
7633                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
7634                 if (r->in.credential) {
7635                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
7636                 }
7637                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
7638                 if (r->in.return_authenticator) {
7639                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
7640                 }
7641                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
7642                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
7643                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
7644                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
7645         }
7646         if (flags & NDR_OUT) {
7647                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
7648                 if (r->out.return_authenticator) {
7649                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
7650                 }
7651                 if (r->out.validation == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
7652                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
7653                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
7654                 if (r->out.authoritative == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
7655                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
7656                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7657         }
7658         return NT_STATUS_OK;
7659 }
7660
7661 NTSTATUS ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
7662 {
7663         uint32_t _ptr_server_name;
7664         uint32_t _ptr_computer_name;
7665         uint32_t _ptr_credential;
7666         uint32_t _ptr_return_authenticator;
7667         TALLOC_CTX *_mem_save_server_name_0;
7668         TALLOC_CTX *_mem_save_computer_name_0;
7669         TALLOC_CTX *_mem_save_credential_0;
7670         TALLOC_CTX *_mem_save_return_authenticator_0;
7671         TALLOC_CTX *_mem_save_validation_0;
7672         TALLOC_CTX *_mem_save_authoritative_0;
7673         if (flags & NDR_IN) {
7674                 ZERO_STRUCT(r->out);
7675
7676                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7677                 if (_ptr_server_name) {
7678                         NDR_PULL_ALLOC(ndr, r->in.server_name);
7679                 } else {
7680                         r->in.server_name = NULL;
7681                 }
7682                 if (r->in.server_name) {
7683                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7684                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
7685                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
7686                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
7687                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
7688                                 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));
7689                         }
7690                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
7691                         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));
7692                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
7693                 }
7694                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
7695                 if (_ptr_computer_name) {
7696                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
7697                 } else {
7698                         r->in.computer_name = NULL;
7699                 }
7700                 if (r->in.computer_name) {
7701                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7702                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
7703                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
7704                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
7705                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
7706                                 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));
7707                         }
7708                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
7709                         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));
7710                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
7711                 }
7712                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
7713                 if (_ptr_credential) {
7714                         NDR_PULL_ALLOC(ndr, r->in.credential);
7715                 } else {
7716                         r->in.credential = NULL;
7717                 }
7718                 if (r->in.credential) {
7719                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
7720                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
7721                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
7722                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
7723                 }
7724                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
7725                 if (_ptr_return_authenticator) {
7726                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
7727                 } else {
7728                         r->in.return_authenticator = NULL;
7729                 }
7730                 if (r->in.return_authenticator) {
7731                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
7732                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
7733                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
7734                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
7735                 }
7736                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
7737                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
7738                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
7739                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
7740                 NDR_PULL_ALLOC(ndr, r->out.validation);
7741                 ZERO_STRUCTP(r->out.validation);
7742                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
7743                 ZERO_STRUCTP(r->out.authoritative);
7744         }
7745         if (flags & NDR_OUT) {
7746                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
7747                 if (_ptr_return_authenticator) {
7748                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
7749                 } else {
7750                         r->out.return_authenticator = NULL;
7751                 }
7752                 if (r->out.return_authenticator) {
7753                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
7754                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
7755                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
7756                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
7757                 }
7758                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7759                         NDR_PULL_ALLOC(ndr, r->out.validation);
7760                 }
7761                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
7762                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
7763                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
7764                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
7765                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
7766                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7767                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
7768                 }
7769                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
7770                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
7771                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
7772                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
7773                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7774         }
7775         return NT_STATUS_OK;
7776 }
7777
7778 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
7779 {
7780         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
7781         ndr->depth++;
7782         if (flags & NDR_SET_VALUES) {
7783                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7784         }
7785         if (flags & NDR_IN) {
7786                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
7787                 ndr->depth++;
7788                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
7789                 ndr->depth++;
7790                 if (r->in.server_name) {
7791                         ndr_print_string(ndr, "server_name", r->in.server_name);
7792                 }
7793                 ndr->depth--;
7794                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
7795                 ndr->depth++;
7796                 if (r->in.computer_name) {
7797                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
7798                 }
7799                 ndr->depth--;
7800                 ndr_print_ptr(ndr, "credential", r->in.credential);
7801                 ndr->depth++;
7802                 if (r->in.credential) {
7803                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
7804                 }
7805                 ndr->depth--;
7806                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
7807                 ndr->depth++;
7808                 if (r->in.return_authenticator) {
7809                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
7810                 }
7811                 ndr->depth--;
7812                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
7813                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
7814                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
7815                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
7816                 ndr->depth--;
7817         }
7818         if (flags & NDR_OUT) {
7819                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
7820                 ndr->depth++;
7821                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
7822                 ndr->depth++;
7823                 if (r->out.return_authenticator) {
7824                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
7825                 }
7826                 ndr->depth--;
7827                 ndr_print_ptr(ndr, "validation", r->out.validation);
7828                 ndr->depth++;
7829                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
7830                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
7831                 ndr->depth--;
7832                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
7833                 ndr->depth++;
7834                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
7835                 ndr->depth--;
7836                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
7837                 ndr->depth--;
7838         }
7839         ndr->depth--;
7840 }
7841
7842 NTSTATUS ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
7843 {
7844         if (flags & NDR_IN) {
7845                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7846                 if (r->in.server_name) {
7847                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7848                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7849                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7850                         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));
7851                 }
7852                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
7853                 if (r->in.computer_name) {
7854                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
7855                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7856                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
7857                         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));
7858                 }
7859                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
7860                 if (r->in.credential) {
7861                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
7862                 }
7863                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
7864                 if (r->in.return_authenticator) {
7865                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
7866                 }
7867                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
7868                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
7869                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
7870         }
7871         if (flags & NDR_OUT) {
7872                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
7873                 if (r->out.return_authenticator) {
7874                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
7875                 }
7876                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7877         }
7878         return NT_STATUS_OK;
7879 }
7880
7881 NTSTATUS ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
7882 {
7883         uint32_t _ptr_server_name;
7884         uint32_t _ptr_computer_name;
7885         uint32_t _ptr_credential;
7886         uint32_t _ptr_return_authenticator;
7887         TALLOC_CTX *_mem_save_server_name_0;
7888         TALLOC_CTX *_mem_save_computer_name_0;
7889         TALLOC_CTX *_mem_save_credential_0;
7890         TALLOC_CTX *_mem_save_return_authenticator_0;
7891         if (flags & NDR_IN) {
7892                 ZERO_STRUCT(r->out);
7893
7894                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7895                 if (_ptr_server_name) {
7896                         NDR_PULL_ALLOC(ndr, r->in.server_name);
7897                 } else {
7898                         r->in.server_name = NULL;
7899                 }
7900                 if (r->in.server_name) {
7901                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7902                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
7903                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
7904                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
7905                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
7906                                 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));
7907                         }
7908                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
7909                         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));
7910                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
7911                 }
7912                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
7913                 if (_ptr_computer_name) {
7914                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
7915                 } else {
7916                         r->in.computer_name = NULL;
7917                 }
7918                 if (r->in.computer_name) {
7919                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7920                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
7921                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
7922                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
7923                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
7924                                 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));
7925                         }
7926                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
7927                         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));
7928                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
7929                 }
7930                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
7931                 if (_ptr_credential) {
7932                         NDR_PULL_ALLOC(ndr, r->in.credential);
7933                 } else {
7934                         r->in.credential = NULL;
7935                 }
7936                 if (r->in.credential) {
7937                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
7938                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
7939                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
7940                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
7941                 }
7942                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
7943                 if (_ptr_return_authenticator) {
7944                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
7945                 } else {
7946                         r->in.return_authenticator = NULL;
7947                 }
7948                 if (r->in.return_authenticator) {
7949                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
7950                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
7951                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
7952                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
7953                 }
7954                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
7955                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
7956                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
7957         }
7958         if (flags & NDR_OUT) {
7959                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
7960                 if (_ptr_return_authenticator) {
7961                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
7962                 } else {
7963                         r->out.return_authenticator = NULL;
7964                 }
7965                 if (r->out.return_authenticator) {
7966                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
7967                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
7968                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
7969                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
7970                 }
7971                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7972         }
7973         return NT_STATUS_OK;
7974 }
7975
7976 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
7977 {
7978         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
7979         ndr->depth++;
7980         if (flags & NDR_SET_VALUES) {
7981                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7982         }
7983         if (flags & NDR_IN) {
7984                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
7985                 ndr->depth++;
7986                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
7987                 ndr->depth++;
7988                 if (r->in.server_name) {
7989                         ndr_print_string(ndr, "server_name", r->in.server_name);
7990                 }
7991                 ndr->depth--;
7992                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
7993                 ndr->depth++;
7994                 if (r->in.computer_name) {
7995                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
7996                 }
7997                 ndr->depth--;
7998                 ndr_print_ptr(ndr, "credential", r->in.credential);
7999                 ndr->depth++;
8000                 if (r->in.credential) {
8001                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8002                 }
8003                 ndr->depth--;
8004                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8005                 ndr->depth++;
8006                 if (r->in.return_authenticator) {
8007                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8008                 }
8009                 ndr->depth--;
8010                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
8011                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8012                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
8013                 ndr->depth--;
8014         }
8015         if (flags & NDR_OUT) {
8016                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
8017                 ndr->depth++;
8018                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8019                 ndr->depth++;
8020                 if (r->out.return_authenticator) {
8021                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8022                 }
8023                 ndr->depth--;
8024                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8025                 ndr->depth--;
8026         }
8027         ndr->depth--;
8028 }
8029
8030 NTSTATUS ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
8031 {
8032         if (flags & NDR_IN) {
8033                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8034                 if (r->in.server_name) {
8035                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8036                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8037                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8038                         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));
8039                 }
8040                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8041                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8042                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8043                 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));
8044                 if (r->in.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8045                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8046         }
8047         if (flags & NDR_OUT) {
8048                 if (r->out.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8049                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8050                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8051         }
8052         return NT_STATUS_OK;
8053 }
8054
8055 NTSTATUS ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
8056 {
8057         uint32_t _ptr_server_name;
8058         TALLOC_CTX *_mem_save_server_name_0;
8059         TALLOC_CTX *_mem_save_credentials_0;
8060         if (flags & NDR_IN) {
8061                 ZERO_STRUCT(r->out);
8062
8063                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8064                 if (_ptr_server_name) {
8065                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8066                 } else {
8067                         r->in.server_name = NULL;
8068                 }
8069                 if (r->in.server_name) {
8070                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8071                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8072                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8073                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8074                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8075                                 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));
8076                         }
8077                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8078                         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));
8079                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8080                 }
8081                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8082                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8083                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8084                         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));
8085                 }
8086                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8087                 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));
8088                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8089                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8090                 }
8091                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8092                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8093                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8094                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8095                 NDR_PULL_ALLOC(ndr, r->out.credentials);
8096                 *r->out.credentials = *r->in.credentials;
8097         }
8098         if (flags & NDR_OUT) {
8099                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8100                         NDR_PULL_ALLOC(ndr, r->out.credentials);
8101                 }
8102                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8103                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
8104                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8105                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8106                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8107         }
8108         return NT_STATUS_OK;
8109 }
8110
8111 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
8112 {
8113         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
8114         ndr->depth++;
8115         if (flags & NDR_SET_VALUES) {
8116                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8117         }
8118         if (flags & NDR_IN) {
8119                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
8120                 ndr->depth++;
8121                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8122                 ndr->depth++;
8123                 if (r->in.server_name) {
8124                         ndr_print_string(ndr, "server_name", r->in.server_name);
8125                 }
8126                 ndr->depth--;
8127                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8128                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8129                 ndr->depth++;
8130                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8131                 ndr->depth--;
8132                 ndr->depth--;
8133         }
8134         if (flags & NDR_OUT) {
8135                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
8136                 ndr->depth++;
8137                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
8138                 ndr->depth++;
8139                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
8140                 ndr->depth--;
8141                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8142                 ndr->depth--;
8143         }
8144         ndr->depth--;
8145 }
8146
8147 NTSTATUS ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
8148 {
8149         if (flags & NDR_IN) {
8150                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8151                 if (r->in.server_name) {
8152                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8153                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8154                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8155                         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));
8156                 }
8157                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8158                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8159                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8160                 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));
8161                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8162                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8163                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8164                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8165                 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));
8166                 if (r->in.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8167                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8168         }
8169         if (flags & NDR_OUT) {
8170                 if (r->out.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8171                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8172                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8173         }
8174         return NT_STATUS_OK;
8175 }
8176
8177 NTSTATUS ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
8178 {
8179         uint32_t _ptr_server_name;
8180         TALLOC_CTX *_mem_save_server_name_0;
8181         TALLOC_CTX *_mem_save_credentials_0;
8182         if (flags & NDR_IN) {
8183                 ZERO_STRUCT(r->out);
8184
8185                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8186                 if (_ptr_server_name) {
8187                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8188                 } else {
8189                         r->in.server_name = NULL;
8190                 }
8191                 if (r->in.server_name) {
8192                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8193                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8194                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8195                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8196                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8197                                 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));
8198                         }
8199                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8200                         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));
8201                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8202                 }
8203                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8204                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8205                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8206                         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));
8207                 }
8208                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8209                 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));
8210                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8211                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8212                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8213                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8214                         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));
8215                 }
8216                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8217                 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));
8218                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8219                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8220                 }
8221                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8222                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8223                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8224                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8225                 NDR_PULL_ALLOC(ndr, r->out.credentials);
8226                 *r->out.credentials = *r->in.credentials;
8227         }
8228         if (flags & NDR_OUT) {
8229                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8230                         NDR_PULL_ALLOC(ndr, r->out.credentials);
8231                 }
8232                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8233                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
8234                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8235                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8236                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8237         }
8238         return NT_STATUS_OK;
8239 }
8240
8241 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
8242 {
8243         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
8244         ndr->depth++;
8245         if (flags & NDR_SET_VALUES) {
8246                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8247         }
8248         if (flags & NDR_IN) {
8249                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
8250                 ndr->depth++;
8251                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8252                 ndr->depth++;
8253                 if (r->in.server_name) {
8254                         ndr_print_string(ndr, "server_name", r->in.server_name);
8255                 }
8256                 ndr->depth--;
8257                 ndr_print_string(ndr, "account_name", r->in.account_name);
8258                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8259                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8260                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8261                 ndr->depth++;
8262                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8263                 ndr->depth--;
8264                 ndr->depth--;
8265         }
8266         if (flags & NDR_OUT) {
8267                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
8268                 ndr->depth++;
8269                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
8270                 ndr->depth++;
8271                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
8272                 ndr->depth--;
8273                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8274                 ndr->depth--;
8275         }
8276         ndr->depth--;
8277 }
8278
8279 NTSTATUS ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
8280 {
8281         if (flags & NDR_IN) {
8282                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8283                 if (r->in.server_name) {
8284                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8285                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8286                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8287                         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));
8288                 }
8289                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8290                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8291                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8292                 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));
8293                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8294                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8295                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8296                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8297                 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));
8298                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8299                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.new_password));
8300         }
8301         if (flags & NDR_OUT) {
8302                 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8303                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8304                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8305         }
8306         return NT_STATUS_OK;
8307 }
8308
8309 NTSTATUS ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
8310 {
8311         uint32_t _ptr_server_name;
8312         TALLOC_CTX *_mem_save_server_name_0;
8313         TALLOC_CTX *_mem_save_return_authenticator_0;
8314         if (flags & NDR_IN) {
8315                 ZERO_STRUCT(r->out);
8316
8317                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8318                 if (_ptr_server_name) {
8319                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8320                 } else {
8321                         r->in.server_name = NULL;
8322                 }
8323                 if (r->in.server_name) {
8324                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8325                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8326                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8327                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8328                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8329                                 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));
8330                         }
8331                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8332                         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));
8333                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8334                 }
8335                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8336                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8337                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8338                         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));
8339                 }
8340                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8341                 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));
8342                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8343                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8344                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8345                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8346                         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));
8347                 }
8348                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8349                 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));
8350                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8351                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.new_password));
8352                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8353                 ZERO_STRUCTP(r->out.return_authenticator);
8354         }
8355         if (flags & NDR_OUT) {
8356                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8357                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8358                 }
8359                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8360                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8361                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8362                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8363                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8364         }
8365         return NT_STATUS_OK;
8366 }
8367
8368 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
8369 {
8370         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
8371         ndr->depth++;
8372         if (flags & NDR_SET_VALUES) {
8373                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8374         }
8375         if (flags & NDR_IN) {
8376                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
8377                 ndr->depth++;
8378                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8379                 ndr->depth++;
8380                 if (r->in.server_name) {
8381                         ndr_print_string(ndr, "server_name", r->in.server_name);
8382                 }
8383                 ndr->depth--;
8384                 ndr_print_string(ndr, "account_name", r->in.account_name);
8385                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8386                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8387                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
8388                 ndr_print_samr_Password(ndr, "new_password", &r->in.new_password);
8389                 ndr->depth--;
8390         }
8391         if (flags & NDR_OUT) {
8392                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
8393                 ndr->depth++;
8394                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8395                 ndr->depth++;
8396                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8397                 ndr->depth--;
8398                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8399                 ndr->depth--;
8400         }
8401         ndr->depth--;
8402 }
8403
8404 NTSTATUS ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
8405 {
8406         if (flags & NDR_IN) {
8407                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8408                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8409                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8410                 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));
8411                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8412                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8413                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8414                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8415                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8416                 if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8417                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8418                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
8419                 if (r->in.sequence_num == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8420                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
8421                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
8422         }
8423         if (flags & NDR_OUT) {
8424                 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8425                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8426                 if (r->out.sequence_num == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8427                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
8428                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.delta_enum_array));
8429                 if (r->out.delta_enum_array) {
8430                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
8431                 }
8432                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8433         }
8434         return NT_STATUS_OK;
8435 }
8436
8437 NTSTATUS ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
8438 {
8439         uint32_t _ptr_delta_enum_array;
8440         TALLOC_CTX *_mem_save_return_authenticator_0;
8441         TALLOC_CTX *_mem_save_sequence_num_0;
8442         TALLOC_CTX *_mem_save_delta_enum_array_0;
8443         if (flags & NDR_IN) {
8444                 ZERO_STRUCT(r->out);
8445
8446                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
8447                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
8448                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
8449                         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));
8450                 }
8451                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
8452                 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));
8453                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
8454                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
8455                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
8456                         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));
8457                 }
8458                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
8459                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
8460                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8461                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8462                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8463                 }
8464                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8465                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8466                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8467                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8468                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
8469                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8470                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
8471                 }
8472                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
8473                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
8474                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
8475                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
8476                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
8477                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8478                 *r->out.return_authenticator = *r->in.return_authenticator;
8479                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
8480                 *r->out.sequence_num = *r->in.sequence_num;
8481         }
8482         if (flags & NDR_OUT) {
8483                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8484                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8485                 }
8486                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8487                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8488                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8489                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8490                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8491                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
8492                 }
8493                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
8494                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
8495                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
8496                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
8497                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
8498                 if (_ptr_delta_enum_array) {
8499                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
8500                 } else {
8501                         r->out.delta_enum_array = NULL;
8502                 }
8503                 if (r->out.delta_enum_array) {
8504                         _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8505                         NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, 0);
8506                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
8507                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, 0);
8508                 }
8509                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8510         }
8511         return NT_STATUS_OK;
8512 }
8513
8514 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
8515 {
8516         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
8517         ndr->depth++;
8518         if (flags & NDR_SET_VALUES) {
8519                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8520         }
8521         if (flags & NDR_IN) {
8522                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
8523                 ndr->depth++;
8524                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
8525                 ndr_print_string(ndr, "computername", r->in.computername);
8526                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
8527                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8528                 ndr->depth++;
8529                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8530                 ndr->depth--;
8531                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
8532                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
8533                 ndr->depth++;
8534                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
8535                 ndr->depth--;
8536                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
8537                 ndr->depth--;
8538         }
8539         if (flags & NDR_OUT) {
8540                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
8541                 ndr->depth++;
8542                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8543                 ndr->depth++;
8544                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8545                 ndr->depth--;
8546                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
8547                 ndr->depth++;
8548                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
8549                 ndr->depth--;
8550                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
8551                 ndr->depth++;
8552                 if (r->out.delta_enum_array) {
8553                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
8554                 }
8555                 ndr->depth--;
8556                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8557                 ndr->depth--;
8558         }
8559         ndr->depth--;
8560 }
8561
8562 NTSTATUS ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
8563 {
8564         if (flags & NDR_IN) {
8565                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8566                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8567                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8568                 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));
8569                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8570                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8571                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8572                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8573                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8574                 if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8575                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8576                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
8577                 if (r->in.sync_context == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8578                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
8579                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
8580         }
8581         if (flags & NDR_OUT) {
8582                 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8583                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8584                 if (r->out.sync_context == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8585                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
8586                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.delta_enum_array));
8587                 if (r->out.delta_enum_array) {
8588                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
8589                 }
8590                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8591         }
8592         return NT_STATUS_OK;
8593 }
8594
8595 NTSTATUS ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
8596 {
8597         uint32_t _ptr_delta_enum_array;
8598         TALLOC_CTX *_mem_save_return_authenticator_0;
8599         TALLOC_CTX *_mem_save_sync_context_0;
8600         TALLOC_CTX *_mem_save_delta_enum_array_0;
8601         if (flags & NDR_IN) {
8602                 ZERO_STRUCT(r->out);
8603
8604                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
8605                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
8606                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
8607                         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));
8608                 }
8609                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
8610                 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));
8611                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
8612                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
8613                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
8614                         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));
8615                 }
8616                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
8617                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
8618                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8619                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8620                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8621                 }
8622                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8623                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8624                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8625                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8626                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
8627                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8628                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
8629                 }
8630                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
8631                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
8632                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
8633                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
8634                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
8635                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8636                 *r->out.return_authenticator = *r->in.return_authenticator;
8637                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
8638                 *r->out.sync_context = *r->in.sync_context;
8639         }
8640         if (flags & NDR_OUT) {
8641                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8642                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8643                 }
8644                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8645                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8646                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8647                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8648                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8649                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
8650                 }
8651                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
8652                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
8653                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
8654                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
8655                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
8656                 if (_ptr_delta_enum_array) {
8657                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
8658                 } else {
8659                         r->out.delta_enum_array = NULL;
8660                 }
8661                 if (r->out.delta_enum_array) {
8662                         _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8663                         NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, 0);
8664                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
8665                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, 0);
8666                 }
8667                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8668         }
8669         return NT_STATUS_OK;
8670 }
8671
8672 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
8673 {
8674         ndr_print_struct(ndr, name, "netr_DatabaseSync");
8675         ndr->depth++;
8676         if (flags & NDR_SET_VALUES) {
8677                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8678         }
8679         if (flags & NDR_IN) {
8680                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
8681                 ndr->depth++;
8682                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
8683                 ndr_print_string(ndr, "computername", r->in.computername);
8684                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
8685                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8686                 ndr->depth++;
8687                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8688                 ndr->depth--;
8689                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
8690                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
8691                 ndr->depth++;
8692                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
8693                 ndr->depth--;
8694                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
8695                 ndr->depth--;
8696         }
8697         if (flags & NDR_OUT) {
8698                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
8699                 ndr->depth++;
8700                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8701                 ndr->depth++;
8702                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8703                 ndr->depth--;
8704                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
8705                 ndr->depth++;
8706                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
8707                 ndr->depth--;
8708                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
8709                 ndr->depth++;
8710                 if (r->out.delta_enum_array) {
8711                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
8712                 }
8713                 ndr->depth--;
8714                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8715                 ndr->depth--;
8716         }
8717         ndr->depth--;
8718 }
8719
8720 NTSTATUS ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
8721 {
8722         if (flags & NDR_IN) {
8723                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
8724                 if (r->in.logon_server) {
8725                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8726                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8727                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8728                         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));
8729                 }
8730                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8731                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8732                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8733                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8734                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8735                 if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8736                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8737                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
8738                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
8739                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
8740                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
8741         }
8742         if (flags & NDR_OUT) {
8743                 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8744                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8745                 if (r->out.buffer == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8746                 {
8747                         struct ndr_push *_ndr_buffer;
8748                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
8749                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
8750                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
8751                 }
8752                 if (r->out.count_returned == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8753                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
8754                 if (r->out.total_entries == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8755                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
8756                 if (r->out.recordid == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8757                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
8758                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8759         }
8760         return NT_STATUS_OK;
8761 }
8762
8763 NTSTATUS ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
8764 {
8765         uint32_t _ptr_logon_server;
8766         TALLOC_CTX *_mem_save_logon_server_0;
8767         TALLOC_CTX *_mem_save_return_authenticator_0;
8768         TALLOC_CTX *_mem_save_buffer_0;
8769         TALLOC_CTX *_mem_save_count_returned_0;
8770         TALLOC_CTX *_mem_save_total_entries_0;
8771         TALLOC_CTX *_mem_save_recordid_0;
8772         if (flags & NDR_IN) {
8773                 ZERO_STRUCT(r->out);
8774
8775                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
8776                 if (_ptr_logon_server) {
8777                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
8778                 } else {
8779                         r->in.logon_server = NULL;
8780                 }
8781                 if (r->in.logon_server) {
8782                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
8783                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
8784                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
8785                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
8786                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
8787                                 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));
8788                         }
8789                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
8790                         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));
8791                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
8792                 }
8793                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
8794                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
8795                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
8796                         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));
8797                 }
8798                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
8799                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
8800                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8801                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8802                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8803                 }
8804                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8805                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8806                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8807                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8808                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
8809                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
8810                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
8811                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
8812                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8813                 *r->out.return_authenticator = *r->in.return_authenticator;
8814                 NDR_PULL_ALLOC(ndr, r->out.buffer);
8815                 ZERO_STRUCTP(r->out.buffer);
8816                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
8817                 ZERO_STRUCTP(r->out.count_returned);
8818                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
8819                 ZERO_STRUCTP(r->out.total_entries);
8820                 NDR_PULL_ALLOC(ndr, r->out.recordid);
8821                 ZERO_STRUCTP(r->out.recordid);
8822         }
8823         if (flags & NDR_OUT) {
8824                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8825                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8826                 }
8827                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8828                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8829                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8830                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8831                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8832                         NDR_PULL_ALLOC(ndr, r->out.buffer);
8833                 }
8834                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
8835                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
8836                 {
8837                         struct ndr_pull *_ndr_buffer;
8838                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
8839                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
8840                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
8841                 }
8842                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
8843                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8844                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
8845                 }
8846                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
8847                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
8848                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
8849                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
8850                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8851                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
8852                 }
8853                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
8854                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
8855                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
8856                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
8857                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8858                         NDR_PULL_ALLOC(ndr, r->out.recordid);
8859                 }
8860                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8861                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
8862                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
8863                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
8864                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8865         }
8866         return NT_STATUS_OK;
8867 }
8868
8869 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
8870 {
8871         ndr_print_struct(ndr, name, "netr_AccountDeltas");
8872         ndr->depth++;
8873         if (flags & NDR_SET_VALUES) {
8874                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8875         }
8876         if (flags & NDR_IN) {
8877                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
8878                 ndr->depth++;
8879                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
8880                 ndr->depth++;
8881                 if (r->in.logon_server) {
8882                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
8883                 }
8884                 ndr->depth--;
8885                 ndr_print_string(ndr, "computername", r->in.computername);
8886                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
8887                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8888                 ndr->depth++;
8889                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8890                 ndr->depth--;
8891                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
8892                 ndr_print_uint32(ndr, "count", r->in.count);
8893                 ndr_print_uint32(ndr, "level", r->in.level);
8894                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
8895                 ndr->depth--;
8896         }
8897         if (flags & NDR_OUT) {
8898                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
8899                 ndr->depth++;
8900                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8901                 ndr->depth++;
8902                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8903                 ndr->depth--;
8904                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
8905                 ndr->depth++;
8906                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
8907                 ndr->depth--;
8908                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
8909                 ndr->depth++;
8910                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
8911                 ndr->depth--;
8912                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
8913                 ndr->depth++;
8914                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
8915                 ndr->depth--;
8916                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
8917                 ndr->depth++;
8918                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
8919                 ndr->depth--;
8920                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8921                 ndr->depth--;
8922         }
8923         ndr->depth--;
8924 }
8925
8926 NTSTATUS ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
8927 {
8928         if (flags & NDR_IN) {
8929                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
8930                 if (r->in.logon_server) {
8931                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8932                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8933                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8934                         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));
8935                 }
8936                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8937                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8938                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8939                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8940                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8941                 if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8942                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8943                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
8944                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
8945                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
8946                 if (r->in.recordid == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8947                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
8948         }
8949         if (flags & NDR_OUT) {
8950                 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8951                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8952                 if (r->out.buffer == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8953                 {
8954                         struct ndr_push *_ndr_buffer;
8955                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
8956                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
8957                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
8958                 }
8959                 if (r->out.count_returned == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8960                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
8961                 if (r->out.total_entries == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8962                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
8963                 if (r->out.next_reference == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8964                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
8965                 if (r->out.recordid == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8966                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
8967                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8968         }
8969         return NT_STATUS_OK;
8970 }
8971
8972 NTSTATUS ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
8973 {
8974         uint32_t _ptr_logon_server;
8975         TALLOC_CTX *_mem_save_logon_server_0;
8976         TALLOC_CTX *_mem_save_return_authenticator_0;
8977         TALLOC_CTX *_mem_save_buffer_0;
8978         TALLOC_CTX *_mem_save_count_returned_0;
8979         TALLOC_CTX *_mem_save_total_entries_0;
8980         TALLOC_CTX *_mem_save_next_reference_0;
8981         TALLOC_CTX *_mem_save_recordid_0;
8982         if (flags & NDR_IN) {
8983                 ZERO_STRUCT(r->out);
8984
8985                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
8986                 if (_ptr_logon_server) {
8987                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
8988                 } else {
8989                         r->in.logon_server = NULL;
8990                 }
8991                 if (r->in.logon_server) {
8992                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
8993                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
8994                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
8995                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
8996                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
8997                                 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));
8998                         }
8999                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9000                         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));
9001                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9002                 }
9003                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9004                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9005                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9006                         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));
9007                 }
9008                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9009                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9010                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9011                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9012                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9013                 }
9014                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9015                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9016                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9017                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9018                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
9019                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9020                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9021                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9022                         NDR_PULL_ALLOC(ndr, r->in.recordid);
9023                 }
9024                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9025                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
9026                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9027                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9028                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9029                 *r->out.return_authenticator = *r->in.return_authenticator;
9030                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9031                 ZERO_STRUCTP(r->out.buffer);
9032                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9033                 ZERO_STRUCTP(r->out.count_returned);
9034                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9035                 ZERO_STRUCTP(r->out.total_entries);
9036                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
9037                 ZERO_STRUCTP(r->out.next_reference);
9038                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9039                 *r->out.recordid = *r->in.recordid;
9040         }
9041         if (flags & NDR_OUT) {
9042                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9043                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9044                 }
9045                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9046                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9047                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9048                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9049                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9050                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9051                 }
9052                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9053                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9054                 {
9055                         struct ndr_pull *_ndr_buffer;
9056                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9057                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9058                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9059                 }
9060                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9061                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9062                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9063                 }
9064                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9065                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9066                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9067                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9068                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9069                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9070                 }
9071                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9072                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9073                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9074                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9075                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9076                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
9077                 }
9078                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
9079                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
9080                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
9081                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
9082                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9083                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9084                 }
9085                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9086                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9087                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9088                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9089                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9090         }
9091         return NT_STATUS_OK;
9092 }
9093
9094 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
9095 {
9096         ndr_print_struct(ndr, name, "netr_AccountSync");
9097         ndr->depth++;
9098         if (flags & NDR_SET_VALUES) {
9099                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9100         }
9101         if (flags & NDR_IN) {
9102                 ndr_print_struct(ndr, "in", "netr_AccountSync");
9103                 ndr->depth++;
9104                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9105                 ndr->depth++;
9106                 if (r->in.logon_server) {
9107                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9108                 }
9109                 ndr->depth--;
9110                 ndr_print_string(ndr, "computername", r->in.computername);
9111                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9112                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9113                 ndr->depth++;
9114                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9115                 ndr->depth--;
9116                 ndr_print_uint32(ndr, "reference", r->in.reference);
9117                 ndr_print_uint32(ndr, "level", r->in.level);
9118                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9119                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
9120                 ndr->depth++;
9121                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
9122                 ndr->depth--;
9123                 ndr->depth--;
9124         }
9125         if (flags & NDR_OUT) {
9126                 ndr_print_struct(ndr, "out", "netr_AccountSync");
9127                 ndr->depth++;
9128                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9129                 ndr->depth++;
9130                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9131                 ndr->depth--;
9132                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9133                 ndr->depth++;
9134                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9135                 ndr->depth--;
9136                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9137                 ndr->depth++;
9138                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9139                 ndr->depth--;
9140                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9141                 ndr->depth++;
9142                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9143                 ndr->depth--;
9144                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
9145                 ndr->depth++;
9146                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
9147                 ndr->depth--;
9148                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9149                 ndr->depth++;
9150                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9151                 ndr->depth--;
9152                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9153                 ndr->depth--;
9154         }
9155         ndr->depth--;
9156 }
9157
9158 NTSTATUS ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
9159 {
9160         if (flags & NDR_IN) {
9161                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9162                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9163                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9164                 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));
9165                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
9166                 if (r->in.domainname) {
9167                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9168                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9169                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9170                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9171                 }
9172         }
9173         if (flags & NDR_OUT) {
9174                 if (r->out.dcname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9175                 if (*r->out.dcname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9176                 NDR_CHECK(ndr_push_ref_ptr(ndr));
9177                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9178                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9179                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9180                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9181                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9182         }
9183         return NT_STATUS_OK;
9184 }
9185
9186 NTSTATUS ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
9187 {
9188         uint32_t _ptr_domainname;
9189         uint32_t _ptr_dcname;
9190         TALLOC_CTX *_mem_save_domainname_0;
9191         TALLOC_CTX *_mem_save_dcname_0;
9192         if (flags & NDR_IN) {
9193                 ZERO_STRUCT(r->out);
9194
9195                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9196                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9197                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9198                         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));
9199                 }
9200                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9201                 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));
9202                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
9203                 if (_ptr_domainname) {
9204                         NDR_PULL_ALLOC(ndr, r->in.domainname);
9205                 } else {
9206                         r->in.domainname = NULL;
9207                 }
9208                 if (r->in.domainname) {
9209                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9210                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
9211                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
9212                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
9213                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
9214                                 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));
9215                         }
9216                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
9217                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
9218                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
9219                 }
9220                 NDR_PULL_ALLOC(ndr, r->out.dcname);
9221                 ZERO_STRUCTP(r->out.dcname);
9222         }
9223         if (flags & NDR_OUT) {
9224                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9225                         NDR_PULL_ALLOC(ndr, r->out.dcname);
9226                 }
9227                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9228                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
9229                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_dcname));
9230                 NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
9231                 NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
9232                 if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
9233                         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));
9234                 }
9235                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
9236                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
9237                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
9238                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9239         }
9240         return NT_STATUS_OK;
9241 }
9242
9243 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
9244 {
9245         ndr_print_struct(ndr, name, "netr_GetDcName");
9246         ndr->depth++;
9247         if (flags & NDR_SET_VALUES) {
9248                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9249         }
9250         if (flags & NDR_IN) {
9251                 ndr_print_struct(ndr, "in", "netr_GetDcName");
9252                 ndr->depth++;
9253                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9254                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
9255                 ndr->depth++;
9256                 if (r->in.domainname) {
9257                         ndr_print_string(ndr, "domainname", r->in.domainname);
9258                 }
9259                 ndr->depth--;
9260                 ndr->depth--;
9261         }
9262         if (flags & NDR_OUT) {
9263                 ndr_print_struct(ndr, "out", "netr_GetDcName");
9264                 ndr->depth++;
9265                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
9266                 ndr->depth++;
9267                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
9268                 ndr->depth++;
9269                 ndr_print_string(ndr, "dcname", *r->out.dcname);
9270                 ndr->depth--;
9271                 ndr->depth--;
9272                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9273                 ndr->depth--;
9274         }
9275         ndr->depth--;
9276 }
9277
9278 NTSTATUS ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
9279 {
9280         if (flags & NDR_IN) {
9281                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9282                 if (r->in.logon_server) {
9283                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9284                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9285                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9286                         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));
9287                 }
9288                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
9289                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9290         }
9291         if (flags & NDR_OUT) {
9292                 if (r->out.info == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9293                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
9294                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9295                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9296         }
9297         return NT_STATUS_OK;
9298 }
9299
9300 NTSTATUS ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
9301 {
9302         uint32_t _ptr_logon_server;
9303         TALLOC_CTX *_mem_save_logon_server_0;
9304         TALLOC_CTX *_mem_save_info_0;
9305         if (flags & NDR_IN) {
9306                 ZERO_STRUCT(r->out);
9307
9308                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9309                 if (_ptr_logon_server) {
9310                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9311                 } else {
9312                         r->in.logon_server = NULL;
9313                 }
9314                 if (r->in.logon_server) {
9315                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9316                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9317                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9318                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9319                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9320                                 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));
9321                         }
9322                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9323                         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));
9324                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9325                 }
9326                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
9327                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9328                 NDR_PULL_ALLOC(ndr, r->out.info);
9329                 ZERO_STRUCTP(r->out.info);
9330         }
9331         if (flags & NDR_OUT) {
9332                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9333                         NDR_PULL_ALLOC(ndr, r->out.info);
9334                 }
9335                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9336                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9337                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
9338                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9339                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9340                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9341         }
9342         return NT_STATUS_OK;
9343 }
9344
9345 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
9346 {
9347         ndr_print_struct(ndr, name, "netr_LogonControl");
9348         ndr->depth++;
9349         if (flags & NDR_SET_VALUES) {
9350                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9351         }
9352         if (flags & NDR_IN) {
9353                 ndr_print_struct(ndr, "in", "netr_LogonControl");
9354                 ndr->depth++;
9355                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9356                 ndr->depth++;
9357                 if (r->in.logon_server) {
9358                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9359                 }
9360                 ndr->depth--;
9361                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
9362                 ndr_print_uint32(ndr, "level", r->in.level);
9363                 ndr->depth--;
9364         }
9365         if (flags & NDR_OUT) {
9366                 ndr_print_struct(ndr, "out", "netr_LogonControl");
9367                 ndr->depth++;
9368                 ndr_print_ptr(ndr, "info", r->out.info);
9369                 ndr->depth++;
9370                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
9371                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
9372                 ndr->depth--;
9373                 ndr_print_WERROR(ndr, "result", r->out.result);
9374                 ndr->depth--;
9375         }
9376         ndr->depth--;
9377 }
9378
9379 NTSTATUS ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
9380 {
9381         if (flags & NDR_IN) {
9382                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9383                 if (r->in.logon_server) {
9384                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9385                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9386                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9387                         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));
9388                 }
9389                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
9390                 if (r->in.domainname) {
9391                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9392                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9393                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9394                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9395                 }
9396         }
9397         if (flags & NDR_OUT) {
9398                 if (r->out.dcname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9399                 if (*r->out.dcname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9400                 NDR_CHECK(ndr_push_ref_ptr(ndr));
9401                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9402                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9403                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9404                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9405                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9406         }
9407         return NT_STATUS_OK;
9408 }
9409
9410 NTSTATUS ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
9411 {
9412         uint32_t _ptr_logon_server;
9413         uint32_t _ptr_domainname;
9414         uint32_t _ptr_dcname;
9415         TALLOC_CTX *_mem_save_logon_server_0;
9416         TALLOC_CTX *_mem_save_domainname_0;
9417         TALLOC_CTX *_mem_save_dcname_0;
9418         if (flags & NDR_IN) {
9419                 ZERO_STRUCT(r->out);
9420
9421                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9422                 if (_ptr_logon_server) {
9423                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9424                 } else {
9425                         r->in.logon_server = NULL;
9426                 }
9427                 if (r->in.logon_server) {
9428                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9429                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9430                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9431                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9432                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9433                                 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));
9434                         }
9435                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9436                         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));
9437                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9438                 }
9439                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
9440                 if (_ptr_domainname) {
9441                         NDR_PULL_ALLOC(ndr, r->in.domainname);
9442                 } else {
9443                         r->in.domainname = NULL;
9444                 }
9445                 if (r->in.domainname) {
9446                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9447                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
9448                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
9449                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
9450                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
9451                                 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));
9452                         }
9453                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
9454                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
9455                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
9456                 }
9457                 NDR_PULL_ALLOC(ndr, r->out.dcname);
9458                 ZERO_STRUCTP(r->out.dcname);
9459         }
9460         if (flags & NDR_OUT) {
9461                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9462                         NDR_PULL_ALLOC(ndr, r->out.dcname);
9463                 }
9464                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9465                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
9466                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_dcname));
9467                 NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
9468                 NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
9469                 if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
9470                         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));
9471                 }
9472                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
9473                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
9474                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
9475                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9476         }
9477         return NT_STATUS_OK;
9478 }
9479
9480 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
9481 {
9482         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
9483         ndr->depth++;
9484         if (flags & NDR_SET_VALUES) {
9485                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9486         }
9487         if (flags & NDR_IN) {
9488                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
9489                 ndr->depth++;
9490                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9491                 ndr->depth++;
9492                 if (r->in.logon_server) {
9493                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9494                 }
9495                 ndr->depth--;
9496                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
9497                 ndr->depth++;
9498                 if (r->in.domainname) {
9499                         ndr_print_string(ndr, "domainname", r->in.domainname);
9500                 }
9501                 ndr->depth--;
9502                 ndr->depth--;
9503         }
9504         if (flags & NDR_OUT) {
9505                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
9506                 ndr->depth++;
9507                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
9508                 ndr->depth++;
9509                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
9510                 ndr->depth++;
9511                 ndr_print_string(ndr, "dcname", *r->out.dcname);
9512                 ndr->depth--;
9513                 ndr->depth--;
9514                 ndr_print_WERROR(ndr, "result", r->out.result);
9515                 ndr->depth--;
9516         }
9517         ndr->depth--;
9518 }
9519
9520 NTSTATUS ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
9521 {
9522         if (flags & NDR_IN) {
9523                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9524                 if (r->in.logon_server) {
9525                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9526                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9527                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9528                         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));
9529                 }
9530                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
9531                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9532                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
9533                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
9534         }
9535         if (flags & NDR_OUT) {
9536                 if (r->out.query == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9537                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
9538                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
9539                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9540         }
9541         return NT_STATUS_OK;
9542 }
9543
9544 NTSTATUS ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
9545 {
9546         uint32_t _ptr_logon_server;
9547         TALLOC_CTX *_mem_save_logon_server_0;
9548         TALLOC_CTX *_mem_save_query_0;
9549         if (flags & NDR_IN) {
9550                 ZERO_STRUCT(r->out);
9551
9552                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9553                 if (_ptr_logon_server) {
9554                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9555                 } else {
9556                         r->in.logon_server = NULL;
9557                 }
9558                 if (r->in.logon_server) {
9559                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9560                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9561                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9562                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9563                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9564                                 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));
9565                         }
9566                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9567                         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));
9568                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9569                 }
9570                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
9571                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9572                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
9573                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
9574                 NDR_PULL_ALLOC(ndr, r->out.query);
9575                 ZERO_STRUCTP(r->out.query);
9576         }
9577         if (flags & NDR_OUT) {
9578                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9579                         NDR_PULL_ALLOC(ndr, r->out.query);
9580                 }
9581                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
9582                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
9583                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
9584                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
9585                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
9586                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9587         }
9588         return NT_STATUS_OK;
9589 }
9590
9591 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
9592 {
9593         ndr_print_struct(ndr, name, "netr_LogonControl2");
9594         ndr->depth++;
9595         if (flags & NDR_SET_VALUES) {
9596                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9597         }
9598         if (flags & NDR_IN) {
9599                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
9600                 ndr->depth++;
9601                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9602                 ndr->depth++;
9603                 if (r->in.logon_server) {
9604                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9605                 }
9606                 ndr->depth--;
9607                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
9608                 ndr_print_uint32(ndr, "level", r->in.level);
9609                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
9610                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
9611                 ndr->depth--;
9612         }
9613         if (flags & NDR_OUT) {
9614                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
9615                 ndr->depth++;
9616                 ndr_print_ptr(ndr, "query", r->out.query);
9617                 ndr->depth++;
9618                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
9619                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
9620                 ndr->depth--;
9621                 ndr_print_WERROR(ndr, "result", r->out.result);
9622                 ndr->depth--;
9623         }
9624         ndr->depth--;
9625 }
9626
9627 NTSTATUS ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
9628 {
9629         if (flags & NDR_IN) {
9630                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9631                 if (r->in.server_name) {
9632                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9633                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9634                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9635                         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));
9636                 }
9637                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9638                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9639                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9640                 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));
9641                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
9642                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9643                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9644                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9645                 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));
9646                 if (r->in.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9647                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9648                 if (r->in.negotiate_flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9649                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags));
9650         }
9651         if (flags & NDR_OUT) {
9652                 if (r->out.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9653                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
9654                 if (r->out.negotiate_flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9655                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags));
9656                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9657         }
9658         return NT_STATUS_OK;
9659 }
9660
9661 NTSTATUS ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
9662 {
9663         uint32_t _ptr_server_name;
9664         TALLOC_CTX *_mem_save_server_name_0;
9665         TALLOC_CTX *_mem_save_credentials_0;
9666         TALLOC_CTX *_mem_save_negotiate_flags_0;
9667         if (flags & NDR_IN) {
9668                 ZERO_STRUCT(r->out);
9669
9670                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9671                 if (_ptr_server_name) {
9672                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9673                 } else {
9674                         r->in.server_name = NULL;
9675                 }
9676                 if (r->in.server_name) {
9677                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9678                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9679                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9680                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9681                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9682                                 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));
9683                         }
9684                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9685                         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));
9686                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9687                 }
9688                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9689                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9690                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9691                         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));
9692                 }
9693                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9694                 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));
9695                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
9696                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9697                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9698                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9699                         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));
9700                 }
9701                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9702                 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));
9703                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9704                         NDR_PULL_ALLOC(ndr, r->in.credentials);
9705                 }
9706                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9707                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
9708                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9709                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9710                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9711                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
9712                 }
9713                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
9714                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
9715                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags));
9716                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
9717                 NDR_PULL_ALLOC(ndr, r->out.credentials);
9718                 *r->out.credentials = *r->in.credentials;
9719                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
9720                 *r->out.negotiate_flags = *r->in.negotiate_flags;
9721         }
9722         if (flags & NDR_OUT) {
9723                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9724                         NDR_PULL_ALLOC(ndr, r->out.credentials);
9725                 }
9726                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9727                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
9728                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
9729                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9730                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9731                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
9732                 }
9733                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
9734                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
9735                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags));
9736                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
9737                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9738         }
9739         return NT_STATUS_OK;
9740 }
9741
9742 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
9743 {
9744         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
9745         ndr->depth++;
9746         if (flags & NDR_SET_VALUES) {
9747                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9748         }
9749         if (flags & NDR_IN) {
9750                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
9751                 ndr->depth++;
9752                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9753                 ndr->depth++;
9754                 if (r->in.server_name) {
9755                         ndr_print_string(ndr, "server_name", r->in.server_name);
9756                 }
9757                 ndr->depth--;
9758                 ndr_print_string(ndr, "account_name", r->in.account_name);
9759                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
9760                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9761                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
9762                 ndr->depth++;
9763                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
9764                 ndr->depth--;
9765                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
9766                 ndr->depth++;
9767                 ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags);
9768                 ndr->depth--;
9769                 ndr->depth--;
9770         }
9771         if (flags & NDR_OUT) {
9772                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
9773                 ndr->depth++;
9774                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
9775                 ndr->depth++;
9776                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
9777                 ndr->depth--;
9778                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
9779                 ndr->depth++;
9780                 ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags);
9781                 ndr->depth--;
9782                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9783                 ndr->depth--;
9784         }
9785         ndr->depth--;
9786 }
9787
9788 NTSTATUS ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
9789 {
9790         if (flags & NDR_IN) {
9791                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9792                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9793                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9794                 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));
9795                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9796                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9797                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9798                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9799                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9800                 if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9801                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9802                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9803                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
9804                 if (r->in.sync_context == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9805                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
9806                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9807         }
9808         if (flags & NDR_OUT) {
9809                 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9810                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9811                 if (r->out.sync_context == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9812                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
9813                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.delta_enum_array));
9814                 if (r->out.delta_enum_array) {
9815                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9816                 }
9817                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9818         }
9819         return NT_STATUS_OK;
9820 }
9821
9822 NTSTATUS ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
9823 {
9824         uint32_t _ptr_delta_enum_array;
9825         TALLOC_CTX *_mem_save_return_authenticator_0;
9826         TALLOC_CTX *_mem_save_sync_context_0;
9827         TALLOC_CTX *_mem_save_delta_enum_array_0;
9828         if (flags & NDR_IN) {
9829                 ZERO_STRUCT(r->out);
9830
9831                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9832                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9833                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9834                         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));
9835                 }
9836                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9837                 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));
9838                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9839                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9840                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
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->in.computername), ndr_get_array_length(ndr, &r->in.computername));
9842                 }
9843                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9844                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9845                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9846                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9847                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9848                 }
9849                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9850                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9851                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9852                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9853                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9854                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
9855                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9856                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
9857                 }
9858                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9859                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
9860                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
9861                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9862                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9863                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9864                 *r->out.return_authenticator = *r->in.return_authenticator;
9865                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
9866                 *r->out.sync_context = *r->in.sync_context;
9867         }
9868         if (flags & NDR_OUT) {
9869                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9870                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9871                 }
9872                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9873                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9874                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9875                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9876                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9877                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
9878                 }
9879                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9880                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
9881                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
9882                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9883                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
9884                 if (_ptr_delta_enum_array) {
9885                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9886                 } else {
9887                         r->out.delta_enum_array = NULL;
9888                 }
9889                 if (r->out.delta_enum_array) {
9890                         _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9891                         NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, 0);
9892                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9893                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, 0);
9894                 }
9895                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9896         }
9897         return NT_STATUS_OK;
9898 }
9899
9900 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
9901 {
9902         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
9903         ndr->depth++;
9904         if (flags & NDR_SET_VALUES) {
9905                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9906         }
9907         if (flags & NDR_IN) {
9908                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
9909                 ndr->depth++;
9910                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9911                 ndr_print_string(ndr, "computername", r->in.computername);
9912                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9913                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9914                 ndr->depth++;
9915                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9916                 ndr->depth--;
9917                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9918                 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
9919                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
9920                 ndr->depth++;
9921                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
9922                 ndr->depth--;
9923                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9924                 ndr->depth--;
9925         }
9926         if (flags & NDR_OUT) {
9927                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
9928                 ndr->depth++;
9929                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9930                 ndr->depth++;
9931                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9932                 ndr->depth--;
9933                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
9934                 ndr->depth++;
9935                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
9936                 ndr->depth--;
9937                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9938                 ndr->depth++;
9939                 if (r->out.delta_enum_array) {
9940                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
9941                 }
9942                 ndr->depth--;
9943                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9944                 ndr->depth--;
9945         }
9946         ndr->depth--;
9947 }
9948
9949 NTSTATUS ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
9950 {
9951         if (flags & NDR_IN) {
9952                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9953                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9954                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9955                 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));
9956                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9957                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9958                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9959                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9960                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9961                 if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9962                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9963                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.change_log_entry));
9964                 if (r->in.change_log_entry) {
9965                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
9966                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, r->in.change_log_entry_size));
9967                 }
9968                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
9969         }
9970         if (flags & NDR_OUT) {
9971                 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9972                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9973                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.delta_enum_array));
9974                 if (r->out.delta_enum_array) {
9975                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9976                 }
9977                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9978         }
9979         return NT_STATUS_OK;
9980 }
9981
9982 NTSTATUS ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
9983 {
9984         uint32_t _ptr_change_log_entry;
9985         uint32_t _ptr_delta_enum_array;
9986         TALLOC_CTX *_mem_save_return_authenticator_0;
9987         TALLOC_CTX *_mem_save_change_log_entry_0;
9988         TALLOC_CTX *_mem_save_delta_enum_array_0;
9989         if (flags & NDR_IN) {
9990                 ZERO_STRUCT(r->out);
9991
9992                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9993                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9994                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9995                         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));
9996                 }
9997                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9998                 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));
9999                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10000                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10001                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10002                         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));
10003                 }
10004                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10005                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10006                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10007                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10008                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10009                 }
10010                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10011                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10012                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10013                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10014                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_change_log_entry));
10015                 if (_ptr_change_log_entry) {
10016                         NDR_PULL_ALLOC(ndr, r->in.change_log_entry);
10017                 } else {
10018                         r->in.change_log_entry = NULL;
10019                 }
10020                 if (r->in.change_log_entry) {
10021                         _mem_save_change_log_entry_0 = NDR_PULL_GET_MEM_CTX(ndr);
10022                         NDR_PULL_SET_MEM_CTX(ndr, r->in.change_log_entry, 0);
10023                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.change_log_entry));
10024                         NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry));
10025                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry)));
10026                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_change_log_entry_0, 0);
10027                 }
10028                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
10029                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10030                 *r->out.return_authenticator = *r->in.return_authenticator;
10031                 if (r->in.change_log_entry) {
10032                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.change_log_entry, r->in.change_log_entry_size));
10033                 }
10034         }
10035         if (flags & NDR_OUT) {
10036                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10037                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10038                 }
10039                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10040                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10041                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10042                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10043                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10044                 if (_ptr_delta_enum_array) {
10045                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10046                 } else {
10047                         r->out.delta_enum_array = NULL;
10048                 }
10049                 if (r->out.delta_enum_array) {
10050                         _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10051                         NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, 0);
10052                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10053                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, 0);
10054                 }
10055                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10056         }
10057         return NT_STATUS_OK;
10058 }
10059
10060 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
10061 {
10062         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
10063         ndr->depth++;
10064         if (flags & NDR_SET_VALUES) {
10065                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10066         }
10067         if (flags & NDR_IN) {
10068                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
10069                 ndr->depth++;
10070                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10071                 ndr_print_string(ndr, "computername", r->in.computername);
10072                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10073                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10074                 ndr->depth++;
10075                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10076                 ndr->depth--;
10077                 ndr_print_ptr(ndr, "change_log_entry", r->in.change_log_entry);
10078                 ndr->depth++;
10079                 if (r->in.change_log_entry) {
10080                         ndr_print_array_uint8(ndr, "change_log_entry", r->in.change_log_entry, r->in.change_log_entry_size);
10081                 }
10082                 ndr->depth--;
10083                 ndr_print_uint32(ndr, "change_log_entry_size", r->in.change_log_entry_size);
10084                 ndr->depth--;
10085         }
10086         if (flags & NDR_OUT) {
10087                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
10088                 ndr->depth++;
10089                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10090                 ndr->depth++;
10091                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10092                 ndr->depth--;
10093                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10094                 ndr->depth++;
10095                 if (r->out.delta_enum_array) {
10096                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
10097                 }
10098                 ndr->depth--;
10099                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10100                 ndr->depth--;
10101         }
10102         ndr->depth--;
10103 }
10104
10105 NTSTATUS ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
10106 {
10107         if (flags & NDR_IN) {
10108                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10109                 if (r->in.logon_server) {
10110                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10111                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10112                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10113                         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));
10114                 }
10115                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10116                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10117                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
10118                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10119         }
10120         if (flags & NDR_OUT) {
10121                 if (r->out.query == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
10122                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10123                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10124                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10125         }
10126         return NT_STATUS_OK;
10127 }
10128
10129 NTSTATUS ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
10130 {
10131         uint32_t _ptr_logon_server;
10132         TALLOC_CTX *_mem_save_logon_server_0;
10133         TALLOC_CTX *_mem_save_query_0;
10134         if (flags & NDR_IN) {
10135                 ZERO_STRUCT(r->out);
10136
10137                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10138                 if (_ptr_logon_server) {
10139                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10140                 } else {
10141                         r->in.logon_server = NULL;
10142                 }
10143                 if (r->in.logon_server) {
10144                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10145                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10146                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10147                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10148                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10149                                 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));
10150                         }
10151                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10152                         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));
10153                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10154                 }
10155                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10156                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10157                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
10158                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10159                 NDR_PULL_ALLOC(ndr, r->out.query);
10160                 ZERO_STRUCTP(r->out.query);
10161         }
10162         if (flags & NDR_OUT) {
10163                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10164                         NDR_PULL_ALLOC(ndr, r->out.query);
10165                 }
10166                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10167                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10168                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10169                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10170                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10171                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10172         }
10173         return NT_STATUS_OK;
10174 }
10175
10176 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
10177 {
10178         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
10179         ndr->depth++;
10180         if (flags & NDR_SET_VALUES) {
10181                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10182         }
10183         if (flags & NDR_IN) {
10184                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
10185                 ndr->depth++;
10186                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10187                 ndr->depth++;
10188                 if (r->in.logon_server) {
10189                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10190                 }
10191                 ndr->depth--;
10192                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
10193                 ndr_print_uint32(ndr, "level", r->in.level);
10194                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
10195                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
10196                 ndr->depth--;
10197         }
10198         if (flags & NDR_OUT) {
10199                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
10200                 ndr->depth++;
10201                 ndr_print_ptr(ndr, "query", r->out.query);
10202                 ndr->depth++;
10203                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10204                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10205                 ndr->depth--;
10206                 ndr_print_WERROR(ndr, "result", r->out.result);
10207                 ndr->depth--;
10208         }
10209         ndr->depth--;
10210 }
10211
10212 NTSTATUS ndr_push_netr_NETRENUMERATETRUSTEDDOMAINS(struct ndr_push *ndr, int flags, const struct netr_NETRENUMERATETRUSTEDDOMAINS *r)
10213 {
10214         if (flags & NDR_IN) {
10215         }
10216         if (flags & NDR_OUT) {
10217                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10218         }
10219         return NT_STATUS_OK;
10220 }
10221
10222 NTSTATUS ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINS(struct ndr_pull *ndr, int flags, struct netr_NETRENUMERATETRUSTEDDOMAINS *r)
10223 {
10224         if (flags & NDR_IN) {
10225         }
10226         if (flags & NDR_OUT) {
10227                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10228         }
10229         return NT_STATUS_OK;
10230 }
10231
10232 _PUBLIC_ void ndr_print_netr_NETRENUMERATETRUSTEDDOMAINS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRENUMERATETRUSTEDDOMAINS *r)
10233 {
10234         ndr_print_struct(ndr, name, "netr_NETRENUMERATETRUSTEDDOMAINS");
10235         ndr->depth++;
10236         if (flags & NDR_SET_VALUES) {
10237                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10238         }
10239         if (flags & NDR_IN) {
10240                 ndr_print_struct(ndr, "in", "netr_NETRENUMERATETRUSTEDDOMAINS");
10241                 ndr->depth++;
10242                 ndr->depth--;
10243         }
10244         if (flags & NDR_OUT) {
10245                 ndr_print_struct(ndr, "out", "netr_NETRENUMERATETRUSTEDDOMAINS");
10246                 ndr->depth++;
10247                 ndr_print_WERROR(ndr, "result", r->out.result);
10248                 ndr->depth--;
10249         }
10250         ndr->depth--;
10251 }
10252
10253 NTSTATUS ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
10254 {
10255         if (flags & NDR_IN) {
10256                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
10257                 if (r->in.server_unc) {
10258                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, 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.server_unc, CH_UTF16)));
10261                         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));
10262                 }
10263                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
10264                 if (r->in.domain_name) {
10265                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
10266                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10267                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
10268                         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));
10269                 }
10270                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
10271                 if (r->in.domain_guid) {
10272                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
10273                 }
10274                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
10275                 if (r->in.site_guid) {
10276                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
10277                 }
10278                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
10279         }
10280         if (flags & NDR_OUT) {
10281                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
10282                 if (r->out.info) {
10283                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10284                 }
10285                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10286         }
10287         return NT_STATUS_OK;
10288 }
10289
10290 NTSTATUS ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
10291 {
10292         uint32_t _ptr_server_unc;
10293         uint32_t _ptr_domain_name;
10294         uint32_t _ptr_domain_guid;
10295         uint32_t _ptr_site_guid;
10296         uint32_t _ptr_info;
10297         TALLOC_CTX *_mem_save_server_unc_0;
10298         TALLOC_CTX *_mem_save_domain_name_0;
10299         TALLOC_CTX *_mem_save_domain_guid_0;
10300         TALLOC_CTX *_mem_save_site_guid_0;
10301         TALLOC_CTX *_mem_save_info_0;
10302         if (flags & NDR_IN) {
10303                 ZERO_STRUCT(r->out);
10304
10305                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
10306                 if (_ptr_server_unc) {
10307                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
10308                 } else {
10309                         r->in.server_unc = NULL;
10310                 }
10311                 if (r->in.server_unc) {
10312                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
10313                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
10314                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
10315                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
10316                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
10317                                 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));
10318                         }
10319                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
10320                         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));
10321                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
10322                 }
10323                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
10324                 if (_ptr_domain_name) {
10325                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
10326                 } else {
10327                         r->in.domain_name = NULL;
10328                 }
10329                 if (r->in.domain_name) {
10330                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10331                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
10332                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
10333                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
10334                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
10335                                 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));
10336                         }
10337                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
10338                         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));
10339                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
10340                 }
10341                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
10342                 if (_ptr_domain_guid) {
10343                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
10344                 } else {
10345                         r->in.domain_guid = NULL;
10346                 }
10347                 if (r->in.domain_guid) {
10348                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10349                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
10350                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
10351                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
10352                 }
10353                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
10354                 if (_ptr_site_guid) {
10355                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
10356                 } else {
10357                         r->in.site_guid = NULL;
10358                 }
10359                 if (r->in.site_guid) {
10360                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10361                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
10362                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
10363                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
10364                 }
10365                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
10366         }
10367         if (flags & NDR_OUT) {
10368                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
10369                 if (_ptr_info) {
10370                         NDR_PULL_ALLOC(ndr, r->out.info);
10371                 } else {
10372                         r->out.info = NULL;
10373                 }
10374                 if (r->out.info) {
10375                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10376                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
10377                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10378                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
10379                 }
10380                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10381         }
10382         return NT_STATUS_OK;
10383 }
10384
10385 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
10386 {
10387         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
10388         ndr->depth++;
10389         if (flags & NDR_SET_VALUES) {
10390                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10391         }
10392         if (flags & NDR_IN) {
10393                 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
10394                 ndr->depth++;
10395                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
10396                 ndr->depth++;
10397                 if (r->in.server_unc) {
10398                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
10399                 }
10400                 ndr->depth--;
10401                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
10402                 ndr->depth++;
10403                 if (r->in.domain_name) {
10404                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
10405                 }
10406                 ndr->depth--;
10407                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
10408                 ndr->depth++;
10409                 if (r->in.domain_guid) {
10410                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
10411                 }
10412                 ndr->depth--;
10413                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
10414                 ndr->depth++;
10415                 if (r->in.site_guid) {
10416                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
10417                 }
10418                 ndr->depth--;
10419                 ndr_print_uint32(ndr, "flags", r->in.flags);
10420                 ndr->depth--;
10421         }
10422         if (flags & NDR_OUT) {
10423                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
10424                 ndr->depth++;
10425                 ndr_print_ptr(ndr, "info", r->out.info);
10426                 ndr->depth++;
10427                 if (r->out.info) {
10428                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info);
10429                 }
10430                 ndr->depth--;
10431                 ndr_print_WERROR(ndr, "result", r->out.result);
10432                 ndr->depth--;
10433         }
10434         ndr->depth--;
10435 }
10436
10437 NTSTATUS ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
10438 {
10439         if (flags & NDR_IN) {
10440         }
10441         if (flags & NDR_OUT) {
10442                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10443         }
10444         return NT_STATUS_OK;
10445 }
10446
10447 NTSTATUS ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
10448 {
10449         if (flags & NDR_IN) {
10450         }
10451         if (flags & NDR_OUT) {
10452                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10453         }
10454         return NT_STATUS_OK;
10455 }
10456
10457 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
10458 {
10459         ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
10460         ndr->depth++;
10461         if (flags & NDR_SET_VALUES) {
10462                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10463         }
10464         if (flags & NDR_IN) {
10465                 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
10466                 ndr->depth++;
10467                 ndr->depth--;
10468         }
10469         if (flags & NDR_OUT) {
10470                 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
10471                 ndr->depth++;
10472                 ndr_print_WERROR(ndr, "result", r->out.result);
10473                 ndr->depth--;
10474         }
10475         ndr->depth--;
10476 }
10477
10478 NTSTATUS ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
10479 {
10480         if (flags & NDR_IN) {
10481         }
10482         if (flags & NDR_OUT) {
10483                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10484         }
10485         return NT_STATUS_OK;
10486 }
10487
10488 NTSTATUS ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
10489 {
10490         if (flags & NDR_IN) {
10491         }
10492         if (flags & NDR_OUT) {
10493                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10494         }
10495         return NT_STATUS_OK;
10496 }
10497
10498 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
10499 {
10500         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
10501         ndr->depth++;
10502         if (flags & NDR_SET_VALUES) {
10503                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10504         }
10505         if (flags & NDR_IN) {
10506                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
10507                 ndr->depth++;
10508                 ndr->depth--;
10509         }
10510         if (flags & NDR_OUT) {
10511                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
10512                 ndr->depth++;
10513                 ndr_print_WERROR(ndr, "result", r->out.result);
10514                 ndr->depth--;
10515         }
10516         ndr->depth--;
10517 }
10518
10519 NTSTATUS ndr_push_netr_NETRLOGONGETTRUSTRID(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTRUSTRID *r)
10520 {
10521         if (flags & NDR_IN) {
10522         }
10523         if (flags & NDR_OUT) {
10524                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10525         }
10526         return NT_STATUS_OK;
10527 }
10528
10529 NTSTATUS ndr_pull_netr_NETRLOGONGETTRUSTRID(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTRUSTRID *r)
10530 {
10531         if (flags & NDR_IN) {
10532         }
10533         if (flags & NDR_OUT) {
10534                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10535         }
10536         return NT_STATUS_OK;
10537 }
10538
10539 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTRUSTRID(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTRUSTRID *r)
10540 {
10541         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTRUSTRID");
10542         ndr->depth++;
10543         if (flags & NDR_SET_VALUES) {
10544                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10545         }
10546         if (flags & NDR_IN) {
10547                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTRUSTRID");
10548                 ndr->depth++;
10549                 ndr->depth--;
10550         }
10551         if (flags & NDR_OUT) {
10552                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTRUSTRID");
10553                 ndr->depth++;
10554                 ndr_print_WERROR(ndr, "result", r->out.result);
10555                 ndr->depth--;
10556         }
10557         ndr->depth--;
10558 }
10559
10560 NTSTATUS ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
10561 {
10562         if (flags & NDR_IN) {
10563         }
10564         if (flags & NDR_OUT) {
10565                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10566         }
10567         return NT_STATUS_OK;
10568 }
10569
10570 NTSTATUS ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
10571 {
10572         if (flags & NDR_IN) {
10573         }
10574         if (flags & NDR_OUT) {
10575                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10576         }
10577         return NT_STATUS_OK;
10578 }
10579
10580 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
10581 {
10582         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
10583         ndr->depth++;
10584         if (flags & NDR_SET_VALUES) {
10585                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10586         }
10587         if (flags & NDR_IN) {
10588                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
10589                 ndr->depth++;
10590                 ndr->depth--;
10591         }
10592         if (flags & NDR_OUT) {
10593                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
10594                 ndr->depth++;
10595                 ndr_print_WERROR(ndr, "result", r->out.result);
10596                 ndr->depth--;
10597         }
10598         ndr->depth--;
10599 }
10600
10601 NTSTATUS ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
10602 {
10603         if (flags & NDR_IN) {
10604         }
10605         if (flags & NDR_OUT) {
10606                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10607         }
10608         return NT_STATUS_OK;
10609 }
10610
10611 NTSTATUS ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
10612 {
10613         if (flags & NDR_IN) {
10614         }
10615         if (flags & NDR_OUT) {
10616                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10617         }
10618         return NT_STATUS_OK;
10619 }
10620
10621 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
10622 {
10623         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
10624         ndr->depth++;
10625         if (flags & NDR_SET_VALUES) {
10626                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10627         }
10628         if (flags & NDR_IN) {
10629                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
10630                 ndr->depth++;
10631                 ndr->depth--;
10632         }
10633         if (flags & NDR_OUT) {
10634                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
10635                 ndr->depth++;
10636                 ndr_print_WERROR(ndr, "result", r->out.result);
10637                 ndr->depth--;
10638         }
10639         ndr->depth--;
10640 }
10641
10642 NTSTATUS ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
10643 {
10644         if (flags & NDR_IN) {
10645                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10646                 if (r->in.server_name) {
10647                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10648                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10649                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10650                         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));
10651                 }
10652                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10653                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10654                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10655                 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));
10656                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10657                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10658                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10659                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10660                 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));
10661                 if (r->in.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
10662                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10663                 if (r->in.negotiate_flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
10664                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags));
10665         }
10666         if (flags & NDR_OUT) {
10667                 if (r->out.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
10668                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
10669                 if (r->out.negotiate_flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
10670                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags));
10671                 if (r->out.rid == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
10672                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
10673                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10674         }
10675         return NT_STATUS_OK;
10676 }
10677
10678 NTSTATUS ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
10679 {
10680         uint32_t _ptr_server_name;
10681         TALLOC_CTX *_mem_save_server_name_0;
10682         TALLOC_CTX *_mem_save_credentials_0;
10683         TALLOC_CTX *_mem_save_negotiate_flags_0;
10684         TALLOC_CTX *_mem_save_rid_0;
10685         if (flags & NDR_IN) {
10686                 ZERO_STRUCT(r->out);
10687
10688                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10689                 if (_ptr_server_name) {
10690                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10691                 } else {
10692                         r->in.server_name = NULL;
10693                 }
10694                 if (r->in.server_name) {
10695                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10696                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10697                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10698                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10699                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10700                                 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));
10701                         }
10702                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10703                         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));
10704                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10705                 }
10706                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10707                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10708                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10709                         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));
10710                 }
10711                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10712                 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));
10713                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10714                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10715                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10716                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10717                         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));
10718                 }
10719                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10720                 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));
10721                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10722                         NDR_PULL_ALLOC(ndr, r->in.credentials);
10723                 }
10724                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10725                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10726                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10727                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10728                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10729                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
10730                 }
10731                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10732                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10733                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags));
10734                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10735                 NDR_PULL_ALLOC(ndr, r->out.credentials);
10736                 *r->out.credentials = *r->in.credentials;
10737                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10738                 *r->out.negotiate_flags = *r->in.negotiate_flags;
10739                 NDR_PULL_ALLOC(ndr, r->out.rid);
10740                 ZERO_STRUCTP(r->out.rid);
10741         }
10742         if (flags & NDR_OUT) {
10743                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10744                         NDR_PULL_ALLOC(ndr, r->out.credentials);
10745                 }
10746                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10747                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
10748                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
10749                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10750                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10751                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10752                 }
10753                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10754                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10755                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags));
10756                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10757                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10758                         NDR_PULL_ALLOC(ndr, r->out.rid);
10759                 }
10760                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10761                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
10762                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
10763                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
10764                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10765         }
10766         return NT_STATUS_OK;
10767 }
10768
10769 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
10770 {
10771         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
10772         ndr->depth++;
10773         if (flags & NDR_SET_VALUES) {
10774                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10775         }
10776         if (flags & NDR_IN) {
10777                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
10778                 ndr->depth++;
10779                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10780                 ndr->depth++;
10781                 if (r->in.server_name) {
10782                         ndr_print_string(ndr, "server_name", r->in.server_name);
10783                 }
10784                 ndr->depth--;
10785                 ndr_print_string(ndr, "account_name", r->in.account_name);
10786                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10787                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10788                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10789                 ndr->depth++;
10790                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10791                 ndr->depth--;
10792                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
10793                 ndr->depth++;
10794                 ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags);
10795                 ndr->depth--;
10796                 ndr->depth--;
10797         }
10798         if (flags & NDR_OUT) {
10799                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
10800                 ndr->depth++;
10801                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
10802                 ndr->depth++;
10803                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
10804                 ndr->depth--;
10805                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
10806                 ndr->depth++;
10807                 ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags);
10808                 ndr->depth--;
10809                 ndr_print_ptr(ndr, "rid", r->out.rid);
10810                 ndr->depth++;
10811                 ndr_print_uint32(ndr, "rid", *r->out.rid);
10812                 ndr->depth--;
10813                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10814                 ndr->depth--;
10815         }
10816         ndr->depth--;
10817 }
10818
10819 NTSTATUS ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
10820 {
10821         if (flags & NDR_IN) {
10822                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
10823                 if (r->in.server_unc) {
10824                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
10825                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10826                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
10827                         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));
10828                 }
10829                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
10830                 if (r->in.domain_name) {
10831                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
10832                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10833                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
10834                         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));
10835                 }
10836                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
10837                 if (r->in.domain_guid) {
10838                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
10839                 }
10840                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
10841                 if (r->in.site_name) {
10842                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
10843                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10844                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
10845                         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));
10846                 }
10847                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
10848         }
10849         if (flags & NDR_OUT) {
10850                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
10851                 if (r->out.info) {
10852                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10853                 }
10854                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10855         }
10856         return NT_STATUS_OK;
10857 }
10858
10859 NTSTATUS ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
10860 {
10861         uint32_t _ptr_server_unc;
10862         uint32_t _ptr_domain_name;
10863         uint32_t _ptr_domain_guid;
10864         uint32_t _ptr_site_name;
10865         uint32_t _ptr_info;
10866         TALLOC_CTX *_mem_save_server_unc_0;
10867         TALLOC_CTX *_mem_save_domain_name_0;
10868         TALLOC_CTX *_mem_save_domain_guid_0;
10869         TALLOC_CTX *_mem_save_site_name_0;
10870         TALLOC_CTX *_mem_save_info_0;
10871         if (flags & NDR_IN) {
10872                 ZERO_STRUCT(r->out);
10873
10874                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
10875                 if (_ptr_server_unc) {
10876                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
10877                 } else {
10878                         r->in.server_unc = NULL;
10879                 }
10880                 if (r->in.server_unc) {
10881                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
10882                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
10883                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
10884                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
10885                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
10886                                 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));
10887                         }
10888                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
10889                         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));
10890                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
10891                 }
10892                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
10893                 if (_ptr_domain_name) {
10894                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
10895                 } else {
10896                         r->in.domain_name = NULL;
10897                 }
10898                 if (r->in.domain_name) {
10899                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10900                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
10901                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
10902                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
10903                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
10904                                 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));
10905                         }
10906                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
10907                         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));
10908                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
10909                 }
10910                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
10911                 if (_ptr_domain_guid) {
10912                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
10913                 } else {
10914                         r->in.domain_guid = NULL;
10915                 }
10916                 if (r->in.domain_guid) {
10917                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10918                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
10919                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
10920                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
10921                 }
10922                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
10923                 if (_ptr_site_name) {
10924                         NDR_PULL_ALLOC(ndr, r->in.site_name);
10925                 } else {
10926                         r->in.site_name = NULL;
10927                 }
10928                 if (r->in.site_name) {
10929                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10930                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
10931                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
10932                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
10933                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
10934                                 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));
10935                         }
10936                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
10937                         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));
10938                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
10939                 }
10940                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
10941         }
10942         if (flags & NDR_OUT) {
10943                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
10944                 if (_ptr_info) {
10945                         NDR_PULL_ALLOC(ndr, r->out.info);
10946                 } else {
10947                         r->out.info = NULL;
10948                 }
10949                 if (r->out.info) {
10950                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10951                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
10952                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10953                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
10954                 }
10955                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10956         }
10957         return NT_STATUS_OK;
10958 }
10959
10960 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
10961 {
10962         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
10963         ndr->depth++;
10964         if (flags & NDR_SET_VALUES) {
10965                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10966         }
10967         if (flags & NDR_IN) {
10968                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
10969                 ndr->depth++;
10970                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
10971                 ndr->depth++;
10972                 if (r->in.server_unc) {
10973                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
10974                 }
10975                 ndr->depth--;
10976                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
10977                 ndr->depth++;
10978                 if (r->in.domain_name) {
10979                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
10980                 }
10981                 ndr->depth--;
10982                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
10983                 ndr->depth++;
10984                 if (r->in.domain_guid) {
10985                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
10986                 }
10987                 ndr->depth--;
10988                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
10989                 ndr->depth++;
10990                 if (r->in.site_name) {
10991                         ndr_print_string(ndr, "site_name", r->in.site_name);
10992                 }
10993                 ndr->depth--;
10994                 ndr_print_uint32(ndr, "flags", r->in.flags);
10995                 ndr->depth--;
10996         }
10997         if (flags & NDR_OUT) {
10998                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
10999                 ndr->depth++;
11000                 ndr_print_ptr(ndr, "info", r->out.info);
11001                 ndr->depth++;
11002                 if (r->out.info) {
11003                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info);
11004                 }
11005                 ndr->depth--;
11006                 ndr_print_WERROR(ndr, "result", r->out.result);
11007                 ndr->depth--;
11008         }
11009         ndr->depth--;
11010 }
11011
11012 NTSTATUS ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
11013 {
11014         if (flags & NDR_IN) {
11015                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11016                 if (r->in.computer_name) {
11017                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11018                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11019                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11020                         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));
11021                 }
11022         }
11023         if (flags & NDR_OUT) {
11024                 if (r->out.site == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11025                 if (*r->out.site == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11026                 NDR_CHECK(ndr_push_ref_ptr(ndr));
11027                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11028                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11029                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11030                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11031                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11032         }
11033         return NT_STATUS_OK;
11034 }
11035
11036 NTSTATUS ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
11037 {
11038         uint32_t _ptr_computer_name;
11039         uint32_t _ptr_site;
11040         TALLOC_CTX *_mem_save_computer_name_0;
11041         TALLOC_CTX *_mem_save_site_0;
11042         if (flags & NDR_IN) {
11043                 ZERO_STRUCT(r->out);
11044
11045                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
11046                 if (_ptr_computer_name) {
11047                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
11048                 } else {
11049                         r->in.computer_name = NULL;
11050                 }
11051                 if (r->in.computer_name) {
11052                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11053                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
11054                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11055                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11056                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11057                                 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));
11058                         }
11059                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11060                         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));
11061                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
11062                 }
11063                 NDR_PULL_ALLOC(ndr, r->out.site);
11064                 ZERO_STRUCTP(r->out.site);
11065         }
11066         if (flags & NDR_OUT) {
11067                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11068                         NDR_PULL_ALLOC(ndr, r->out.site);
11069                 }
11070                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
11071                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
11072                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_site));
11073                 NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
11074                 NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
11075                 if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
11076                         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));
11077                 }
11078                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
11079                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
11080                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
11081                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11082         }
11083         return NT_STATUS_OK;
11084 }
11085
11086 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
11087 {
11088         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
11089         ndr->depth++;
11090         if (flags & NDR_SET_VALUES) {
11091                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11092         }
11093         if (flags & NDR_IN) {
11094                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
11095                 ndr->depth++;
11096                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
11097                 ndr->depth++;
11098                 if (r->in.computer_name) {
11099                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
11100                 }
11101                 ndr->depth--;
11102                 ndr->depth--;
11103         }
11104         if (flags & NDR_OUT) {
11105                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
11106                 ndr->depth++;
11107                 ndr_print_ptr(ndr, "site", r->out.site);
11108                 ndr->depth++;
11109                 ndr_print_ptr(ndr, "site", *r->out.site);
11110                 ndr->depth++;
11111                 ndr_print_string(ndr, "site", *r->out.site);
11112                 ndr->depth--;
11113                 ndr->depth--;
11114                 ndr_print_WERROR(ndr, "result", r->out.result);
11115                 ndr->depth--;
11116         }
11117         ndr->depth--;
11118 }
11119
11120 NTSTATUS ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
11121 {
11122         if (flags & NDR_IN) {
11123                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11124                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11125                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11126                 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));
11127                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11128                 if (r->in.computer_name) {
11129                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11130                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11131                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11132                         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));
11133                 }
11134                 if (r->in.credential == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11135                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11136                 if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11137                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11138                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11139                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
11140                 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
11141         }
11142         if (flags & NDR_OUT) {
11143                 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11144                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11145                 if (r->out.info == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11146                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
11147                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11148                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11149         }
11150         return NT_STATUS_OK;
11151 }
11152
11153 NTSTATUS ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
11154 {
11155         uint32_t _ptr_computer_name;
11156         TALLOC_CTX *_mem_save_computer_name_0;
11157         TALLOC_CTX *_mem_save_credential_0;
11158         TALLOC_CTX *_mem_save_return_authenticator_0;
11159         TALLOC_CTX *_mem_save_info_0;
11160         if (flags & NDR_IN) {
11161                 ZERO_STRUCT(r->out);
11162
11163                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11164                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11165                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11166                         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));
11167                 }
11168                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11169                 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));
11170                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
11171                 if (_ptr_computer_name) {
11172                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
11173                 } else {
11174                         r->in.computer_name = NULL;
11175                 }
11176                 if (r->in.computer_name) {
11177                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11178                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
11179                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11180                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11181                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11182                                 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));
11183                         }
11184                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11185                         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));
11186                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
11187                 }
11188                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11189                         NDR_PULL_ALLOC(ndr, r->in.credential);
11190                 }
11191                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
11192                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
11193                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11194                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
11195                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11196                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11197                 }
11198                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11199                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11200                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11201                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11202                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11203                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
11204                 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
11205                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11206                 *r->out.return_authenticator = *r->in.return_authenticator;
11207                 NDR_PULL_ALLOC(ndr, r->out.info);
11208                 ZERO_STRUCTP(r->out.info);
11209         }
11210         if (flags & NDR_OUT) {
11211                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11212                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11213                 }
11214                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11215                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11216                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11217                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11218                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11219                         NDR_PULL_ALLOC(ndr, r->out.info);
11220                 }
11221                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11222                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11223                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
11224                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11225                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11226                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11227         }
11228         return NT_STATUS_OK;
11229 }
11230
11231 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
11232 {
11233         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
11234         ndr->depth++;
11235         if (flags & NDR_SET_VALUES) {
11236                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11237         }
11238         if (flags & NDR_IN) {
11239                 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
11240                 ndr->depth++;
11241                 ndr_print_string(ndr, "server_name", r->in.server_name);
11242                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
11243                 ndr->depth++;
11244                 if (r->in.computer_name) {
11245                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
11246                 }
11247                 ndr->depth--;
11248                 ndr_print_ptr(ndr, "credential", r->in.credential);
11249                 ndr->depth++;
11250                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
11251                 ndr->depth--;
11252                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11253                 ndr->depth++;
11254                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11255                 ndr->depth--;
11256                 ndr_print_uint32(ndr, "level", r->in.level);
11257                 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
11258                 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
11259                 ndr->depth--;
11260         }
11261         if (flags & NDR_OUT) {
11262                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
11263                 ndr->depth++;
11264                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11265                 ndr->depth++;
11266                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11267                 ndr->depth--;
11268                 ndr_print_ptr(ndr, "info", r->out.info);
11269                 ndr->depth++;
11270                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
11271                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
11272                 ndr->depth--;
11273                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11274                 ndr->depth--;
11275         }
11276         ndr->depth--;
11277 }
11278
11279 NTSTATUS ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
11280 {
11281         if (flags & NDR_IN) {
11282                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11283                 if (r->in.server_name) {
11284                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11285                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11286                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11287                         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));
11288                 }
11289                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11290                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11291                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11292                 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));
11293                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11294                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11295                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11296                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11297                 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));
11298                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
11299                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
11300         }
11301         if (flags & NDR_OUT) {
11302                 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11303                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11304                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11305         }
11306         return NT_STATUS_OK;
11307 }
11308
11309 NTSTATUS ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
11310 {
11311         uint32_t _ptr_server_name;
11312         TALLOC_CTX *_mem_save_server_name_0;
11313         TALLOC_CTX *_mem_save_return_authenticator_0;
11314         if (flags & NDR_IN) {
11315                 ZERO_STRUCT(r->out);
11316
11317                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11318                 if (_ptr_server_name) {
11319                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11320                 } else {
11321                         r->in.server_name = NULL;
11322                 }
11323                 if (r->in.server_name) {
11324                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11325                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11326                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11327                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11328                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11329                                 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));
11330                         }
11331                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11332                         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));
11333                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11334                 }
11335                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11336                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11337                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11338                         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));
11339                 }
11340                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11341                 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));
11342                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11343                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11344                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11345                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11346                         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));
11347                 }
11348                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11349                 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));
11350                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
11351                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
11352                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11353                 ZERO_STRUCTP(r->out.return_authenticator);
11354         }
11355         if (flags & NDR_OUT) {
11356                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11357                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11358                 }
11359                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11360                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11361                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11362                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11363                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11364         }
11365         return NT_STATUS_OK;
11366 }
11367
11368 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
11369 {
11370         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
11371         ndr->depth++;
11372         if (flags & NDR_SET_VALUES) {
11373                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11374         }
11375         if (flags & NDR_IN) {
11376                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
11377                 ndr->depth++;
11378                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11379                 ndr->depth++;
11380                 if (r->in.server_name) {
11381                         ndr_print_string(ndr, "server_name", r->in.server_name);
11382                 }
11383                 ndr->depth--;
11384                 ndr_print_string(ndr, "account_name", r->in.account_name);
11385                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11386                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11387                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
11388                 ndr_print_netr_CryptPassword(ndr, "new_password", &r->in.new_password);
11389                 ndr->depth--;
11390         }
11391         if (flags & NDR_OUT) {
11392                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
11393                 ndr->depth++;
11394                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11395                 ndr->depth++;
11396                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11397                 ndr->depth--;
11398                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11399                 ndr->depth--;
11400         }
11401         ndr->depth--;
11402 }
11403
11404 NTSTATUS ndr_push_netr_NETRSERVERPASSWORDGET(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERPASSWORDGET *r)
11405 {
11406         if (flags & NDR_IN) {
11407         }
11408         if (flags & NDR_OUT) {
11409                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11410         }
11411         return NT_STATUS_OK;
11412 }
11413
11414 NTSTATUS ndr_pull_netr_NETRSERVERPASSWORDGET(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERPASSWORDGET *r)
11415 {
11416         if (flags & NDR_IN) {
11417         }
11418         if (flags & NDR_OUT) {
11419                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11420         }
11421         return NT_STATUS_OK;
11422 }
11423
11424 _PUBLIC_ void ndr_print_netr_NETRSERVERPASSWORDGET(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERPASSWORDGET *r)
11425 {
11426         ndr_print_struct(ndr, name, "netr_NETRSERVERPASSWORDGET");
11427         ndr->depth++;
11428         if (flags & NDR_SET_VALUES) {
11429                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11430         }
11431         if (flags & NDR_IN) {
11432                 ndr_print_struct(ndr, "in", "netr_NETRSERVERPASSWORDGET");
11433                 ndr->depth++;
11434                 ndr->depth--;
11435         }
11436         if (flags & NDR_OUT) {
11437                 ndr_print_struct(ndr, "out", "netr_NETRSERVERPASSWORDGET");
11438                 ndr->depth++;
11439                 ndr_print_WERROR(ndr, "result", r->out.result);
11440                 ndr->depth--;
11441         }
11442         ndr->depth--;
11443 }
11444
11445 NTSTATUS ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
11446 {
11447         if (flags & NDR_IN) {
11448         }
11449         if (flags & NDR_OUT) {
11450                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11451         }
11452         return NT_STATUS_OK;
11453 }
11454
11455 NTSTATUS ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
11456 {
11457         if (flags & NDR_IN) {
11458         }
11459         if (flags & NDR_OUT) {
11460                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11461         }
11462         return NT_STATUS_OK;
11463 }
11464
11465 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
11466 {
11467         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
11468         ndr->depth++;
11469         if (flags & NDR_SET_VALUES) {
11470                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11471         }
11472         if (flags & NDR_IN) {
11473                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
11474                 ndr->depth++;
11475                 ndr->depth--;
11476         }
11477         if (flags & NDR_OUT) {
11478                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
11479                 ndr->depth++;
11480                 ndr_print_WERROR(ndr, "result", r->out.result);
11481                 ndr->depth--;
11482         }
11483         ndr->depth--;
11484 }
11485
11486 NTSTATUS ndr_push_netr_DSRADDRESSTOSITENAMESW(struct ndr_push *ndr, int flags, const struct netr_DSRADDRESSTOSITENAMESW *r)
11487 {
11488         if (flags & NDR_IN) {
11489         }
11490         if (flags & NDR_OUT) {
11491                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11492         }
11493         return NT_STATUS_OK;
11494 }
11495
11496 NTSTATUS ndr_pull_netr_DSRADDRESSTOSITENAMESW(struct ndr_pull *ndr, int flags, struct netr_DSRADDRESSTOSITENAMESW *r)
11497 {
11498         if (flags & NDR_IN) {
11499         }
11500         if (flags & NDR_OUT) {
11501                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11502         }
11503         return NT_STATUS_OK;
11504 }
11505
11506 _PUBLIC_ void ndr_print_netr_DSRADDRESSTOSITENAMESW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRADDRESSTOSITENAMESW *r)
11507 {
11508         ndr_print_struct(ndr, name, "netr_DSRADDRESSTOSITENAMESW");
11509         ndr->depth++;
11510         if (flags & NDR_SET_VALUES) {
11511                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11512         }
11513         if (flags & NDR_IN) {
11514                 ndr_print_struct(ndr, "in", "netr_DSRADDRESSTOSITENAMESW");
11515                 ndr->depth++;
11516                 ndr->depth--;
11517         }
11518         if (flags & NDR_OUT) {
11519                 ndr_print_struct(ndr, "out", "netr_DSRADDRESSTOSITENAMESW");
11520                 ndr->depth++;
11521                 ndr_print_WERROR(ndr, "result", r->out.result);
11522                 ndr->depth--;
11523         }
11524         ndr->depth--;
11525 }
11526
11527 NTSTATUS ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
11528 {
11529         if (flags & NDR_IN) {
11530                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11531                 if (r->in.server_unc) {
11532                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11533                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11534                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11535                         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));
11536                 }
11537                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
11538                 if (r->in.client_account) {
11539                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
11540                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11541                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
11542                         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));
11543                 }
11544                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.mask));
11545                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11546                 if (r->in.domain_name) {
11547                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11548                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11549                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11550                         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));
11551                 }
11552                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11553                 if (r->in.domain_guid) {
11554                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11555                 }
11556                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
11557                 if (r->in.site_name) {
11558                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11559                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11560                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11561                         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));
11562                 }
11563                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
11564         }
11565         if (flags & NDR_OUT) {
11566                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
11567                 if (r->out.info) {
11568                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11569                 }
11570                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11571         }
11572         return NT_STATUS_OK;
11573 }
11574
11575 NTSTATUS ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
11576 {
11577         uint32_t _ptr_server_unc;
11578         uint32_t _ptr_client_account;
11579         uint32_t _ptr_domain_name;
11580         uint32_t _ptr_domain_guid;
11581         uint32_t _ptr_site_name;
11582         uint32_t _ptr_info;
11583         TALLOC_CTX *_mem_save_server_unc_0;
11584         TALLOC_CTX *_mem_save_client_account_0;
11585         TALLOC_CTX *_mem_save_domain_name_0;
11586         TALLOC_CTX *_mem_save_domain_guid_0;
11587         TALLOC_CTX *_mem_save_site_name_0;
11588         TALLOC_CTX *_mem_save_info_0;
11589         if (flags & NDR_IN) {
11590                 ZERO_STRUCT(r->out);
11591
11592                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11593                 if (_ptr_server_unc) {
11594                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11595                 } else {
11596                         r->in.server_unc = NULL;
11597                 }
11598                 if (r->in.server_unc) {
11599                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11600                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11601                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11602                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11603                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11604                                 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));
11605                         }
11606                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11607                         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));
11608                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11609                 }
11610                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
11611                 if (_ptr_client_account) {
11612                         NDR_PULL_ALLOC(ndr, r->in.client_account);
11613                 } else {
11614                         r->in.client_account = NULL;
11615                 }
11616                 if (r->in.client_account) {
11617                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
11618                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
11619                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
11620                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
11621                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
11622                                 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));
11623                         }
11624                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
11625                         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));
11626                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
11627                 }
11628                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.mask));
11629                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11630                 if (_ptr_domain_name) {
11631                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11632                 } else {
11633                         r->in.domain_name = NULL;
11634                 }
11635                 if (r->in.domain_name) {
11636                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11637                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11638                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11639                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11640                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11641                                 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));
11642                         }
11643                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11644                         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));
11645                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11646                 }
11647                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11648                 if (_ptr_domain_guid) {
11649                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11650                 } else {
11651                         r->in.domain_guid = NULL;
11652                 }
11653                 if (r->in.domain_guid) {
11654                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11655                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11656                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11657                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11658                 }
11659                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
11660                 if (_ptr_site_name) {
11661                         NDR_PULL_ALLOC(ndr, r->in.site_name);
11662                 } else {
11663                         r->in.site_name = NULL;
11664                 }
11665                 if (r->in.site_name) {
11666                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11667                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
11668                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
11669                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
11670                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
11671                                 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));
11672                         }
11673                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
11674                         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));
11675                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
11676                 }
11677                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
11678         }
11679         if (flags & NDR_OUT) {
11680                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11681                 if (_ptr_info) {
11682                         NDR_PULL_ALLOC(ndr, r->out.info);
11683                 } else {
11684                         r->out.info = NULL;
11685                 }
11686                 if (r->out.info) {
11687                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11688                         NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
11689                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11690                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
11691                 }
11692                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11693         }
11694         return NT_STATUS_OK;
11695 }
11696
11697 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
11698 {
11699         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
11700         ndr->depth++;
11701         if (flags & NDR_SET_VALUES) {
11702                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11703         }
11704         if (flags & NDR_IN) {
11705                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
11706                 ndr->depth++;
11707                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11708                 ndr->depth++;
11709                 if (r->in.server_unc) {
11710                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11711                 }
11712                 ndr->depth--;
11713                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
11714                 ndr->depth++;
11715                 if (r->in.client_account) {
11716                         ndr_print_string(ndr, "client_account", r->in.client_account);
11717                 }
11718                 ndr->depth--;
11719                 ndr_print_uint32(ndr, "mask", r->in.mask);
11720                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11721                 ndr->depth++;
11722                 if (r->in.domain_name) {
11723                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11724                 }
11725                 ndr->depth--;
11726                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11727                 ndr->depth++;
11728                 if (r->in.domain_guid) {
11729                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11730                 }
11731                 ndr->depth--;
11732                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
11733                 ndr->depth++;
11734                 if (r->in.site_name) {
11735                         ndr_print_string(ndr, "site_name", r->in.site_name);
11736                 }
11737                 ndr->depth--;
11738                 ndr_print_uint32(ndr, "flags", r->in.flags);
11739                 ndr->depth--;
11740         }
11741         if (flags & NDR_OUT) {
11742                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
11743                 ndr->depth++;
11744                 ndr_print_ptr(ndr, "info", r->out.info);
11745                 ndr->depth++;
11746                 if (r->out.info) {
11747                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info);
11748                 }
11749                 ndr->depth--;
11750                 ndr_print_WERROR(ndr, "result", r->out.result);
11751                 ndr->depth--;
11752         }
11753         ndr->depth--;
11754 }
11755
11756 NTSTATUS ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
11757 {
11758         if (flags & NDR_IN) {
11759         }
11760         if (flags & NDR_OUT) {
11761                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11762         }
11763         return NT_STATUS_OK;
11764 }
11765
11766 NTSTATUS ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
11767 {
11768         if (flags & NDR_IN) {
11769         }
11770         if (flags & NDR_OUT) {
11771                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11772         }
11773         return NT_STATUS_OK;
11774 }
11775
11776 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
11777 {
11778         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
11779         ndr->depth++;
11780         if (flags & NDR_SET_VALUES) {
11781                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11782         }
11783         if (flags & NDR_IN) {
11784                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
11785                 ndr->depth++;
11786                 ndr->depth--;
11787         }
11788         if (flags & NDR_OUT) {
11789                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
11790                 ndr->depth++;
11791                 ndr_print_WERROR(ndr, "result", r->out.result);
11792                 ndr->depth--;
11793         }
11794         ndr->depth--;
11795 }
11796
11797 NTSTATUS ndr_push_netr_NETRENUMERATETRUSTEDDOMAINSEX(struct ndr_push *ndr, int flags, const struct netr_NETRENUMERATETRUSTEDDOMAINSEX *r)
11798 {
11799         if (flags & NDR_IN) {
11800         }
11801         if (flags & NDR_OUT) {
11802                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11803         }
11804         return NT_STATUS_OK;
11805 }
11806
11807 NTSTATUS ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINSEX(struct ndr_pull *ndr, int flags, struct netr_NETRENUMERATETRUSTEDDOMAINSEX *r)
11808 {
11809         if (flags & NDR_IN) {
11810         }
11811         if (flags & NDR_OUT) {
11812                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11813         }
11814         return NT_STATUS_OK;
11815 }
11816
11817 _PUBLIC_ void ndr_print_netr_NETRENUMERATETRUSTEDDOMAINSEX(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRENUMERATETRUSTEDDOMAINSEX *r)
11818 {
11819         ndr_print_struct(ndr, name, "netr_NETRENUMERATETRUSTEDDOMAINSEX");
11820         ndr->depth++;
11821         if (flags & NDR_SET_VALUES) {
11822                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11823         }
11824         if (flags & NDR_IN) {
11825                 ndr_print_struct(ndr, "in", "netr_NETRENUMERATETRUSTEDDOMAINSEX");
11826                 ndr->depth++;
11827                 ndr->depth--;
11828         }
11829         if (flags & NDR_OUT) {
11830                 ndr_print_struct(ndr, "out", "netr_NETRENUMERATETRUSTEDDOMAINSEX");
11831                 ndr->depth++;
11832                 ndr_print_WERROR(ndr, "result", r->out.result);
11833                 ndr->depth--;
11834         }
11835         ndr->depth--;
11836 }
11837
11838 NTSTATUS ndr_push_netr_DSRADDRESSTOSITENAMESEXW(struct ndr_push *ndr, int flags, const struct netr_DSRADDRESSTOSITENAMESEXW *r)
11839 {
11840         if (flags & NDR_IN) {
11841         }
11842         if (flags & NDR_OUT) {
11843                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11844         }
11845         return NT_STATUS_OK;
11846 }
11847
11848 NTSTATUS ndr_pull_netr_DSRADDRESSTOSITENAMESEXW(struct ndr_pull *ndr, int flags, struct netr_DSRADDRESSTOSITENAMESEXW *r)
11849 {
11850         if (flags & NDR_IN) {
11851         }
11852         if (flags & NDR_OUT) {
11853                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11854         }
11855         return NT_STATUS_OK;
11856 }
11857
11858 _PUBLIC_ void ndr_print_netr_DSRADDRESSTOSITENAMESEXW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRADDRESSTOSITENAMESEXW *r)
11859 {
11860         ndr_print_struct(ndr, name, "netr_DSRADDRESSTOSITENAMESEXW");
11861         ndr->depth++;
11862         if (flags & NDR_SET_VALUES) {
11863                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11864         }
11865         if (flags & NDR_IN) {
11866                 ndr_print_struct(ndr, "in", "netr_DSRADDRESSTOSITENAMESEXW");
11867                 ndr->depth++;
11868                 ndr->depth--;
11869         }
11870         if (flags & NDR_OUT) {
11871                 ndr_print_struct(ndr, "out", "netr_DSRADDRESSTOSITENAMESEXW");
11872                 ndr->depth++;
11873                 ndr_print_WERROR(ndr, "result", r->out.result);
11874                 ndr->depth--;
11875         }
11876         ndr->depth--;
11877 }
11878
11879 NTSTATUS ndr_push_netr_DSRGETDCSITECOVERAGEW(struct ndr_push *ndr, int flags, const struct netr_DSRGETDCSITECOVERAGEW *r)
11880 {
11881         if (flags & NDR_IN) {
11882         }
11883         if (flags & NDR_OUT) {
11884                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11885         }
11886         return NT_STATUS_OK;
11887 }
11888
11889 NTSTATUS ndr_pull_netr_DSRGETDCSITECOVERAGEW(struct ndr_pull *ndr, int flags, struct netr_DSRGETDCSITECOVERAGEW *r)
11890 {
11891         if (flags & NDR_IN) {
11892         }
11893         if (flags & NDR_OUT) {
11894                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11895         }
11896         return NT_STATUS_OK;
11897 }
11898
11899 _PUBLIC_ void ndr_print_netr_DSRGETDCSITECOVERAGEW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRGETDCSITECOVERAGEW *r)
11900 {
11901         ndr_print_struct(ndr, name, "netr_DSRGETDCSITECOVERAGEW");
11902         ndr->depth++;
11903         if (flags & NDR_SET_VALUES) {
11904                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11905         }
11906         if (flags & NDR_IN) {
11907                 ndr_print_struct(ndr, "in", "netr_DSRGETDCSITECOVERAGEW");
11908                 ndr->depth++;
11909                 ndr->depth--;
11910         }
11911         if (flags & NDR_OUT) {
11912                 ndr_print_struct(ndr, "out", "netr_DSRGETDCSITECOVERAGEW");
11913                 ndr->depth++;
11914                 ndr_print_WERROR(ndr, "result", r->out.result);
11915                 ndr->depth--;
11916         }
11917         ndr->depth--;
11918 }
11919
11920 NTSTATUS ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
11921 {
11922         if (flags & NDR_IN) {
11923                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11924                 if (r->in.server_name) {
11925                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11926                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11927                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11928                         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));
11929                 }
11930                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11931                 if (r->in.computer_name) {
11932                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11933                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11934                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11935                         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));
11936                 }
11937                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
11938                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
11939                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
11940                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
11941                 if (r->in.flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11942                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
11943         }
11944         if (flags & NDR_OUT) {
11945                 if (r->out.validation == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11946                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
11947                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
11948                 if (r->out.authoritative == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11949                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
11950                 if (r->out.flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11951                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
11952                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11953         }
11954         return NT_STATUS_OK;
11955 }
11956
11957 NTSTATUS ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
11958 {
11959         uint32_t _ptr_server_name;
11960         uint32_t _ptr_computer_name;
11961         TALLOC_CTX *_mem_save_server_name_0;
11962         TALLOC_CTX *_mem_save_computer_name_0;
11963         TALLOC_CTX *_mem_save_validation_0;
11964         TALLOC_CTX *_mem_save_authoritative_0;
11965         TALLOC_CTX *_mem_save_flags_0;
11966         if (flags & NDR_IN) {
11967                 ZERO_STRUCT(r->out);
11968
11969                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11970                 if (_ptr_server_name) {
11971                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11972                 } else {
11973                         r->in.server_name = NULL;
11974                 }
11975                 if (r->in.server_name) {
11976                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11977                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11978                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11979                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11980                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11981                                 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));
11982                         }
11983                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11984                         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));
11985                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11986                 }
11987                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
11988                 if (_ptr_computer_name) {
11989                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
11990                 } else {
11991                         r->in.computer_name = NULL;
11992                 }
11993                 if (r->in.computer_name) {
11994                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11995                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
11996                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11997                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11998                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11999                                 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));
12000                         }
12001                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12002                         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));
12003                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12004                 }
12005                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
12006                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
12007                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
12008                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
12009                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12010                         NDR_PULL_ALLOC(ndr, r->in.flags);
12011                 }
12012                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12013                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
12014                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
12015                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
12016                 NDR_PULL_ALLOC(ndr, r->out.validation);
12017                 ZERO_STRUCTP(r->out.validation);
12018                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
12019                 ZERO_STRUCTP(r->out.authoritative);
12020                 NDR_PULL_ALLOC(ndr, r->out.flags);
12021                 *r->out.flags = *r->in.flags;
12022         }
12023         if (flags & NDR_OUT) {
12024                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12025                         NDR_PULL_ALLOC(ndr, r->out.validation);
12026                 }
12027                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
12028                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
12029                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
12030                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
12031                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
12032                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12033                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
12034                 }
12035                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
12036                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
12037                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
12038                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
12039                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12040                         NDR_PULL_ALLOC(ndr, r->out.flags);
12041                 }
12042                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12043                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
12044                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
12045                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
12046                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12047         }
12048         return NT_STATUS_OK;
12049 }
12050
12051 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
12052 {
12053         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
12054         ndr->depth++;
12055         if (flags & NDR_SET_VALUES) {
12056                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12057         }
12058         if (flags & NDR_IN) {
12059                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
12060                 ndr->depth++;
12061                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12062                 ndr->depth++;
12063                 if (r->in.server_name) {
12064                         ndr_print_string(ndr, "server_name", r->in.server_name);
12065                 }
12066                 ndr->depth--;
12067                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12068                 ndr->depth++;
12069                 if (r->in.computer_name) {
12070                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12071                 }
12072                 ndr->depth--;
12073                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
12074                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
12075                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
12076                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
12077                 ndr_print_ptr(ndr, "flags", r->in.flags);
12078                 ndr->depth++;
12079                 ndr_print_uint32(ndr, "flags", *r->in.flags);
12080                 ndr->depth--;
12081                 ndr->depth--;
12082         }
12083         if (flags & NDR_OUT) {
12084                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
12085                 ndr->depth++;
12086                 ndr_print_ptr(ndr, "validation", r->out.validation);
12087                 ndr->depth++;
12088                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
12089                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
12090                 ndr->depth--;
12091                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
12092                 ndr->depth++;
12093                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
12094                 ndr->depth--;
12095                 ndr_print_ptr(ndr, "flags", r->out.flags);
12096                 ndr->depth++;
12097                 ndr_print_uint32(ndr, "flags", *r->out.flags);
12098                 ndr->depth--;
12099                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12100                 ndr->depth--;
12101         }
12102         ndr->depth--;
12103 }
12104
12105 NTSTATUS ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
12106 {
12107         uint32_t cntr_trusts_1;
12108         if (flags & NDR_IN) {
12109                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12110                 if (r->in.server_name) {
12111                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12112                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12113                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12114                         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));
12115                 }
12116                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
12117         }
12118         if (flags & NDR_OUT) {
12119                 if (r->out.count == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
12120                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
12121                 if (r->out.trusts == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
12122                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
12123                 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->out.count; cntr_trusts_1++) {
12124                         if (r->out.trusts[cntr_trusts_1] == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
12125                         NDR_CHECK(ndr_push_ref_ptr(ndr));
12126                 }
12127                 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->out.count; cntr_trusts_1++) {
12128                         NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts[cntr_trusts_1]));
12129                 }
12130                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12131         }
12132         return NT_STATUS_OK;
12133 }
12134
12135 NTSTATUS ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
12136 {
12137         uint32_t _ptr_server_name;
12138         uint32_t _ptr_trusts;
12139         uint32_t cntr_trusts_1;
12140         TALLOC_CTX *_mem_save_server_name_0;
12141         TALLOC_CTX *_mem_save_count_0;
12142         TALLOC_CTX *_mem_save_trusts_1;
12143         TALLOC_CTX *_mem_save_trusts_2;
12144         if (flags & NDR_IN) {
12145                 ZERO_STRUCT(r->out);
12146
12147                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12148                 if (_ptr_server_name) {
12149                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12150                 } else {
12151                         r->in.server_name = NULL;
12152                 }
12153                 if (r->in.server_name) {
12154                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12155                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12156                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12157                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12158                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12159                                 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));
12160                         }
12161                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12162                         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));
12163                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12164                 }
12165                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
12166                 NDR_PULL_ALLOC(ndr, r->out.count);
12167                 ZERO_STRUCTP(r->out.count);
12168                 NDR_PULL_ALLOC_N(ndr, r->out.trusts, count);
12169                 memset(r->out.trusts, 0, count * sizeof(*r->out.trusts));
12170         }
12171         if (flags & NDR_OUT) {
12172                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12173                         NDR_PULL_ALLOC(ndr, r->out.count);
12174                 }
12175                 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
12176                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
12177                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
12178                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
12179                 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.trusts));
12180                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12181                         NDR_PULL_ALLOC_N(ndr, r->out.trusts, ndr_get_array_size(ndr, &r->out.trusts));
12182                 }
12183                 _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
12184                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, 0);
12185                 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->out.count; cntr_trusts_1++) {
12186                         NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_trusts));
12187                         if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12188                                 NDR_PULL_ALLOC(ndr, r->out.trusts[cntr_trusts_1]);
12189                         }
12190                 }
12191                 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->out.count; cntr_trusts_1++) {
12192                         _mem_save_trusts_2 = NDR_PULL_GET_MEM_CTX(ndr);
12193                         NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts[cntr_trusts_1], LIBNDR_FLAG_REF_ALLOC);
12194                         NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts[cntr_trusts_1]));
12195                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_2, LIBNDR_FLAG_REF_ALLOC);
12196                 }
12197                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
12198                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12199                 if (r->out.trusts) {
12200                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.trusts, r->out.count));
12201                 }
12202         }
12203         return NT_STATUS_OK;
12204 }
12205
12206 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
12207 {
12208         uint32_t cntr_trusts_1;
12209         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
12210         ndr->depth++;
12211         if (flags & NDR_SET_VALUES) {
12212                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12213         }
12214         if (flags & NDR_IN) {
12215                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
12216                 ndr->depth++;
12217                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12218                 ndr->depth++;
12219                 if (r->in.server_name) {
12220                         ndr_print_string(ndr, "server_name", r->in.server_name);
12221                 }
12222                 ndr->depth--;
12223                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
12224                 ndr->depth--;
12225         }
12226         if (flags & NDR_OUT) {
12227                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
12228                 ndr->depth++;
12229                 ndr_print_ptr(ndr, "count", r->out.count);
12230                 ndr->depth++;
12231                 ndr_print_uint32(ndr, "count", *r->out.count);
12232                 ndr->depth--;
12233                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
12234                 ndr->depth++;
12235                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", r->out.count);
12236                 ndr->depth++;
12237                 for (cntr_trusts_1=0;cntr_trusts_1<r->out.count;cntr_trusts_1++) {
12238                         char *idx_1=NULL;
12239                         asprintf(&idx_1, "[%d]", cntr_trusts_1);
12240                         if (idx_1) {
12241                                 ndr_print_ptr(ndr, "trusts", r->out.trusts[cntr_trusts_1]);
12242                                 ndr->depth++;
12243                                 ndr_print_netr_DomainTrust(ndr, "trusts", r->out.trusts[cntr_trusts_1]);
12244                                 ndr->depth--;
12245                                 free(idx_1);
12246                         }
12247                 }
12248                 ndr->depth--;
12249                 ndr->depth--;
12250                 ndr_print_WERROR(ndr, "result", r->out.result);
12251                 ndr->depth--;
12252         }
12253         ndr->depth--;
12254 }
12255
12256 NTSTATUS ndr_push_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_push *ndr, int flags, const struct netr_DSRDEREGISTERDNSHOSTRECORDS *r)
12257 {
12258         if (flags & NDR_IN) {
12259         }
12260         if (flags & NDR_OUT) {
12261                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12262         }
12263         return NT_STATUS_OK;
12264 }
12265
12266 NTSTATUS ndr_pull_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_pull *ndr, int flags, struct netr_DSRDEREGISTERDNSHOSTRECORDS *r)
12267 {
12268         if (flags & NDR_IN) {
12269         }
12270         if (flags & NDR_OUT) {
12271                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12272         }
12273         return NT_STATUS_OK;
12274 }
12275
12276 _PUBLIC_ void ndr_print_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRDEREGISTERDNSHOSTRECORDS *r)
12277 {
12278         ndr_print_struct(ndr, name, "netr_DSRDEREGISTERDNSHOSTRECORDS");
12279         ndr->depth++;
12280         if (flags & NDR_SET_VALUES) {
12281                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12282         }
12283         if (flags & NDR_IN) {
12284                 ndr_print_struct(ndr, "in", "netr_DSRDEREGISTERDNSHOSTRECORDS");
12285                 ndr->depth++;
12286                 ndr->depth--;
12287         }
12288         if (flags & NDR_OUT) {
12289                 ndr_print_struct(ndr, "out", "netr_DSRDEREGISTERDNSHOSTRECORDS");
12290                 ndr->depth++;
12291                 ndr_print_WERROR(ndr, "result", r->out.result);
12292                 ndr->depth--;
12293         }
12294         ndr->depth--;
12295 }
12296
12297 NTSTATUS ndr_push_netr_NETRSERVERTRUSTPASSWORDSGET(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERTRUSTPASSWORDSGET *r)
12298 {
12299         if (flags & NDR_IN) {
12300         }
12301         if (flags & NDR_OUT) {
12302                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12303         }
12304         return NT_STATUS_OK;
12305 }
12306
12307 NTSTATUS ndr_pull_netr_NETRSERVERTRUSTPASSWORDSGET(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERTRUSTPASSWORDSGET *r)
12308 {
12309         if (flags & NDR_IN) {
12310         }
12311         if (flags & NDR_OUT) {
12312                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12313         }
12314         return NT_STATUS_OK;
12315 }
12316
12317 _PUBLIC_ void ndr_print_netr_NETRSERVERTRUSTPASSWORDSGET(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERTRUSTPASSWORDSGET *r)
12318 {
12319         ndr_print_struct(ndr, name, "netr_NETRSERVERTRUSTPASSWORDSGET");
12320         ndr->depth++;
12321         if (flags & NDR_SET_VALUES) {
12322                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12323         }
12324         if (flags & NDR_IN) {
12325                 ndr_print_struct(ndr, "in", "netr_NETRSERVERTRUSTPASSWORDSGET");
12326                 ndr->depth++;
12327                 ndr->depth--;
12328         }
12329         if (flags & NDR_OUT) {
12330                 ndr_print_struct(ndr, "out", "netr_NETRSERVERTRUSTPASSWORDSGET");
12331                 ndr->depth++;
12332                 ndr_print_WERROR(ndr, "result", r->out.result);
12333                 ndr->depth--;
12334         }
12335         ndr->depth--;
12336 }
12337
12338 NTSTATUS ndr_push_netr_DSRGETFORESTTRUSTINFORMATION(struct ndr_push *ndr, int flags, const struct netr_DSRGETFORESTTRUSTINFORMATION *r)
12339 {
12340         if (flags & NDR_IN) {
12341         }
12342         if (flags & NDR_OUT) {
12343                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12344         }
12345         return NT_STATUS_OK;
12346 }
12347
12348 NTSTATUS ndr_pull_netr_DSRGETFORESTTRUSTINFORMATION(struct ndr_pull *ndr, int flags, struct netr_DSRGETFORESTTRUSTINFORMATION *r)
12349 {
12350         if (flags & NDR_IN) {
12351         }
12352         if (flags & NDR_OUT) {
12353                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12354         }
12355         return NT_STATUS_OK;
12356 }
12357
12358 _PUBLIC_ void ndr_print_netr_DSRGETFORESTTRUSTINFORMATION(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRGETFORESTTRUSTINFORMATION *r)
12359 {
12360         ndr_print_struct(ndr, name, "netr_DSRGETFORESTTRUSTINFORMATION");
12361         ndr->depth++;
12362         if (flags & NDR_SET_VALUES) {
12363                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12364         }
12365         if (flags & NDR_IN) {
12366                 ndr_print_struct(ndr, "in", "netr_DSRGETFORESTTRUSTINFORMATION");
12367                 ndr->depth++;
12368                 ndr->depth--;
12369         }
12370         if (flags & NDR_OUT) {
12371                 ndr_print_struct(ndr, "out", "netr_DSRGETFORESTTRUSTINFORMATION");
12372                 ndr->depth++;
12373                 ndr_print_WERROR(ndr, "result", r->out.result);
12374                 ndr->depth--;
12375         }
12376         ndr->depth--;
12377 }
12378
12379 NTSTATUS ndr_push_netr_NETRGETFORESTTRUSTINFORMATION(struct ndr_push *ndr, int flags, const struct netr_NETRGETFORESTTRUSTINFORMATION *r)
12380 {
12381         if (flags & NDR_IN) {
12382         }
12383         if (flags & NDR_OUT) {
12384                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12385         }
12386         return NT_STATUS_OK;
12387 }
12388
12389 NTSTATUS ndr_pull_netr_NETRGETFORESTTRUSTINFORMATION(struct ndr_pull *ndr, int flags, struct netr_NETRGETFORESTTRUSTINFORMATION *r)
12390 {
12391         if (flags & NDR_IN) {
12392         }
12393         if (flags & NDR_OUT) {
12394                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12395         }
12396         return NT_STATUS_OK;
12397 }
12398
12399 _PUBLIC_ void ndr_print_netr_NETRGETFORESTTRUSTINFORMATION(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRGETFORESTTRUSTINFORMATION *r)
12400 {
12401         ndr_print_struct(ndr, name, "netr_NETRGETFORESTTRUSTINFORMATION");
12402         ndr->depth++;
12403         if (flags & NDR_SET_VALUES) {
12404                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12405         }
12406         if (flags & NDR_IN) {
12407                 ndr_print_struct(ndr, "in", "netr_NETRGETFORESTTRUSTINFORMATION");
12408                 ndr->depth++;
12409                 ndr->depth--;
12410         }
12411         if (flags & NDR_OUT) {
12412                 ndr_print_struct(ndr, "out", "netr_NETRGETFORESTTRUSTINFORMATION");
12413                 ndr->depth++;
12414                 ndr_print_WERROR(ndr, "result", r->out.result);
12415                 ndr->depth--;
12416         }
12417         ndr->depth--;
12418 }
12419
12420 NTSTATUS ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
12421 {
12422         if (flags & NDR_IN) {
12423                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12424                 if (r->in.server_name) {
12425                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12426                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12427                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12428                         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));
12429                 }
12430                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12431                 if (r->in.computer_name) {
12432                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12433                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12434                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12435                         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));
12436                 }
12437                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
12438                 if (r->in.credential) {
12439                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12440                 }
12441                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
12442                 if (r->in.return_authenticator) {
12443                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12444                 }
12445                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
12446                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
12447                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
12448                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
12449                 if (r->in.flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
12450                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
12451         }
12452         if (flags & NDR_OUT) {
12453                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
12454                 if (r->out.return_authenticator) {
12455                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12456                 }
12457                 if (r->out.validation == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
12458                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
12459                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
12460                 if (r->out.authoritative == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
12461                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
12462                 if (r->out.flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
12463                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
12464                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12465         }
12466         return NT_STATUS_OK;
12467 }
12468
12469 NTSTATUS ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
12470 {
12471         uint32_t _ptr_server_name;
12472         uint32_t _ptr_computer_name;
12473         uint32_t _ptr_credential;
12474         uint32_t _ptr_return_authenticator;
12475         TALLOC_CTX *_mem_save_server_name_0;
12476         TALLOC_CTX *_mem_save_computer_name_0;
12477         TALLOC_CTX *_mem_save_credential_0;
12478         TALLOC_CTX *_mem_save_return_authenticator_0;
12479         TALLOC_CTX *_mem_save_validation_0;
12480         TALLOC_CTX *_mem_save_authoritative_0;
12481         TALLOC_CTX *_mem_save_flags_0;
12482         if (flags & NDR_IN) {
12483                 ZERO_STRUCT(r->out);
12484
12485                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12486                 if (_ptr_server_name) {
12487                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12488                 } else {
12489                         r->in.server_name = NULL;
12490                 }
12491                 if (r->in.server_name) {
12492                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12493                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12494                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12495                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12496                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12497                                 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));
12498                         }
12499                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12500                         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));
12501                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12502                 }
12503                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12504                 if (_ptr_computer_name) {
12505                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12506                 } else {
12507                         r->in.computer_name = NULL;
12508                 }
12509                 if (r->in.computer_name) {
12510                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12511                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12512                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12513                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12514                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12515                                 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));
12516                         }
12517                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12518                         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));
12519                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12520                 }
12521                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
12522                 if (_ptr_credential) {
12523                         NDR_PULL_ALLOC(ndr, r->in.credential);
12524                 } else {
12525                         r->in.credential = NULL;
12526                 }
12527                 if (r->in.credential) {
12528                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12529                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
12530                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12531                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
12532                 }
12533                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
12534                 if (_ptr_return_authenticator) {
12535                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12536                 } else {
12537                         r->in.return_authenticator = NULL;
12538                 }
12539                 if (r->in.return_authenticator) {
12540                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12541                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
12542                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12543                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
12544                 }
12545                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
12546                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
12547                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
12548                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
12549                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12550                         NDR_PULL_ALLOC(ndr, r->in.flags);
12551                 }
12552                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12553                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
12554                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
12555                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
12556                 NDR_PULL_ALLOC(ndr, r->out.validation);
12557                 ZERO_STRUCTP(r->out.validation);
12558                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
12559                 ZERO_STRUCTP(r->out.authoritative);
12560                 NDR_PULL_ALLOC(ndr, r->out.flags);
12561                 *r->out.flags = *r->in.flags;
12562         }
12563         if (flags & NDR_OUT) {
12564                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
12565                 if (_ptr_return_authenticator) {
12566                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12567                 } else {
12568                         r->out.return_authenticator = NULL;
12569                 }
12570                 if (r->out.return_authenticator) {
12571                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12572                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
12573                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12574                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
12575                 }
12576                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12577                         NDR_PULL_ALLOC(ndr, r->out.validation);
12578                 }
12579                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
12580                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
12581                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
12582                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
12583                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
12584                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12585                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
12586                 }
12587                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
12588                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
12589                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
12590                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
12591                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12592                         NDR_PULL_ALLOC(ndr, r->out.flags);
12593                 }
12594                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12595                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
12596                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
12597                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
12598                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12599         }
12600         return NT_STATUS_OK;
12601 }
12602
12603 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
12604 {
12605         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
12606         ndr->depth++;
12607         if (flags & NDR_SET_VALUES) {
12608                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12609         }
12610         if (flags & NDR_IN) {
12611                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
12612                 ndr->depth++;
12613                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12614                 ndr->depth++;
12615                 if (r->in.server_name) {
12616                         ndr_print_string(ndr, "server_name", r->in.server_name);
12617                 }
12618                 ndr->depth--;
12619                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12620                 ndr->depth++;
12621                 if (r->in.computer_name) {
12622                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12623                 }
12624                 ndr->depth--;
12625                 ndr_print_ptr(ndr, "credential", r->in.credential);
12626                 ndr->depth++;
12627                 if (r->in.credential) {
12628                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12629                 }
12630                 ndr->depth--;
12631                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12632                 ndr->depth++;
12633                 if (r->in.return_authenticator) {
12634                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12635                 }
12636                 ndr->depth--;
12637                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
12638                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
12639                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
12640                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
12641                 ndr_print_ptr(ndr, "flags", r->in.flags);
12642                 ndr->depth++;
12643                 ndr_print_uint32(ndr, "flags", *r->in.flags);
12644                 ndr->depth--;
12645                 ndr->depth--;
12646         }
12647         if (flags & NDR_OUT) {
12648                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
12649                 ndr->depth++;
12650                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12651                 ndr->depth++;
12652                 if (r->out.return_authenticator) {
12653                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12654                 }
12655                 ndr->depth--;
12656                 ndr_print_ptr(ndr, "validation", r->out.validation);
12657                 ndr->depth++;
12658                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
12659                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
12660                 ndr->depth--;
12661                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
12662                 ndr->depth++;
12663                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
12664                 ndr->depth--;
12665                 ndr_print_ptr(ndr, "flags", r->out.flags);
12666                 ndr->depth++;
12667                 ndr_print_uint32(ndr, "flags", *r->out.flags);
12668                 ndr->depth--;
12669                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12670                 ndr->depth--;
12671         }
12672         ndr->depth--;
12673 }
12674
12675 NTSTATUS ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
12676 {
12677         if (flags & NDR_IN) {
12678         }
12679         if (flags & NDR_OUT) {
12680                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12681         }
12682         return NT_STATUS_OK;
12683 }
12684
12685 NTSTATUS ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERGETTRUSTINFO *r)
12686 {
12687         if (flags & NDR_IN) {
12688         }
12689         if (flags & NDR_OUT) {
12690                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12691         }
12692         return NT_STATUS_OK;
12693 }
12694
12695 _PUBLIC_ void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
12696 {
12697         ndr_print_struct(ndr, name, "netr_NETRSERVERGETTRUSTINFO");
12698         ndr->depth++;
12699         if (flags & NDR_SET_VALUES) {
12700                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12701         }
12702         if (flags & NDR_IN) {
12703                 ndr_print_struct(ndr, "in", "netr_NETRSERVERGETTRUSTINFO");
12704                 ndr->depth++;
12705                 ndr->depth--;
12706         }
12707         if (flags & NDR_OUT) {
12708                 ndr_print_struct(ndr, "out", "netr_NETRSERVERGETTRUSTINFO");
12709                 ndr->depth++;
12710                 ndr_print_WERROR(ndr, "result", r->out.result);
12711                 ndr->depth--;
12712         }
12713         ndr->depth--;
12714 }
12715
12716 const struct ndr_interface_call netlogon_calls[] = {
12717         {
12718                 "netr_LogonUasLogon",
12719                 sizeof(struct netr_LogonUasLogon),
12720                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
12721                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
12722                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
12723                 False,
12724         },
12725         {
12726                 "netr_LogonUasLogoff",
12727                 sizeof(struct netr_LogonUasLogoff),
12728                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
12729                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
12730                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
12731                 False,
12732         },
12733         {
12734                 "netr_LogonSamLogon",
12735                 sizeof(struct netr_LogonSamLogon),
12736                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
12737                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
12738                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
12739                 False,
12740         },
12741         {
12742                 "netr_LogonSamLogoff",
12743                 sizeof(struct netr_LogonSamLogoff),
12744                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
12745                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
12746                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
12747                 False,
12748         },
12749         {
12750                 "netr_ServerReqChallenge",
12751                 sizeof(struct netr_ServerReqChallenge),
12752                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
12753                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
12754                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
12755                 False,
12756         },
12757         {
12758                 "netr_ServerAuthenticate",
12759                 sizeof(struct netr_ServerAuthenticate),
12760                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
12761                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
12762                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
12763                 False,
12764         },
12765         {
12766                 "netr_ServerPasswordSet",
12767                 sizeof(struct netr_ServerPasswordSet),
12768                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
12769                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
12770                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
12771                 False,
12772         },
12773         {
12774                 "netr_DatabaseDeltas",
12775                 sizeof(struct netr_DatabaseDeltas),
12776                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
12777                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
12778                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
12779                 False,
12780         },
12781         {
12782                 "netr_DatabaseSync",
12783                 sizeof(struct netr_DatabaseSync),
12784                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
12785                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
12786                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
12787                 False,
12788         },
12789         {
12790                 "netr_AccountDeltas",
12791                 sizeof(struct netr_AccountDeltas),
12792                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
12793                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
12794                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
12795                 False,
12796         },
12797         {
12798                 "netr_AccountSync",
12799                 sizeof(struct netr_AccountSync),
12800                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
12801                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
12802                 (ndr_print_function_t) ndr_print_netr_AccountSync,
12803                 False,
12804         },
12805         {
12806                 "netr_GetDcName",
12807                 sizeof(struct netr_GetDcName),
12808                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
12809                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
12810                 (ndr_print_function_t) ndr_print_netr_GetDcName,
12811                 False,
12812         },
12813         {
12814                 "netr_LogonControl",
12815                 sizeof(struct netr_LogonControl),
12816                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
12817                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
12818                 (ndr_print_function_t) ndr_print_netr_LogonControl,
12819                 False,
12820         },
12821         {
12822                 "netr_GetAnyDCName",
12823                 sizeof(struct netr_GetAnyDCName),
12824                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
12825                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
12826                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
12827                 False,
12828         },
12829         {
12830                 "netr_LogonControl2",
12831                 sizeof(struct netr_LogonControl2),
12832                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
12833                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
12834                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
12835                 False,
12836         },
12837         {
12838                 "netr_ServerAuthenticate2",
12839                 sizeof(struct netr_ServerAuthenticate2),
12840                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
12841                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
12842                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
12843                 False,
12844         },
12845         {
12846                 "netr_DatabaseSync2",
12847                 sizeof(struct netr_DatabaseSync2),
12848                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
12849                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
12850                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
12851                 False,
12852         },
12853         {
12854                 "netr_DatabaseRedo",
12855                 sizeof(struct netr_DatabaseRedo),
12856                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
12857                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
12858                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
12859                 False,
12860         },
12861         {
12862                 "netr_LogonControl2Ex",
12863                 sizeof(struct netr_LogonControl2Ex),
12864                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
12865                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
12866                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
12867                 False,
12868         },
12869         {
12870                 "netr_NETRENUMERATETRUSTEDDOMAINS",
12871                 sizeof(struct netr_NETRENUMERATETRUSTEDDOMAINS),
12872                 (ndr_push_flags_fn_t) ndr_push_netr_NETRENUMERATETRUSTEDDOMAINS,
12873                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINS,
12874                 (ndr_print_function_t) ndr_print_netr_NETRENUMERATETRUSTEDDOMAINS,
12875                 False,
12876         },
12877         {
12878                 "netr_DsRGetDCName",
12879                 sizeof(struct netr_DsRGetDCName),
12880                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
12881                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
12882                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
12883                 False,
12884         },
12885         {
12886                 "netr_NETRLOGONDUMMYROUTINE1",
12887                 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
12888                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
12889                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
12890                 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
12891                 False,
12892         },
12893         {
12894                 "netr_NETRLOGONSETSERVICEBITS",
12895                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
12896                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
12897                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
12898                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
12899                 False,
12900         },
12901         {
12902                 "netr_NETRLOGONGETTRUSTRID",
12903                 sizeof(struct netr_NETRLOGONGETTRUSTRID),
12904                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTRUSTRID,
12905                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTRUSTRID,
12906                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTRUSTRID,
12907                 False,
12908         },
12909         {
12910                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
12911                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
12912                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
12913                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
12914                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
12915                 False,
12916         },
12917         {
12918                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
12919                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
12920                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
12921                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
12922                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
12923                 False,
12924         },
12925         {
12926                 "netr_ServerAuthenticate3",
12927                 sizeof(struct netr_ServerAuthenticate3),
12928                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
12929                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
12930                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
12931                 False,
12932         },
12933         {
12934                 "netr_DsRGetDCNameEx",
12935                 sizeof(struct netr_DsRGetDCNameEx),
12936                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
12937                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
12938                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
12939                 False,
12940         },
12941         {
12942                 "netr_DsRGetSiteName",
12943                 sizeof(struct netr_DsRGetSiteName),
12944                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
12945                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
12946                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
12947                 False,
12948         },
12949         {
12950                 "netr_LogonGetDomainInfo",
12951                 sizeof(struct netr_LogonGetDomainInfo),
12952                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
12953                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
12954                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
12955                 False,
12956         },
12957         {
12958                 "netr_ServerPasswordSet2",
12959                 sizeof(struct netr_ServerPasswordSet2),
12960                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
12961                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
12962                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
12963                 False,
12964         },
12965         {
12966                 "netr_NETRSERVERPASSWORDGET",
12967                 sizeof(struct netr_NETRSERVERPASSWORDGET),
12968                 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERPASSWORDGET,
12969                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERPASSWORDGET,
12970                 (ndr_print_function_t) ndr_print_netr_NETRSERVERPASSWORDGET,
12971                 False,
12972         },
12973         {
12974                 "netr_NETRLOGONSENDTOSAM",
12975                 sizeof(struct netr_NETRLOGONSENDTOSAM),
12976                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
12977                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
12978                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
12979                 False,
12980         },
12981         {
12982                 "netr_DSRADDRESSTOSITENAMESW",
12983                 sizeof(struct netr_DSRADDRESSTOSITENAMESW),
12984                 (ndr_push_flags_fn_t) ndr_push_netr_DSRADDRESSTOSITENAMESW,
12985                 (ndr_pull_flags_fn_t) ndr_pull_netr_DSRADDRESSTOSITENAMESW,
12986                 (ndr_print_function_t) ndr_print_netr_DSRADDRESSTOSITENAMESW,
12987                 False,
12988         },
12989         {
12990                 "netr_DsRGetDCNameEx2",
12991                 sizeof(struct netr_DsRGetDCNameEx2),
12992                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
12993                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
12994                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
12995                 False,
12996         },
12997         {
12998                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
12999                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
13000                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
13001                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
13002                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
13003                 False,
13004         },
13005         {
13006                 "netr_NETRENUMERATETRUSTEDDOMAINSEX",
13007                 sizeof(struct netr_NETRENUMERATETRUSTEDDOMAINSEX),
13008                 (ndr_push_flags_fn_t) ndr_push_netr_NETRENUMERATETRUSTEDDOMAINSEX,
13009                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINSEX,
13010                 (ndr_print_function_t) ndr_print_netr_NETRENUMERATETRUSTEDDOMAINSEX,
13011                 False,
13012         },
13013         {
13014                 "netr_DSRADDRESSTOSITENAMESEXW",
13015                 sizeof(struct netr_DSRADDRESSTOSITENAMESEXW),
13016                 (ndr_push_flags_fn_t) ndr_push_netr_DSRADDRESSTOSITENAMESEXW,
13017                 (ndr_pull_flags_fn_t) ndr_pull_netr_DSRADDRESSTOSITENAMESEXW,
13018                 (ndr_print_function_t) ndr_print_netr_DSRADDRESSTOSITENAMESEXW,
13019                 False,
13020         },
13021         {
13022                 "netr_DSRGETDCSITECOVERAGEW",
13023                 sizeof(struct netr_DSRGETDCSITECOVERAGEW),
13024                 (ndr_push_flags_fn_t) ndr_push_netr_DSRGETDCSITECOVERAGEW,
13025                 (ndr_pull_flags_fn_t) ndr_pull_netr_DSRGETDCSITECOVERAGEW,
13026                 (ndr_print_function_t) ndr_print_netr_DSRGETDCSITECOVERAGEW,
13027                 False,
13028         },
13029         {
13030                 "netr_LogonSamLogonEx",
13031                 sizeof(struct netr_LogonSamLogonEx),
13032                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
13033                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
13034                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
13035                 False,
13036         },
13037         {
13038                 "netr_DsrEnumerateDomainTrusts",
13039                 sizeof(struct netr_DsrEnumerateDomainTrusts),
13040                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
13041                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
13042                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
13043                 False,
13044         },
13045         {
13046                 "netr_DSRDEREGISTERDNSHOSTRECORDS",
13047                 sizeof(struct netr_DSRDEREGISTERDNSHOSTRECORDS),
13048                 (ndr_push_flags_fn_t) ndr_push_netr_DSRDEREGISTERDNSHOSTRECORDS,
13049                 (ndr_pull_flags_fn_t) ndr_pull_netr_DSRDEREGISTERDNSHOSTRECORDS,
13050                 (ndr_print_function_t) ndr_print_netr_DSRDEREGISTERDNSHOSTRECORDS,
13051                 False,
13052         },
13053         {
13054                 "netr_NETRSERVERTRUSTPASSWORDSGET",
13055                 sizeof(struct netr_NETRSERVERTRUSTPASSWORDSGET),
13056                 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERTRUSTPASSWORDSGET,
13057                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERTRUSTPASSWORDSGET,
13058                 (ndr_print_function_t) ndr_print_netr_NETRSERVERTRUSTPASSWORDSGET,
13059                 False,
13060         },
13061         {
13062                 "netr_DSRGETFORESTTRUSTINFORMATION",
13063                 sizeof(struct netr_DSRGETFORESTTRUSTINFORMATION),
13064                 (ndr_push_flags_fn_t) ndr_push_netr_DSRGETFORESTTRUSTINFORMATION,
13065                 (ndr_pull_flags_fn_t) ndr_pull_netr_DSRGETFORESTTRUSTINFORMATION,
13066                 (ndr_print_function_t) ndr_print_netr_DSRGETFORESTTRUSTINFORMATION,
13067                 False,
13068         },
13069         {
13070                 "netr_NETRGETFORESTTRUSTINFORMATION",
13071                 sizeof(struct netr_NETRGETFORESTTRUSTINFORMATION),
13072                 (ndr_push_flags_fn_t) ndr_push_netr_NETRGETFORESTTRUSTINFORMATION,
13073                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRGETFORESTTRUSTINFORMATION,
13074                 (ndr_print_function_t) ndr_print_netr_NETRGETFORESTTRUSTINFORMATION,
13075                 False,
13076         },
13077         {
13078                 "netr_LogonSamLogonWithFlags",
13079                 sizeof(struct netr_LogonSamLogonWithFlags),
13080                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
13081                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
13082                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
13083                 False,
13084         },
13085         {
13086                 "netr_NETRSERVERGETTRUSTINFO",
13087                 sizeof(struct netr_NETRSERVERGETTRUSTINFO),
13088                 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERGETTRUSTINFO,
13089                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERGETTRUSTINFO,
13090                 (ndr_print_function_t) ndr_print_netr_NETRSERVERGETTRUSTINFO,
13091                 False,
13092         },
13093         { NULL, 0, NULL, NULL, NULL, False }
13094 };
13095
13096 const char * const netlogon_endpoint_strings[] = {
13097         "ncacn_np:[\\pipe\\netlogon]", 
13098         "ncacn_ip_tcp:", 
13099         "ncalrpc:", 
13100 };
13101
13102 const struct dcerpc_endpoint_list netlogon_endpoints = {
13103         .count  = 3,
13104         .names  = netlogon_endpoint_strings
13105 };
13106
13107 const char * const netlogon_authservice_strings[] = {
13108         "host", 
13109 };
13110
13111 const struct dcerpc_authservice_list netlogon_authservices = {
13112         .count  = 3,
13113         .names  = netlogon_authservice_strings
13114 };
13115
13116
13117 const struct dcerpc_interface_table dcerpc_table_netlogon = {
13118         .name           = "netlogon",
13119         .syntax_id      = {
13120                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
13121                 DCERPC_NETLOGON_VERSION
13122         },
13123         .helpstring     = DCERPC_NETLOGON_HELPSTRING,
13124         .num_calls      = 47,
13125         .calls          = netlogon_calls,
13126         .endpoints      = &netlogon_endpoints,
13127         .authservices   = &netlogon_authservices
13128 };
13129