Regenerate C files now that pidl reads imported files - saves a few
[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 #include "librpc/gen_ndr/ndr_nbt.h"
10 static enum ndr_err_code ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r)
11 {
12         if (ndr_flags & NDR_SCALARS) {
13                 NDR_CHECK(ndr_push_align(ndr, 4));
14                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
15                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv));
16                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags));
17                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count));
18                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count));
19                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon));
20                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff));
21                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time));
22                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time));
23                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age));
24                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change));
25                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change));
26                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer));
27                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
28                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path));
29                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
30         }
31         if (ndr_flags & NDR_BUFFERS) {
32                 if (r->account_name) {
33                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
34                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
35                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
36                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
37                 }
38                 if (r->computer) {
39                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
40                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
41                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
42                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
43                 }
44                 if (r->domain) {
45                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
46                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
47                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
48                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
49                 }
50                 if (r->script_path) {
51                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
52                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
53                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
54                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
55                 }
56         }
57         return NDR_ERR_SUCCESS;
58 }
59
60 static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r)
61 {
62         uint32_t _ptr_account_name;
63         TALLOC_CTX *_mem_save_account_name_0;
64         uint32_t _ptr_computer;
65         TALLOC_CTX *_mem_save_computer_0;
66         uint32_t _ptr_domain;
67         TALLOC_CTX *_mem_save_domain_0;
68         uint32_t _ptr_script_path;
69         TALLOC_CTX *_mem_save_script_path_0;
70         if (ndr_flags & NDR_SCALARS) {
71                 NDR_CHECK(ndr_pull_align(ndr, 4));
72                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
73                 if (_ptr_account_name) {
74                         NDR_PULL_ALLOC(ndr, r->account_name);
75                 } else {
76                         r->account_name = NULL;
77                 }
78                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv));
79                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags));
80                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count));
81                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count));
82                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon));
83                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff));
84                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time));
85                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time));
86                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age));
87                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change));
88                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change));
89                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer));
90                 if (_ptr_computer) {
91                         NDR_PULL_ALLOC(ndr, r->computer);
92                 } else {
93                         r->computer = NULL;
94                 }
95                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
96                 if (_ptr_domain) {
97                         NDR_PULL_ALLOC(ndr, r->domain);
98                 } else {
99                         r->domain = NULL;
100                 }
101                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path));
102                 if (_ptr_script_path) {
103                         NDR_PULL_ALLOC(ndr, r->script_path);
104                 } else {
105                         r->script_path = NULL;
106                 }
107                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
108         }
109         if (ndr_flags & NDR_BUFFERS) {
110                 if (r->account_name) {
111                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
112                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
113                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
114                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
115                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
116                                 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));
117                         }
118                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
119                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
120                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
121                 }
122                 if (r->computer) {
123                         _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr);
124                         NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0);
125                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer));
126                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer));
127                         if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) {
128                                 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));
129                         }
130                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t)));
131                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16));
132                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0);
133                 }
134                 if (r->domain) {
135                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
136                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
137                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
138                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
139                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
140                                 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));
141                         }
142                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
143                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
144                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
145                 }
146                 if (r->script_path) {
147                         _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
148                         NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0);
149                         NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path));
150                         NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path));
151                         if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) {
152                                 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));
153                         }
154                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t)));
155                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16));
156                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0);
157                 }
158         }
159         return NDR_ERR_SUCCESS;
160 }
161
162 _PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r)
163 {
164         ndr_print_struct(ndr, name, "netr_UasInfo");
165         ndr->depth++;
166         ndr_print_ptr(ndr, "account_name", r->account_name);
167         ndr->depth++;
168         if (r->account_name) {
169                 ndr_print_string(ndr, "account_name", r->account_name);
170         }
171         ndr->depth--;
172         ndr_print_uint32(ndr, "priv", r->priv);
173         ndr_print_uint32(ndr, "auth_flags", r->auth_flags);
174         ndr_print_uint32(ndr, "logon_count", r->logon_count);
175         ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count);
176         ndr_print_time_t(ndr, "last_logon", r->last_logon);
177         ndr_print_time_t(ndr, "last_logoff", r->last_logoff);
178         ndr_print_time_t(ndr, "logoff_time", r->logoff_time);
179         ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time);
180         ndr_print_uint32(ndr, "password_age", r->password_age);
181         ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change);
182         ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change);
183         ndr_print_ptr(ndr, "computer", r->computer);
184         ndr->depth++;
185         if (r->computer) {
186                 ndr_print_string(ndr, "computer", r->computer);
187         }
188         ndr->depth--;
189         ndr_print_ptr(ndr, "domain", r->domain);
190         ndr->depth++;
191         if (r->domain) {
192                 ndr_print_string(ndr, "domain", r->domain);
193         }
194         ndr->depth--;
195         ndr_print_ptr(ndr, "script_path", r->script_path);
196         ndr->depth++;
197         if (r->script_path) {
198                 ndr_print_string(ndr, "script_path", r->script_path);
199         }
200         ndr->depth--;
201         ndr_print_uint32(ndr, "unknown", r->unknown);
202         ndr->depth--;
203 }
204
205 static enum ndr_err_code ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r)
206 {
207         if (ndr_flags & NDR_SCALARS) {
208                 NDR_CHECK(ndr_push_align(ndr, 4));
209                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration));
210                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
211         }
212         if (ndr_flags & NDR_BUFFERS) {
213         }
214         return NDR_ERR_SUCCESS;
215 }
216
217 static enum ndr_err_code ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r)
218 {
219         if (ndr_flags & NDR_SCALARS) {
220                 NDR_CHECK(ndr_pull_align(ndr, 4));
221                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration));
222                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
223         }
224         if (ndr_flags & NDR_BUFFERS) {
225         }
226         return NDR_ERR_SUCCESS;
227 }
228
229 _PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r)
230 {
231         ndr_print_struct(ndr, name, "netr_UasLogoffInfo");
232         ndr->depth++;
233         ndr_print_uint32(ndr, "duration", r->duration);
234         ndr_print_uint16(ndr, "logon_count", r->logon_count);
235         ndr->depth--;
236 }
237
238 _PUBLIC_ enum ndr_err_code ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r)
239 {
240         if (ndr_flags & NDR_SCALARS) {
241                 NDR_CHECK(ndr_push_align(ndr, 4));
242                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->lockout_duration));
243                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reset_count));
244                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_attempt_lockout));
245                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy));
246         }
247         if (ndr_flags & NDR_BUFFERS) {
248         }
249         return NDR_ERR_SUCCESS;
250 }
251
252 _PUBLIC_ enum ndr_err_code ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r)
253 {
254         if (ndr_flags & NDR_SCALARS) {
255                 NDR_CHECK(ndr_pull_align(ndr, 4));
256                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->lockout_duration));
257                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reset_count));
258                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_attempt_lockout));
259                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
260         }
261         if (ndr_flags & NDR_BUFFERS) {
262         }
263         return NDR_ERR_SUCCESS;
264 }
265
266 _PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r)
267 {
268         ndr_print_struct(ndr, name, "netr_AcctLockStr");
269         ndr->depth++;
270         ndr_print_dlong(ndr, "lockout_duration", r->lockout_duration);
271         ndr_print_udlong(ndr, "reset_count", r->reset_count);
272         ndr_print_uint32(ndr, "bad_attempt_lockout", r->bad_attempt_lockout);
273         ndr_print_uint32(ndr, "dummy", r->dummy);
274         ndr->depth--;
275 }
276
277 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonParameterControl(struct ndr_push *ndr, int ndr_flags, uint32_t r)
278 {
279         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
280         return NDR_ERR_SUCCESS;
281 }
282
283 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonParameterControl(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
284 {
285         uint32_t v;
286         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
287         *r = v;
288         return NDR_ERR_SUCCESS;
289 }
290
291 _PUBLIC_ void ndr_print_netr_LogonParameterControl(struct ndr_print *ndr, const char *name, uint32_t r)
292 {
293         ndr_print_uint32(ndr, name, r);
294         ndr->depth++;
295         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED, r);
296         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS, r);
297         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS, r);
298         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT, r);
299         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH, r);
300         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, r);
301         ndr->depth--;
302 }
303
304 static enum ndr_err_code ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
305 {
306         if (ndr_flags & NDR_SCALARS) {
307                 NDR_CHECK(ndr_push_align(ndr, 4));
308                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
309                 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr, NDR_SCALARS, r->parameter_control));
310                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
311                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
312                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
313                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
314         }
315         if (ndr_flags & NDR_BUFFERS) {
316                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
317                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
318                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
319         }
320         return NDR_ERR_SUCCESS;
321 }
322
323 static enum ndr_err_code ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
324 {
325         if (ndr_flags & NDR_SCALARS) {
326                 NDR_CHECK(ndr_pull_align(ndr, 4));
327                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
328                 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr, NDR_SCALARS, &r->parameter_control));
329                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
330                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
331                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
332                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
333         }
334         if (ndr_flags & NDR_BUFFERS) {
335                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
336                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
337                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
338         }
339         return NDR_ERR_SUCCESS;
340 }
341
342 _PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
343 {
344         ndr_print_struct(ndr, name, "netr_IdentityInfo");
345         ndr->depth++;
346         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
347         ndr_print_netr_LogonParameterControl(ndr, "parameter_control", r->parameter_control);
348         ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
349         ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
350         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
351         ndr_print_lsa_String(ndr, "workstation", &r->workstation);
352         ndr->depth--;
353 }
354
355 static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
356 {
357         if (ndr_flags & NDR_SCALARS) {
358                 NDR_CHECK(ndr_push_align(ndr, 4));
359                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
360                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
361                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
362         }
363         if (ndr_flags & NDR_BUFFERS) {
364                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
365         }
366         return NDR_ERR_SUCCESS;
367 }
368
369 static enum ndr_err_code ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r)
370 {
371         if (ndr_flags & NDR_SCALARS) {
372                 NDR_CHECK(ndr_pull_align(ndr, 4));
373                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
374                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
375                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
376         }
377         if (ndr_flags & NDR_BUFFERS) {
378                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
379         }
380         return NDR_ERR_SUCCESS;
381 }
382
383 _PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
384 {
385         ndr_print_struct(ndr, name, "netr_PasswordInfo");
386         ndr->depth++;
387         ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
388         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
389         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
390         ndr->depth--;
391 }
392
393 static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
394 {
395         {
396                 uint32_t _flags_save_STRUCT = ndr->flags;
397                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
398                 if (ndr_flags & NDR_SCALARS) {
399                         NDR_CHECK(ndr_push_align(ndr, 4));
400                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
401                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
402                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
403                 }
404                 if (ndr_flags & NDR_BUFFERS) {
405                         if (r->data) {
406                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
407                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
408                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
409                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
410                         }
411                 }
412                 ndr->flags = _flags_save_STRUCT;
413         }
414         return NDR_ERR_SUCCESS;
415 }
416
417 static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
418 {
419         uint32_t _ptr_data;
420         TALLOC_CTX *_mem_save_data_0;
421         {
422                 uint32_t _flags_save_STRUCT = ndr->flags;
423                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
424                 if (ndr_flags & NDR_SCALARS) {
425                         NDR_CHECK(ndr_pull_align(ndr, 4));
426                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
427                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
428                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
429                         if (_ptr_data) {
430                                 NDR_PULL_ALLOC(ndr, r->data);
431                         } else {
432                                 r->data = NULL;
433                         }
434                 }
435                 if (ndr_flags & NDR_BUFFERS) {
436                         if (r->data) {
437                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
438                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
439                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
440                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
441                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
442                                         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));
443                                 }
444                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
445                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
446                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
447                         }
448                         if (r->data) {
449                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
450                         }
451                         if (r->data) {
452                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
453                         }
454                 }
455                 ndr->flags = _flags_save_STRUCT;
456         }
457         return NDR_ERR_SUCCESS;
458 }
459
460 _PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
461 {
462         ndr_print_struct(ndr, name, "netr_ChallengeResponse");
463         {
464                 uint32_t _flags_save_STRUCT = ndr->flags;
465                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
466                 ndr->depth++;
467                 ndr_print_uint16(ndr, "length", r->length);
468                 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
469                 ndr_print_ptr(ndr, "data", r->data);
470                 ndr->depth++;
471                 if (r->data) {
472                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
473                 }
474                 ndr->depth--;
475                 ndr->depth--;
476                 ndr->flags = _flags_save_STRUCT;
477         }
478 }
479
480 static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
481 {
482         {
483                 uint32_t _flags_save_STRUCT = ndr->flags;
484                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
485                 if (ndr_flags & NDR_SCALARS) {
486                         NDR_CHECK(ndr_push_align(ndr, 4));
487                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
488                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
489                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
490                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
491                 }
492                 if (ndr_flags & NDR_BUFFERS) {
493                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
494                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
495                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
496                 }
497                 ndr->flags = _flags_save_STRUCT;
498         }
499         return NDR_ERR_SUCCESS;
500 }
501
502 static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
503 {
504         {
505                 uint32_t _flags_save_STRUCT = ndr->flags;
506                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
507                 if (ndr_flags & NDR_SCALARS) {
508                         NDR_CHECK(ndr_pull_align(ndr, 4));
509                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
510                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
511                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
512                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
513                 }
514                 if (ndr_flags & NDR_BUFFERS) {
515                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
516                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
517                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
518                 }
519                 ndr->flags = _flags_save_STRUCT;
520         }
521         return NDR_ERR_SUCCESS;
522 }
523
524 _PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
525 {
526         ndr_print_struct(ndr, name, "netr_NetworkInfo");
527         {
528                 uint32_t _flags_save_STRUCT = ndr->flags;
529                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
530                 ndr->depth++;
531                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
532                 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
533                 ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
534                 ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
535                 ndr->depth--;
536                 ndr->flags = _flags_save_STRUCT;
537         }
538 }
539
540 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonInfo(struct ndr_push *ndr, int ndr_flags, const union netr_LogonInfo *r)
541 {
542         if (ndr_flags & NDR_SCALARS) {
543                 int level = ndr_push_get_switch_value(ndr, r);
544                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
545                 switch (level) {
546                         case 1: {
547                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
548                         break; }
549
550                         case 2: {
551                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
552                         break; }
553
554                         case 3: {
555                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
556                         break; }
557
558                         case 5: {
559                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
560                         break; }
561
562                         case 6: {
563                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
564                         break; }
565
566                         default:
567                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
568                 }
569         }
570         if (ndr_flags & NDR_BUFFERS) {
571                 int level = ndr_push_get_switch_value(ndr, r);
572                 switch (level) {
573                         case 1:
574                                 if (r->password) {
575                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
576                                 }
577                         break;
578
579                         case 2:
580                                 if (r->network) {
581                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
582                                 }
583                         break;
584
585                         case 3:
586                                 if (r->password) {
587                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
588                                 }
589                         break;
590
591                         case 5:
592                                 if (r->password) {
593                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
594                                 }
595                         break;
596
597                         case 6:
598                                 if (r->network) {
599                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
600                                 }
601                         break;
602
603                         default:
604                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
605                 }
606         }
607         return NDR_ERR_SUCCESS;
608 }
609
610 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonInfo(struct ndr_pull *ndr, int ndr_flags, union netr_LogonInfo *r)
611 {
612         int level;
613         uint16_t _level;
614         TALLOC_CTX *_mem_save_password_0;
615         TALLOC_CTX *_mem_save_network_0;
616         level = ndr_pull_get_switch_value(ndr, r);
617         if (ndr_flags & NDR_SCALARS) {
618                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
619                 if (_level != level) {
620                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
621                 }
622                 switch (level) {
623                         case 1: {
624                                 uint32_t _ptr_password;
625                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
626                                 if (_ptr_password) {
627                                         NDR_PULL_ALLOC(ndr, r->password);
628                                 } else {
629                                         r->password = NULL;
630                                 }
631                         break; }
632
633                         case 2: {
634                                 uint32_t _ptr_network;
635                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
636                                 if (_ptr_network) {
637                                         NDR_PULL_ALLOC(ndr, r->network);
638                                 } else {
639                                         r->network = NULL;
640                                 }
641                         break; }
642
643                         case 3: {
644                                 uint32_t _ptr_password;
645                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
646                                 if (_ptr_password) {
647                                         NDR_PULL_ALLOC(ndr, r->password);
648                                 } else {
649                                         r->password = NULL;
650                                 }
651                         break; }
652
653                         case 5: {
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 6: {
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                         default:
674                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
675                 }
676         }
677         if (ndr_flags & NDR_BUFFERS) {
678                 switch (level) {
679                         case 1:
680                                 if (r->password) {
681                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
682                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
683                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
684                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
685                                 }
686                         break;
687
688                         case 2:
689                                 if (r->network) {
690                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
691                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
692                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
693                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
694                                 }
695                         break;
696
697                         case 3:
698                                 if (r->password) {
699                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
700                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
701                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
702                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
703                                 }
704                         break;
705
706                         case 5:
707                                 if (r->password) {
708                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
709                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
710                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
711                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
712                                 }
713                         break;
714
715                         case 6:
716                                 if (r->network) {
717                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
718                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
719                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
720                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
721                                 }
722                         break;
723
724                         default:
725                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
726                 }
727         }
728         return NDR_ERR_SUCCESS;
729 }
730
731 _PUBLIC_ void ndr_print_netr_LogonInfo(struct ndr_print *ndr, const char *name, const union netr_LogonInfo *r)
732 {
733         int level;
734         level = ndr_print_get_switch_value(ndr, r);
735         ndr_print_union(ndr, name, level, "netr_LogonInfo");
736         switch (level) {
737                 case 1:
738                         ndr_print_ptr(ndr, "password", r->password);
739                         ndr->depth++;
740                         if (r->password) {
741                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
742                         }
743                         ndr->depth--;
744                 break;
745
746                 case 2:
747                         ndr_print_ptr(ndr, "network", r->network);
748                         ndr->depth++;
749                         if (r->network) {
750                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
751                         }
752                         ndr->depth--;
753                 break;
754
755                 case 3:
756                         ndr_print_ptr(ndr, "password", r->password);
757                         ndr->depth++;
758                         if (r->password) {
759                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
760                         }
761                         ndr->depth--;
762                 break;
763
764                 case 5:
765                         ndr_print_ptr(ndr, "password", r->password);
766                         ndr->depth++;
767                         if (r->password) {
768                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
769                         }
770                         ndr->depth--;
771                 break;
772
773                 case 6:
774                         ndr_print_ptr(ndr, "network", r->network);
775                         ndr->depth++;
776                         if (r->network) {
777                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
778                         }
779                         ndr->depth--;
780                 break;
781
782                 default:
783                         ndr_print_bad_level(ndr, name, level);
784         }
785 }
786
787 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
788 {
789         {
790                 uint32_t _flags_save_STRUCT = ndr->flags;
791                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
792                 if (ndr_flags & NDR_SCALARS) {
793                         NDR_CHECK(ndr_push_align(ndr, 1));
794                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
795                 }
796                 if (ndr_flags & NDR_BUFFERS) {
797                 }
798                 ndr->flags = _flags_save_STRUCT;
799         }
800         return NDR_ERR_SUCCESS;
801 }
802
803 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
804 {
805         {
806                 uint32_t _flags_save_STRUCT = ndr->flags;
807                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
808                 if (ndr_flags & NDR_SCALARS) {
809                         NDR_CHECK(ndr_pull_align(ndr, 1));
810                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
811                 }
812                 if (ndr_flags & NDR_BUFFERS) {
813                 }
814                 ndr->flags = _flags_save_STRUCT;
815         }
816         return NDR_ERR_SUCCESS;
817 }
818
819 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
820 {
821         ndr_print_struct(ndr, name, "netr_UserSessionKey");
822         {
823                 uint32_t _flags_save_STRUCT = ndr->flags;
824                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
825                 ndr->depth++;
826                 ndr_print_array_uint8(ndr, "key", r->key, 16);
827                 ndr->depth--;
828                 ndr->flags = _flags_save_STRUCT;
829         }
830 }
831
832 _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
833 {
834         {
835                 uint32_t _flags_save_STRUCT = ndr->flags;
836                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
837                 if (ndr_flags & NDR_SCALARS) {
838                         NDR_CHECK(ndr_push_align(ndr, 1));
839                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
840                 }
841                 if (ndr_flags & NDR_BUFFERS) {
842                 }
843                 ndr->flags = _flags_save_STRUCT;
844         }
845         return NDR_ERR_SUCCESS;
846 }
847
848 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
849 {
850         {
851                 uint32_t _flags_save_STRUCT = ndr->flags;
852                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
853                 if (ndr_flags & NDR_SCALARS) {
854                         NDR_CHECK(ndr_pull_align(ndr, 1));
855                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
856                 }
857                 if (ndr_flags & NDR_BUFFERS) {
858                 }
859                 ndr->flags = _flags_save_STRUCT;
860         }
861         return NDR_ERR_SUCCESS;
862 }
863
864 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
865 {
866         ndr_print_struct(ndr, name, "netr_LMSessionKey");
867         {
868                 uint32_t _flags_save_STRUCT = ndr->flags;
869                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
870                 ndr->depth++;
871                 ndr_print_array_uint8(ndr, "key", r->key, 8);
872                 ndr->depth--;
873                 ndr->flags = _flags_save_STRUCT;
874         }
875 }
876
877 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
878 {
879         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
880         return NDR_ERR_SUCCESS;
881 }
882
883 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
884 {
885         uint32_t v;
886         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
887         *r = v;
888         return NDR_ERR_SUCCESS;
889 }
890
891 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
892 {
893         ndr_print_uint32(ndr, name, r);
894         ndr->depth++;
895         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
896         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
897         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
898         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
899         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
900         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
901         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
902         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
903         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
904         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
905         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON, r);
906         ndr->depth--;
907 }
908
909 static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
910 {
911         uint32_t cntr_unknown_0;
912         if (ndr_flags & NDR_SCALARS) {
913                 NDR_CHECK(ndr_push_align(ndr, 4));
914                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
915                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
916                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
917                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
918                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
919                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
920                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
921                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
922                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
923                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
924                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
925                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
926                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
927                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
928                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
929                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
930                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
931                 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
932                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
933                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
934                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
935                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
936                 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
937                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
938                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
939                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
940                 }
941         }
942         if (ndr_flags & NDR_BUFFERS) {
943                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
944                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
945                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
946                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
947                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
948                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
949                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
950                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
951                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
952                 if (r->domain_sid) {
953                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
954                 }
955         }
956         return NDR_ERR_SUCCESS;
957 }
958
959 static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
960 {
961         uint32_t _ptr_domain_sid;
962         TALLOC_CTX *_mem_save_domain_sid_0;
963         uint32_t cntr_unknown_0;
964         if (ndr_flags & NDR_SCALARS) {
965                 NDR_CHECK(ndr_pull_align(ndr, 4));
966                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
967                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
968                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
969                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
970                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
971                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
972                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
973                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
974                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
975                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
976                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
977                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
978                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
979                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
980                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
981                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
982                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
983                 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
984                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
985                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
986                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
987                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
988                 if (_ptr_domain_sid) {
989                         NDR_PULL_ALLOC(ndr, r->domain_sid);
990                 } else {
991                         r->domain_sid = NULL;
992                 }
993                 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
994                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
995                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
996                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
997                 }
998         }
999         if (ndr_flags & NDR_BUFFERS) {
1000                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1001                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1002                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1003                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1004                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1005                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1006                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1007                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1008                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1009                 if (r->domain_sid) {
1010                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1011                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1012                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1013                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1014                 }
1015         }
1016         return NDR_ERR_SUCCESS;
1017 }
1018
1019 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
1020 {
1021         uint32_t cntr_unknown_0;
1022         ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1023         ndr->depth++;
1024         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1025         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1026         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1027         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1028         ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1029         ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1030         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1031         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1032         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1033         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1034         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1035         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1036         ndr_print_uint16(ndr, "logon_count", r->logon_count);
1037         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1038         ndr_print_uint32(ndr, "rid", r->rid);
1039         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1040         ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1041         ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1042         ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1043         ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1044         ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1045         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1046         ndr->depth++;
1047         if (r->domain_sid) {
1048                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1049         }
1050         ndr->depth--;
1051         ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1052         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1053         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)7);
1054         ndr->depth++;
1055         for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1056                 char *idx_0=NULL;
1057                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
1058                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1059                         free(idx_0);
1060                 }
1061         }
1062         ndr->depth--;
1063         ndr->depth--;
1064 }
1065
1066 static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
1067 {
1068         if (ndr_flags & NDR_SCALARS) {
1069                 NDR_CHECK(ndr_push_align(ndr, 4));
1070                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1071         }
1072         if (ndr_flags & NDR_BUFFERS) {
1073                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1074         }
1075         return NDR_ERR_SUCCESS;
1076 }
1077
1078 static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
1079 {
1080         if (ndr_flags & NDR_SCALARS) {
1081                 NDR_CHECK(ndr_pull_align(ndr, 4));
1082                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1083         }
1084         if (ndr_flags & NDR_BUFFERS) {
1085                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1086         }
1087         return NDR_ERR_SUCCESS;
1088 }
1089
1090 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
1091 {
1092         ndr_print_struct(ndr, name, "netr_SamInfo2");
1093         ndr->depth++;
1094         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1095         ndr->depth--;
1096 }
1097
1098 static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
1099 {
1100         if (ndr_flags & NDR_SCALARS) {
1101                 NDR_CHECK(ndr_push_align(ndr, 4));
1102                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1103                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1104         }
1105         if (ndr_flags & NDR_BUFFERS) {
1106                 if (r->sid) {
1107                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1108                 }
1109         }
1110         return NDR_ERR_SUCCESS;
1111 }
1112
1113 static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
1114 {
1115         uint32_t _ptr_sid;
1116         TALLOC_CTX *_mem_save_sid_0;
1117         if (ndr_flags & NDR_SCALARS) {
1118                 NDR_CHECK(ndr_pull_align(ndr, 4));
1119                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1120                 if (_ptr_sid) {
1121                         NDR_PULL_ALLOC(ndr, r->sid);
1122                 } else {
1123                         r->sid = NULL;
1124                 }
1125                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1126         }
1127         if (ndr_flags & NDR_BUFFERS) {
1128                 if (r->sid) {
1129                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1130                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1131                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1132                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1133                 }
1134         }
1135         return NDR_ERR_SUCCESS;
1136 }
1137
1138 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
1139 {
1140         ndr_print_struct(ndr, name, "netr_SidAttr");
1141         ndr->depth++;
1142         ndr_print_ptr(ndr, "sid", r->sid);
1143         ndr->depth++;
1144         if (r->sid) {
1145                 ndr_print_dom_sid2(ndr, "sid", r->sid);
1146         }
1147         ndr->depth--;
1148         ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1149         ndr->depth--;
1150 }
1151
1152 _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
1153 {
1154         uint32_t cntr_sids_1;
1155         if (ndr_flags & NDR_SCALARS) {
1156                 NDR_CHECK(ndr_push_align(ndr, 4));
1157                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1158                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1159                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1160         }
1161         if (ndr_flags & NDR_BUFFERS) {
1162                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1163                 if (r->sids) {
1164                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1165                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1166                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1167                         }
1168                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1169                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1170                         }
1171                 }
1172         }
1173         return NDR_ERR_SUCCESS;
1174 }
1175
1176 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
1177 {
1178         uint32_t _ptr_sids;
1179         uint32_t cntr_sids_1;
1180         TALLOC_CTX *_mem_save_sids_0;
1181         TALLOC_CTX *_mem_save_sids_1;
1182         if (ndr_flags & NDR_SCALARS) {
1183                 NDR_CHECK(ndr_pull_align(ndr, 4));
1184                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1185                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1186                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1187                 if (_ptr_sids) {
1188                         NDR_PULL_ALLOC(ndr, r->sids);
1189                 } else {
1190                         r->sids = NULL;
1191                 }
1192         }
1193         if (ndr_flags & NDR_BUFFERS) {
1194                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1195                 if (r->sids) {
1196                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1197                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1198                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1199                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1200                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1201                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1202                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1203                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1204                         }
1205                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1206                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1207                         }
1208                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1209                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1210                 }
1211                 if (r->sids) {
1212                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1213                 }
1214         }
1215         return NDR_ERR_SUCCESS;
1216 }
1217
1218 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
1219 {
1220         uint32_t cntr_sids_1;
1221         ndr_print_struct(ndr, name, "netr_SamInfo3");
1222         ndr->depth++;
1223         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1224         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1225         ndr_print_ptr(ndr, "sids", r->sids);
1226         ndr->depth++;
1227         if (r->sids) {
1228                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1229                 ndr->depth++;
1230                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1231                         char *idx_1=NULL;
1232                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1233                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1234                                 free(idx_1);
1235                         }
1236                 }
1237                 ndr->depth--;
1238         }
1239         ndr->depth--;
1240         ndr->depth--;
1241 }
1242
1243 static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
1244 {
1245         uint32_t cntr_sids_1;
1246         uint32_t cntr_unknown4_0;
1247         if (ndr_flags & NDR_SCALARS) {
1248                 NDR_CHECK(ndr_push_align(ndr, 4));
1249                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1250                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1251                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1252                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1253                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1254                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1255                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1256                 }
1257         }
1258         if (ndr_flags & NDR_BUFFERS) {
1259                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1260                 if (r->sids) {
1261                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1262                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1263                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1264                         }
1265                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1266                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1267                         }
1268                 }
1269                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1270                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1271         }
1272         return NDR_ERR_SUCCESS;
1273 }
1274
1275 static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
1276 {
1277         uint32_t _ptr_sids;
1278         uint32_t cntr_sids_1;
1279         TALLOC_CTX *_mem_save_sids_0;
1280         TALLOC_CTX *_mem_save_sids_1;
1281         uint32_t cntr_unknown4_0;
1282         if (ndr_flags & NDR_SCALARS) {
1283                 NDR_CHECK(ndr_pull_align(ndr, 4));
1284                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1285                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1286                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1287                 if (_ptr_sids) {
1288                         NDR_PULL_ALLOC(ndr, r->sids);
1289                 } else {
1290                         r->sids = NULL;
1291                 }
1292                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1293                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1294                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1295                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1296                 }
1297         }
1298         if (ndr_flags & NDR_BUFFERS) {
1299                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1300                 if (r->sids) {
1301                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1302                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1303                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1304                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1305                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1306                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1307                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1308                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1309                         }
1310                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1311                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1312                         }
1313                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1314                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1315                 }
1316                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1317                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1318                 if (r->sids) {
1319                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1320                 }
1321         }
1322         return NDR_ERR_SUCCESS;
1323 }
1324
1325 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
1326 {
1327         uint32_t cntr_sids_1;
1328         uint32_t cntr_unknown4_0;
1329         ndr_print_struct(ndr, name, "netr_SamInfo6");
1330         ndr->depth++;
1331         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1332         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1333         ndr_print_ptr(ndr, "sids", r->sids);
1334         ndr->depth++;
1335         if (r->sids) {
1336                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1337                 ndr->depth++;
1338                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1339                         char *idx_1=NULL;
1340                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1341                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1342                                 free(idx_1);
1343                         }
1344                 }
1345                 ndr->depth--;
1346         }
1347         ndr->depth--;
1348         ndr_print_lsa_String(ndr, "forest", &r->forest);
1349         ndr_print_lsa_String(ndr, "principle", &r->principle);
1350         ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", (int)20);
1351         ndr->depth++;
1352         for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1353                 char *idx_0=NULL;
1354                 if (asprintf(&idx_0, "[%d]", cntr_unknown4_0) != -1) {
1355                         ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1356                         free(idx_0);
1357                 }
1358         }
1359         ndr->depth--;
1360         ndr->depth--;
1361 }
1362
1363 static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
1364 {
1365         uint32_t cntr_expansionroom_0;
1366         if (ndr_flags & NDR_SCALARS) {
1367                 NDR_CHECK(ndr_push_align(ndr, 4));
1368                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1369                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1370                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1371                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1372                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1373                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1374                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1375                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1376                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1377                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1378                 }
1379                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1380                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1381                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1382                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1383         }
1384         if (ndr_flags & NDR_BUFFERS) {
1385                 if (r->pac) {
1386                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1387                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1388                 }
1389                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1390                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1391                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1392                 if (r->auth) {
1393                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1394                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1395                 }
1396                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1397                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1398                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1399                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1400         }
1401         return NDR_ERR_SUCCESS;
1402 }
1403
1404 static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
1405 {
1406         uint32_t _ptr_pac;
1407         TALLOC_CTX *_mem_save_pac_0;
1408         uint32_t _ptr_auth;
1409         TALLOC_CTX *_mem_save_auth_0;
1410         uint32_t cntr_expansionroom_0;
1411         if (ndr_flags & NDR_SCALARS) {
1412                 NDR_CHECK(ndr_pull_align(ndr, 4));
1413                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1414                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1415                 if (_ptr_pac) {
1416                         NDR_PULL_ALLOC(ndr, r->pac);
1417                 } else {
1418                         r->pac = NULL;
1419                 }
1420                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1421                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1422                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1423                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1424                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1425                 if (_ptr_auth) {
1426                         NDR_PULL_ALLOC(ndr, r->auth);
1427                 } else {
1428                         r->auth = NULL;
1429                 }
1430                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1431                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1432                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1433                 }
1434                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1435                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1436                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1437                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1438         }
1439         if (ndr_flags & NDR_BUFFERS) {
1440                 if (r->pac) {
1441                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1442                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1443                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1444                         NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1445                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1446                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1447                 }
1448                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1449                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1450                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1451                 if (r->auth) {
1452                         _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1453                         NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1454                         NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1455                         NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1456                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1457                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1458                 }
1459                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1460                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1461                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1462                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1463                 if (r->pac) {
1464                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1465                 }
1466                 if (r->auth) {
1467                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1468                 }
1469         }
1470         return NDR_ERR_SUCCESS;
1471 }
1472
1473 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
1474 {
1475         uint32_t cntr_expansionroom_0;
1476         ndr_print_struct(ndr, name, "netr_PacInfo");
1477         ndr->depth++;
1478         ndr_print_uint32(ndr, "pac_size", r->pac_size);
1479         ndr_print_ptr(ndr, "pac", r->pac);
1480         ndr->depth++;
1481         if (r->pac) {
1482                 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1483         }
1484         ndr->depth--;
1485         ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1486         ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1487         ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1488         ndr_print_uint32(ndr, "auth_size", r->auth_size);
1489         ndr_print_ptr(ndr, "auth", r->auth);
1490         ndr->depth++;
1491         if (r->auth) {
1492                 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1493         }
1494         ndr->depth--;
1495         ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1496         ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", (int)10);
1497         ndr->depth++;
1498         for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1499                 char *idx_0=NULL;
1500                 if (asprintf(&idx_0, "[%d]", cntr_expansionroom_0) != -1) {
1501                         ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1502                         free(idx_0);
1503                 }
1504         }
1505         ndr->depth--;
1506         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1507         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1508         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1509         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1510         ndr->depth--;
1511 }
1512
1513 _PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
1514 {
1515         if (ndr_flags & NDR_SCALARS) {
1516                 int level = ndr_push_get_switch_value(ndr, r);
1517                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1518                 switch (level) {
1519                         case 2: {
1520                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1521                         break; }
1522
1523                         case 3: {
1524                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1525                         break; }
1526
1527                         case 4: {
1528                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1529                         break; }
1530
1531                         case 5: {
1532                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1533                         break; }
1534
1535                         case 6: {
1536                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1537                         break; }
1538
1539                         default:
1540                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1541                 }
1542         }
1543         if (ndr_flags & NDR_BUFFERS) {
1544                 int level = ndr_push_get_switch_value(ndr, r);
1545                 switch (level) {
1546                         case 2:
1547                                 if (r->sam2) {
1548                                         NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1549                                 }
1550                         break;
1551
1552                         case 3:
1553                                 if (r->sam3) {
1554                                         NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1555                                 }
1556                         break;
1557
1558                         case 4:
1559                                 if (r->pac) {
1560                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1561                                 }
1562                         break;
1563
1564                         case 5:
1565                                 if (r->pac) {
1566                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1567                                 }
1568                         break;
1569
1570                         case 6:
1571                                 if (r->sam6) {
1572                                         NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1573                                 }
1574                         break;
1575
1576                         default:
1577                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1578                 }
1579         }
1580         return NDR_ERR_SUCCESS;
1581 }
1582
1583 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
1584 {
1585         int level;
1586         uint16_t _level;
1587         TALLOC_CTX *_mem_save_sam2_0;
1588         TALLOC_CTX *_mem_save_sam3_0;
1589         TALLOC_CTX *_mem_save_pac_0;
1590         TALLOC_CTX *_mem_save_sam6_0;
1591         level = ndr_pull_get_switch_value(ndr, r);
1592         if (ndr_flags & NDR_SCALARS) {
1593                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1594                 if (_level != level) {
1595                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1596                 }
1597                 switch (level) {
1598                         case 2: {
1599                                 uint32_t _ptr_sam2;
1600                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1601                                 if (_ptr_sam2) {
1602                                         NDR_PULL_ALLOC(ndr, r->sam2);
1603                                 } else {
1604                                         r->sam2 = NULL;
1605                                 }
1606                         break; }
1607
1608                         case 3: {
1609                                 uint32_t _ptr_sam3;
1610                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1611                                 if (_ptr_sam3) {
1612                                         NDR_PULL_ALLOC(ndr, r->sam3);
1613                                 } else {
1614                                         r->sam3 = NULL;
1615                                 }
1616                         break; }
1617
1618                         case 4: {
1619                                 uint32_t _ptr_pac;
1620                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1621                                 if (_ptr_pac) {
1622                                         NDR_PULL_ALLOC(ndr, r->pac);
1623                                 } else {
1624                                         r->pac = NULL;
1625                                 }
1626                         break; }
1627
1628                         case 5: {
1629                                 uint32_t _ptr_pac;
1630                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1631                                 if (_ptr_pac) {
1632                                         NDR_PULL_ALLOC(ndr, r->pac);
1633                                 } else {
1634                                         r->pac = NULL;
1635                                 }
1636                         break; }
1637
1638                         case 6: {
1639                                 uint32_t _ptr_sam6;
1640                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1641                                 if (_ptr_sam6) {
1642                                         NDR_PULL_ALLOC(ndr, r->sam6);
1643                                 } else {
1644                                         r->sam6 = NULL;
1645                                 }
1646                         break; }
1647
1648                         default:
1649                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1650                 }
1651         }
1652         if (ndr_flags & NDR_BUFFERS) {
1653                 switch (level) {
1654                         case 2:
1655                                 if (r->sam2) {
1656                                         _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1657                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1658                                         NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1659                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1660                                 }
1661                         break;
1662
1663                         case 3:
1664                                 if (r->sam3) {
1665                                         _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1666                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1667                                         NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1668                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1669                                 }
1670                         break;
1671
1672                         case 4:
1673                                 if (r->pac) {
1674                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1675                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1676                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1677                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1678                                 }
1679                         break;
1680
1681                         case 5:
1682                                 if (r->pac) {
1683                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1684                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1685                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1686                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1687                                 }
1688                         break;
1689
1690                         case 6:
1691                                 if (r->sam6) {
1692                                         _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1693                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1694                                         NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1695                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1696                                 }
1697                         break;
1698
1699                         default:
1700                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1701                 }
1702         }
1703         return NDR_ERR_SUCCESS;
1704 }
1705
1706 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
1707 {
1708         int level;
1709         level = ndr_print_get_switch_value(ndr, r);
1710         ndr_print_union(ndr, name, level, "netr_Validation");
1711         switch (level) {
1712                 case 2:
1713                         ndr_print_ptr(ndr, "sam2", r->sam2);
1714                         ndr->depth++;
1715                         if (r->sam2) {
1716                                 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
1717                         }
1718                         ndr->depth--;
1719                 break;
1720
1721                 case 3:
1722                         ndr_print_ptr(ndr, "sam3", r->sam3);
1723                         ndr->depth++;
1724                         if (r->sam3) {
1725                                 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
1726                         }
1727                         ndr->depth--;
1728                 break;
1729
1730                 case 4:
1731                         ndr_print_ptr(ndr, "pac", r->pac);
1732                         ndr->depth++;
1733                         if (r->pac) {
1734                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1735                         }
1736                         ndr->depth--;
1737                 break;
1738
1739                 case 5:
1740                         ndr_print_ptr(ndr, "pac", r->pac);
1741                         ndr->depth++;
1742                         if (r->pac) {
1743                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1744                         }
1745                         ndr->depth--;
1746                 break;
1747
1748                 case 6:
1749                         ndr_print_ptr(ndr, "sam6", r->sam6);
1750                         ndr->depth++;
1751                         if (r->sam6) {
1752                                 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
1753                         }
1754                         ndr->depth--;
1755                 break;
1756
1757                 default:
1758                         ndr_print_bad_level(ndr, name, level);
1759         }
1760 }
1761
1762 _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
1763 {
1764         {
1765                 uint32_t _flags_save_STRUCT = ndr->flags;
1766                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1767                 if (ndr_flags & NDR_SCALARS) {
1768                         NDR_CHECK(ndr_push_align(ndr, 1));
1769                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1770                 }
1771                 if (ndr_flags & NDR_BUFFERS) {
1772                 }
1773                 ndr->flags = _flags_save_STRUCT;
1774         }
1775         return NDR_ERR_SUCCESS;
1776 }
1777
1778 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
1779 {
1780         {
1781                 uint32_t _flags_save_STRUCT = ndr->flags;
1782                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1783                 if (ndr_flags & NDR_SCALARS) {
1784                         NDR_CHECK(ndr_pull_align(ndr, 1));
1785                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1786                 }
1787                 if (ndr_flags & NDR_BUFFERS) {
1788                 }
1789                 ndr->flags = _flags_save_STRUCT;
1790         }
1791         return NDR_ERR_SUCCESS;
1792 }
1793
1794 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
1795 {
1796         ndr_print_struct(ndr, name, "netr_Credential");
1797         {
1798                 uint32_t _flags_save_STRUCT = ndr->flags;
1799                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1800                 ndr->depth++;
1801                 ndr_print_array_uint8(ndr, "data", r->data, 8);
1802                 ndr->depth--;
1803                 ndr->flags = _flags_save_STRUCT;
1804         }
1805 }
1806
1807 _PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
1808 {
1809         if (ndr_flags & NDR_SCALARS) {
1810                 NDR_CHECK(ndr_push_align(ndr, 4));
1811                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1812                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
1813         }
1814         if (ndr_flags & NDR_BUFFERS) {
1815         }
1816         return NDR_ERR_SUCCESS;
1817 }
1818
1819 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
1820 {
1821         if (ndr_flags & NDR_SCALARS) {
1822                 NDR_CHECK(ndr_pull_align(ndr, 4));
1823                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1824                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
1825         }
1826         if (ndr_flags & NDR_BUFFERS) {
1827         }
1828         return NDR_ERR_SUCCESS;
1829 }
1830
1831 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
1832 {
1833         ndr_print_struct(ndr, name, "netr_Authenticator");
1834         ndr->depth++;
1835         ndr_print_netr_Credential(ndr, "cred", &r->cred);
1836         ndr_print_time_t(ndr, "timestamp", r->timestamp);
1837         ndr->depth--;
1838 }
1839
1840 static enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, enum netr_LogonLevel r)
1841 {
1842         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
1843         return NDR_ERR_SUCCESS;
1844 }
1845
1846 static enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonLevel *r)
1847 {
1848         uint16_t v;
1849         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
1850         *r = v;
1851         return NDR_ERR_SUCCESS;
1852 }
1853
1854 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, enum netr_LogonLevel r)
1855 {
1856         const char *val = NULL;
1857
1858         switch (r) {
1859                 case INTERACTIVE_LOGON_TYPE: val = "INTERACTIVE_LOGON_TYPE"; break;
1860                 case NET_LOGON_TYPE: val = "NET_LOGON_TYPE"; break;
1861         }
1862         ndr_print_enum(ndr, name, "ENUM", val, r);
1863 }
1864
1865 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_USER *r)
1866 {
1867         if (ndr_flags & NDR_SCALARS) {
1868                 NDR_CHECK(ndr_push_align(ndr, 4));
1869                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
1870                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1871                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1872                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1873                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1874                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
1875                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
1876                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
1877                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
1878         }
1879         if (ndr_flags & NDR_BUFFERS) {
1880                 if (r->account_name) {
1881                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1882                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1883                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1884                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
1885                 }
1886                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1887                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1888                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1889                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1890         }
1891         return NDR_ERR_SUCCESS;
1892 }
1893
1894 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
1895 {
1896         uint32_t _ptr_account_name;
1897         TALLOC_CTX *_mem_save_account_name_0;
1898         if (ndr_flags & NDR_SCALARS) {
1899                 NDR_CHECK(ndr_pull_align(ndr, 4));
1900                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
1901                 if (_ptr_account_name) {
1902                         NDR_PULL_ALLOC(ndr, r->account_name);
1903                 } else {
1904                         r->account_name = NULL;
1905                 }
1906                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1907                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1908                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1909                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1910                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
1911                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
1912                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
1913                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
1914         }
1915         if (ndr_flags & NDR_BUFFERS) {
1916                 if (r->account_name) {
1917                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1918                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
1919                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
1920                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
1921                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
1922                                 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));
1923                         }
1924                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
1925                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
1926                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
1927                 }
1928                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1929                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1930                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1931                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1932         }
1933         return NDR_ERR_SUCCESS;
1934 }
1935
1936 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
1937 {
1938         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
1939         ndr->depth++;
1940         ndr_print_ptr(ndr, "account_name", r->account_name);
1941         ndr->depth++;
1942         if (r->account_name) {
1943                 ndr_print_string(ndr, "account_name", r->account_name);
1944         }
1945         ndr->depth--;
1946         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1947         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1948         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1949         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1950         ndr_print_uint32(ndr, "unknown5", r->unknown5);
1951         ndr_print_uint32(ndr, "unknown6", r->unknown6);
1952         ndr_print_uint32(ndr, "unknown7", r->unknown7);
1953         ndr_print_uint32(ndr, "unknown8", r->unknown8);
1954         ndr->depth--;
1955 }
1956
1957 static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
1958 {
1959         if (ndr_flags & NDR_SCALARS) {
1960                 NDR_CHECK(ndr_push_align(ndr, 4));
1961                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1962                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1963                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
1964                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
1965         }
1966         if (ndr_flags & NDR_BUFFERS) {
1967         }
1968         return NDR_ERR_SUCCESS;
1969 }
1970
1971 static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
1972 {
1973         if (ndr_flags & NDR_SCALARS) {
1974                 NDR_CHECK(ndr_pull_align(ndr, 4));
1975                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
1976                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1977                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
1978                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
1979         }
1980         if (ndr_flags & NDR_BUFFERS) {
1981         }
1982         return NDR_ERR_SUCCESS;
1983 }
1984
1985 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
1986 {
1987         ndr_print_struct(ndr, name, "netr_USER_KEY16");
1988         ndr->depth++;
1989         ndr_print_uint16(ndr, "length", r->length);
1990         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
1991         ndr_print_uint32(ndr, "flags", r->flags);
1992         ndr_print_samr_Password(ndr, "pwd", &r->pwd);
1993         ndr->depth--;
1994 }
1995
1996 static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
1997 {
1998         if (ndr_flags & NDR_SCALARS) {
1999                 NDR_CHECK(ndr_push_align(ndr, 4));
2000                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2001                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2002                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2003                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2004                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2005                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2006                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2007                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2008         }
2009         if (ndr_flags & NDR_BUFFERS) {
2010         }
2011         return NDR_ERR_SUCCESS;
2012 }
2013
2014 static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *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->nt_length));
2019                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2020                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2021                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2022                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2023                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2024                 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2025                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2026                 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2027                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2028         }
2029         if (ndr_flags & NDR_BUFFERS) {
2030         }
2031         return NDR_ERR_SUCCESS;
2032 }
2033
2034 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
2035 {
2036         ndr_print_struct(ndr, name, "netr_PasswordHistory");
2037         ndr->depth++;
2038         ndr_print_uint16(ndr, "nt_length", r->nt_length);
2039         ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
2040         ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2041         ndr_print_uint16(ndr, "lm_length", r->lm_length);
2042         ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
2043         ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2044         ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2045         ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2046         ndr->depth--;
2047 }
2048
2049 static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
2050 {
2051         if (ndr_flags & NDR_SCALARS) {
2052                 NDR_CHECK(ndr_push_align(ndr, 4));
2053                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2054                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2055                 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2056         }
2057         if (ndr_flags & NDR_BUFFERS) {
2058         }
2059         return NDR_ERR_SUCCESS;
2060 }
2061
2062 static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
2063 {
2064         if (ndr_flags & NDR_SCALARS) {
2065                 NDR_CHECK(ndr_pull_align(ndr, 4));
2066                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2067                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2068                 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2069         }
2070         if (ndr_flags & NDR_BUFFERS) {
2071         }
2072         return NDR_ERR_SUCCESS;
2073 }
2074
2075 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
2076 {
2077         ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2078         ndr->depth++;
2079         ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2080         ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2081         ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
2082         ndr->depth--;
2083 }
2084
2085 static enum ndr_err_code ndr_push_netr_USER_KEY_UNION(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY_UNION *r)
2086 {
2087         if (ndr_flags & NDR_SCALARS) {
2088                 NDR_CHECK(ndr_push_align(ndr, 4));
2089                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2090         }
2091         if (ndr_flags & NDR_BUFFERS) {
2092         }
2093         return NDR_ERR_SUCCESS;
2094 }
2095
2096 static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
2097 {
2098         if (ndr_flags & NDR_SCALARS) {
2099                 NDR_CHECK(ndr_pull_align(ndr, 4));
2100                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2101         }
2102         if (ndr_flags & NDR_BUFFERS) {
2103         }
2104         return NDR_ERR_SUCCESS;
2105 }
2106
2107 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
2108 {
2109         ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2110         ndr->depth++;
2111         ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2112         ndr->depth--;
2113 }
2114
2115 _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
2116 {
2117         if (ndr_flags & NDR_SCALARS) {
2118                 NDR_CHECK(ndr_push_align(ndr, 4));
2119                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2120                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2121         }
2122         if (ndr_flags & NDR_BUFFERS) {
2123         }
2124         return NDR_ERR_SUCCESS;
2125 }
2126
2127 _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
2128 {
2129         if (ndr_flags & NDR_SCALARS) {
2130                 NDR_CHECK(ndr_pull_align(ndr, 4));
2131                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2132                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2133         }
2134         if (ndr_flags & NDR_BUFFERS) {
2135         }
2136         return NDR_ERR_SUCCESS;
2137 }
2138
2139 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
2140 {
2141         ndr_print_struct(ndr, name, "netr_USER_KEYS");
2142         ndr->depth++;
2143         ndr_print_uint32(ndr, "version", r->version);
2144         ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2145         ndr->depth--;
2146 }
2147
2148 static enum ndr_err_code ndr_push_netr_USER_PRIVATE_INFO(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_PRIVATE_INFO *r)
2149 {
2150         if (ndr_flags & NDR_SCALARS) {
2151                 NDR_CHECK(ndr_push_align(ndr, 4));
2152                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2153                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2154                 {
2155                         uint32_t _flags_save_uint8 = ndr->flags;
2156                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2157                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
2158                         ndr->flags = _flags_save_uint8;
2159                 }
2160         }
2161         if (ndr_flags & NDR_BUFFERS) {
2162                 {
2163                         uint32_t _flags_save_uint8 = ndr->flags;
2164                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2165                         if (r->SensitiveData) {
2166                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2167                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2168                         }
2169                         ndr->flags = _flags_save_uint8;
2170                 }
2171         }
2172         return NDR_ERR_SUCCESS;
2173 }
2174
2175 static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
2176 {
2177         uint32_t _ptr_SensitiveData;
2178         TALLOC_CTX *_mem_save_SensitiveData_0;
2179         if (ndr_flags & NDR_SCALARS) {
2180                 NDR_CHECK(ndr_pull_align(ndr, 4));
2181                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2182                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2183                 {
2184                         uint32_t _flags_save_uint8 = ndr->flags;
2185                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2186                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2187                         if (_ptr_SensitiveData) {
2188                                 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2189                         } else {
2190                                 r->SensitiveData = NULL;
2191                         }
2192                         ndr->flags = _flags_save_uint8;
2193                 }
2194         }
2195         if (ndr_flags & NDR_BUFFERS) {
2196                 {
2197                         uint32_t _flags_save_uint8 = ndr->flags;
2198                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2199                         if (r->SensitiveData) {
2200                                 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2201                                 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2202                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2203                                 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2204                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2205                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2206                         }
2207                         ndr->flags = _flags_save_uint8;
2208                 }
2209                 if (r->SensitiveData) {
2210                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2211                 }
2212         }
2213         return NDR_ERR_SUCCESS;
2214 }
2215
2216 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
2217 {
2218         ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2219         ndr->depth++;
2220         ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2221         ndr_print_uint32(ndr, "DataLength", r->DataLength);
2222         ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2223         ndr->depth++;
2224         if (r->SensitiveData) {
2225                 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2226         }
2227         ndr->depth--;
2228         ndr->depth--;
2229 }
2230
2231 static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
2232 {
2233         if (ndr_flags & NDR_SCALARS) {
2234                 NDR_CHECK(ndr_push_align(ndr, 4));
2235                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2236                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2237                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2238                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2239                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2240                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2241                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2242                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2243                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2244                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2245                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2246                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2247                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2248                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2249                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2250                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2251                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2252                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2253                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2254                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2255                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2256                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2257                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2258                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2259                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2260                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2261                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2262                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2263                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2264                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2265                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2266                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2267                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2268                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2269                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2270                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2271                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2272         }
2273         if (ndr_flags & NDR_BUFFERS) {
2274                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2275                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2276                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2277                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2278                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2279                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2280                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2281                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2282                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2283                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2284                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2285                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2286                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2287                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2288                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2289                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2290         }
2291         return NDR_ERR_SUCCESS;
2292 }
2293
2294 static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
2295 {
2296         if (ndr_flags & NDR_SCALARS) {
2297                 NDR_CHECK(ndr_pull_align(ndr, 4));
2298                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2299                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2300                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2301                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2302                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2303                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2304                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2305                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2306                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2307                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2308                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2309                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2310                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2311                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2312                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2313                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2314                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2315                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2316                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2317                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2318                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2319                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2320                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2321                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2322                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2323                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2324                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2325                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2326                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2327                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2328                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2329                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2330                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2331                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2332                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2333                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2334                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2335         }
2336         if (ndr_flags & NDR_BUFFERS) {
2337                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2338                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2339                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2340                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2341                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2342                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2343                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2344                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2345                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2346                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2347                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2348                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2349                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2350                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2351                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2352                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2353         }
2354         return NDR_ERR_SUCCESS;
2355 }
2356
2357 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
2358 {
2359         ndr_print_struct(ndr, name, "netr_DELTA_USER");
2360         ndr->depth++;
2361         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2362         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2363         ndr_print_uint32(ndr, "rid", r->rid);
2364         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2365         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2366         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2367         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2368         ndr_print_lsa_String(ndr, "description", &r->description);
2369         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2370         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2371         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2372         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2373         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2374         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2375         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2376         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2377         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2378         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2379         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2380         ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2381         ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2382         ndr_print_uint8(ndr, "password_expired", r->password_expired);
2383         ndr_print_lsa_String(ndr, "comment", &r->comment);
2384         ndr_print_lsa_String(ndr, "parameters", &r->parameters);
2385         ndr_print_uint16(ndr, "country_code", r->country_code);
2386         ndr_print_uint16(ndr, "code_page", r->code_page);
2387         ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2388         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2389         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2390         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2391         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2392         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2393         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2394         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2395         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2396         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2397         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2398         ndr->depth--;
2399 }
2400
2401 static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
2402 {
2403         if (ndr_flags & NDR_SCALARS) {
2404                 NDR_CHECK(ndr_push_align(ndr, 4));
2405                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2406                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2407                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2408                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2409                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2410                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2411                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2412                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2413                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2414                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2415                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2416                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2417                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2418                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2419                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2420                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2421                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2422                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2423                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2424         }
2425         if (ndr_flags & NDR_BUFFERS) {
2426                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2427                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2428                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2429                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2430                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2431                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2432                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2433         }
2434         return NDR_ERR_SUCCESS;
2435 }
2436
2437 static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
2438 {
2439         if (ndr_flags & NDR_SCALARS) {
2440                 NDR_CHECK(ndr_pull_align(ndr, 4));
2441                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2442                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2443                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2444                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2445                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2446                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2447                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2448                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2449                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2450                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2451                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2452                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2453                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2454                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2455                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2456                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2457                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2458                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2459                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2460         }
2461         if (ndr_flags & NDR_BUFFERS) {
2462                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2463                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2464                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2465                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2466                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2467                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2468                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2469         }
2470         return NDR_ERR_SUCCESS;
2471 }
2472
2473 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
2474 {
2475         ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2476         ndr->depth++;
2477         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2478         ndr_print_lsa_String(ndr, "comment", &r->comment);
2479         ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2480         ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2481         ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2482         ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2483         ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2484         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2485         ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2486         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2487         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2488         ndr_print_lsa_BinaryString(ndr, "account_lockout", &r->account_lockout);
2489         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2490         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2491         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2492         ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2493         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2494         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2495         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2496         ndr->depth--;
2497 }
2498
2499 static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
2500 {
2501         if (ndr_flags & NDR_SCALARS) {
2502                 NDR_CHECK(ndr_push_align(ndr, 4));
2503                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2504                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2505                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2506                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2507                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2508                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2509                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2510                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2511                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2512                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2513                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2514                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2515                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2516                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2517         }
2518         if (ndr_flags & NDR_BUFFERS) {
2519                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2520                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2521                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2522                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2523                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2524                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2525                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2526         }
2527         return NDR_ERR_SUCCESS;
2528 }
2529
2530 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
2531 {
2532         if (ndr_flags & NDR_SCALARS) {
2533                 NDR_CHECK(ndr_pull_align(ndr, 4));
2534                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2535                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2536                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2537                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2538                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2539                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2540                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2541                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2542                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2543                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2544                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2545                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2546                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2547                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2548         }
2549         if (ndr_flags & NDR_BUFFERS) {
2550                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2551                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2552                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2553                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2554                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2555                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2556                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2557         }
2558         return NDR_ERR_SUCCESS;
2559 }
2560
2561 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
2562 {
2563         ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2564         ndr->depth++;
2565         ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2566         ndr_print_uint32(ndr, "rid", r->rid);
2567         ndr_print_uint32(ndr, "attributes", r->attributes);
2568         ndr_print_lsa_String(ndr, "description", &r->description);
2569         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2570         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2571         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2572         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2573         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2574         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2575         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2576         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2577         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2578         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2579         ndr->depth--;
2580 }
2581
2582 static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
2583 {
2584         if (ndr_flags & NDR_SCALARS) {
2585                 NDR_CHECK(ndr_push_align(ndr, 4));
2586                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2587                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2588                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2589                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2590                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2591                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2592                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2593                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2594                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2595                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2596         }
2597         if (ndr_flags & NDR_BUFFERS) {
2598                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2599                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2600                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2601                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2602                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2603                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2604         }
2605         return NDR_ERR_SUCCESS;
2606 }
2607
2608 static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
2609 {
2610         if (ndr_flags & NDR_SCALARS) {
2611                 NDR_CHECK(ndr_pull_align(ndr, 4));
2612                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2613                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2614                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2615                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2616                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2617                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2618                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2619                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2620                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2621                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2622         }
2623         if (ndr_flags & NDR_BUFFERS) {
2624                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2625                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2626                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2627                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2628                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2629                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2630         }
2631         return NDR_ERR_SUCCESS;
2632 }
2633
2634 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
2635 {
2636         ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2637         ndr->depth++;
2638         ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2639         ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2640         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2641         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2642         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2643         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2644         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2645         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2646         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2647         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2648         ndr->depth--;
2649 }
2650
2651 static enum ndr_err_code ndr_push_netr_DELTA_GROUP_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP_MEMBER *r)
2652 {
2653         uint32_t cntr_rids_1;
2654         uint32_t cntr_attribs_1;
2655         if (ndr_flags & NDR_SCALARS) {
2656                 NDR_CHECK(ndr_push_align(ndr, 4));
2657                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2658                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2659                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2660                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2661                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2662                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2663                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2664         }
2665         if (ndr_flags & NDR_BUFFERS) {
2666                 if (r->rids) {
2667                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2668                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2669                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2670                         }
2671                 }
2672                 if (r->attribs) {
2673                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2674                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2675                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2676                         }
2677                 }
2678         }
2679         return NDR_ERR_SUCCESS;
2680 }
2681
2682 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
2683 {
2684         uint32_t _ptr_rids;
2685         uint32_t cntr_rids_1;
2686         TALLOC_CTX *_mem_save_rids_0;
2687         TALLOC_CTX *_mem_save_rids_1;
2688         uint32_t _ptr_attribs;
2689         uint32_t cntr_attribs_1;
2690         TALLOC_CTX *_mem_save_attribs_0;
2691         TALLOC_CTX *_mem_save_attribs_1;
2692         if (ndr_flags & NDR_SCALARS) {
2693                 NDR_CHECK(ndr_pull_align(ndr, 4));
2694                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2695                 if (_ptr_rids) {
2696                         NDR_PULL_ALLOC(ndr, r->rids);
2697                 } else {
2698                         r->rids = NULL;
2699                 }
2700                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2701                 if (_ptr_attribs) {
2702                         NDR_PULL_ALLOC(ndr, r->attribs);
2703                 } else {
2704                         r->attribs = NULL;
2705                 }
2706                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2707                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2708                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2709                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2710                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2711         }
2712         if (ndr_flags & NDR_BUFFERS) {
2713                 if (r->rids) {
2714                         _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2715                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2716                         NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2717                         NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2718                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2719                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2720                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2721                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2722                         }
2723                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2724                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2725                 }
2726                 if (r->attribs) {
2727                         _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2728                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2729                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2730                         NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2731                         _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2732                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2733                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2734                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2735                         }
2736                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2737                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2738                 }
2739                 if (r->rids) {
2740                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2741                 }
2742                 if (r->attribs) {
2743                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
2744                 }
2745         }
2746         return NDR_ERR_SUCCESS;
2747 }
2748
2749 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
2750 {
2751         uint32_t cntr_rids_1;
2752         uint32_t cntr_attribs_1;
2753         ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
2754         ndr->depth++;
2755         ndr_print_ptr(ndr, "rids", r->rids);
2756         ndr->depth++;
2757         if (r->rids) {
2758                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->num_rids);
2759                 ndr->depth++;
2760                 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
2761                         char *idx_1=NULL;
2762                         if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
2763                                 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
2764                                 free(idx_1);
2765                         }
2766                 }
2767                 ndr->depth--;
2768         }
2769         ndr->depth--;
2770         ndr_print_ptr(ndr, "attribs", r->attribs);
2771         ndr->depth++;
2772         if (r->attribs) {
2773                 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", (int)r->num_rids);
2774                 ndr->depth++;
2775                 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
2776                         char *idx_1=NULL;
2777                         if (asprintf(&idx_1, "[%d]", cntr_attribs_1) != -1) {
2778                                 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
2779                                 free(idx_1);
2780                         }
2781                 }
2782                 ndr->depth--;
2783         }
2784         ndr->depth--;
2785         ndr_print_uint32(ndr, "num_rids", r->num_rids);
2786         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2787         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2788         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2789         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2790         ndr->depth--;
2791 }
2792
2793 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
2794 {
2795         if (ndr_flags & NDR_SCALARS) {
2796                 NDR_CHECK(ndr_push_align(ndr, 4));
2797                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2798                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2799                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2800                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2801                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2802                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2803                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2804                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2805                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2806                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2807                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2808                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2809         }
2810         if (ndr_flags & NDR_BUFFERS) {
2811                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2812                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2813                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2814                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2815                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2816                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2817         }
2818         return NDR_ERR_SUCCESS;
2819 }
2820
2821 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
2822 {
2823         if (ndr_flags & NDR_SCALARS) {
2824                 NDR_CHECK(ndr_pull_align(ndr, 4));
2825                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2826                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2827                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2828                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2829                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2830                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2831                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2832                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2833                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2834                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2835                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2836                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2837         }
2838         if (ndr_flags & NDR_BUFFERS) {
2839                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2840                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2841                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2842                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2843                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2844                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2845         }
2846         return NDR_ERR_SUCCESS;
2847 }
2848
2849 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
2850 {
2851         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
2852         ndr->depth++;
2853         ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
2854         ndr_print_uint32(ndr, "rid", r->rid);
2855         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2856         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2857         ndr_print_lsa_String(ndr, "description", &r->description);
2858         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2859         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2860         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2861         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2862         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2863         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2864         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2865         ndr->depth--;
2866 }
2867
2868 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS_MEMBER *r)
2869 {
2870         if (ndr_flags & NDR_SCALARS) {
2871                 NDR_CHECK(ndr_push_align(ndr, 4));
2872                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2873                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2874                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2875                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2876                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2877         }
2878         if (ndr_flags & NDR_BUFFERS) {
2879                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2880         }
2881         return NDR_ERR_SUCCESS;
2882 }
2883
2884 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
2885 {
2886         if (ndr_flags & NDR_SCALARS) {
2887                 NDR_CHECK(ndr_pull_align(ndr, 4));
2888                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2889                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2890                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2891                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2892                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2893         }
2894         if (ndr_flags & NDR_BUFFERS) {
2895                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2896         }
2897         return NDR_ERR_SUCCESS;
2898 }
2899
2900 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
2901 {
2902         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
2903         ndr->depth++;
2904         ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
2905         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2906         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2907         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2908         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2909         ndr->depth--;
2910 }
2911
2912 static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
2913 {
2914         if (ndr_flags & NDR_SCALARS) {
2915                 NDR_CHECK(ndr_push_align(ndr, 4));
2916                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
2917                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
2918                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
2919                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
2920                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
2921                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
2922         }
2923         if (ndr_flags & NDR_BUFFERS) {
2924         }
2925         return NDR_ERR_SUCCESS;
2926 }
2927
2928 static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
2929 {
2930         if (ndr_flags & NDR_SCALARS) {
2931                 NDR_CHECK(ndr_pull_align(ndr, 4));
2932                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
2933                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
2934                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
2935                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
2936                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
2937                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
2938         }
2939         if (ndr_flags & NDR_BUFFERS) {
2940         }
2941         return NDR_ERR_SUCCESS;
2942 }
2943
2944 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
2945 {
2946         ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
2947         ndr->depth++;
2948         ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
2949         ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
2950         ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
2951         ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
2952         ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
2953         ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
2954         ndr->depth--;
2955 }
2956
2957 static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
2958 {
2959         uint32_t cntr_eventauditoptions_1;
2960         if (ndr_flags & NDR_SCALARS) {
2961                 NDR_CHECK(ndr_push_align(ndr, 4));
2962                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
2963                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
2964                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
2965                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
2966                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
2967                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
2968                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
2969                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
2970                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2971                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
2972                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2973                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2974                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2975                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2976                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2977                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2978                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2979                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2980                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2981                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2982         }
2983         if (ndr_flags & NDR_BUFFERS) {
2984                 if (r->eventauditoptions) {
2985                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
2986                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
2987                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
2988                         }
2989                 }
2990                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
2991                 if (r->sid) {
2992                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2993                 }
2994                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2995                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2996                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2997                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2998                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2999         }
3000         return NDR_ERR_SUCCESS;
3001 }
3002
3003 static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
3004 {
3005         uint32_t _ptr_eventauditoptions;
3006         uint32_t cntr_eventauditoptions_1;
3007         TALLOC_CTX *_mem_save_eventauditoptions_0;
3008         TALLOC_CTX *_mem_save_eventauditoptions_1;
3009         uint32_t _ptr_sid;
3010         TALLOC_CTX *_mem_save_sid_0;
3011         if (ndr_flags & NDR_SCALARS) {
3012                 NDR_CHECK(ndr_pull_align(ndr, 4));
3013                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3014                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3015                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3016                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3017                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3018                 if (_ptr_eventauditoptions) {
3019                         NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3020                 } else {
3021                         r->eventauditoptions = NULL;
3022                 }
3023                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3024                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3025                 if (_ptr_sid) {
3026                         NDR_PULL_ALLOC(ndr, r->sid);
3027                 } else {
3028                         r->sid = NULL;
3029                 }
3030                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3031                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3032                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3033                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3034                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3035                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3036                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3037                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3038                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3039                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3040                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3041                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3042                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3043         }
3044         if (ndr_flags & NDR_BUFFERS) {
3045                 if (r->eventauditoptions) {
3046                         _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3047                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3048                         NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3049                         NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3050                         _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3051                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3052                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3053                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3054                         }
3055                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3056                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3057                 }
3058                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3059                 if (r->sid) {
3060                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3061                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3062                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3063                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3064                 }
3065                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3066                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3067                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3068                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3069                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3070                 if (r->eventauditoptions) {
3071                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3072                 }
3073         }
3074         return NDR_ERR_SUCCESS;
3075 }
3076
3077 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
3078 {
3079         uint32_t cntr_eventauditoptions_1;
3080         ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3081         ndr->depth++;
3082         ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3083         ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3084         ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3085         ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3086         ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3087         ndr->depth++;
3088         if (r->eventauditoptions) {
3089                 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", (int)r->maxauditeventcount + 1);
3090                 ndr->depth++;
3091                 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3092                         char *idx_1=NULL;
3093                         if (asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1) != -1) {
3094                                 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3095                                 free(idx_1);
3096                         }
3097                 }
3098                 ndr->depth--;
3099         }
3100         ndr->depth--;
3101         ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3102         ndr_print_ptr(ndr, "sid", r->sid);
3103         ndr->depth++;
3104         if (r->sid) {
3105                 ndr_print_dom_sid2(ndr, "sid", r->sid);
3106         }
3107         ndr->depth--;
3108         ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3109         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3110         ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3111         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3112         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3113         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3114         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3115         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3116         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3117         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3118         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3119         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3120         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3121         ndr->depth--;
3122 }
3123
3124 static enum ndr_err_code ndr_push_netr_DELTA_TRUSTED_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3125 {
3126         uint32_t cntr_controller_names_1;
3127         if (ndr_flags & NDR_SCALARS) {
3128                 NDR_CHECK(ndr_push_align(ndr, 4));
3129                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3130                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3131                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3132                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3133                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3134                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3135                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3136                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3137                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3138                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3139                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3140                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3141                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3142         }
3143         if (ndr_flags & NDR_BUFFERS) {
3144                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3145                 if (r->controller_names) {
3146                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3147                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3148                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3149                         }
3150                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3151                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3152                         }
3153                 }
3154                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3155                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3156                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3157                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3158                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3159         }
3160         return NDR_ERR_SUCCESS;
3161 }
3162
3163 static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
3164 {
3165         uint32_t _ptr_controller_names;
3166         uint32_t cntr_controller_names_1;
3167         TALLOC_CTX *_mem_save_controller_names_0;
3168         TALLOC_CTX *_mem_save_controller_names_1;
3169         if (ndr_flags & NDR_SCALARS) {
3170                 NDR_CHECK(ndr_pull_align(ndr, 4));
3171                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3172                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3173                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3174                 if (_ptr_controller_names) {
3175                         NDR_PULL_ALLOC(ndr, r->controller_names);
3176                 } else {
3177                         r->controller_names = NULL;
3178                 }
3179                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3180                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3181                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3182                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3183                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3184                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3185                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3186                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3187                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3188                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3189         }
3190         if (ndr_flags & NDR_BUFFERS) {
3191                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3192                 if (r->controller_names) {
3193                         _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3194                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3195                         NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3196                         NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3197                         _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3198                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3199                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3200                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3201                         }
3202                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3203                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3204                         }
3205                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3206                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3207                 }
3208                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3209                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3210                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3211                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3212                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3213                 if (r->controller_names) {
3214                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3215                 }
3216         }
3217         return NDR_ERR_SUCCESS;
3218 }
3219
3220 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3221 {
3222         uint32_t cntr_controller_names_1;
3223         ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3224         ndr->depth++;
3225         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3226         ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3227         ndr_print_ptr(ndr, "controller_names", r->controller_names);
3228         ndr->depth++;
3229         if (r->controller_names) {
3230                 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", (int)r->num_controllers);
3231                 ndr->depth++;
3232                 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3233                         char *idx_1=NULL;
3234                         if (asprintf(&idx_1, "[%d]", cntr_controller_names_1) != -1) {
3235                                 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3236                                 free(idx_1);
3237                         }
3238                 }
3239                 ndr->depth--;
3240         }
3241         ndr->depth--;
3242         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3243         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3244         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3245         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3246         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3247         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3248         ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3249         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3250         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3251         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3252         ndr->depth--;
3253 }
3254
3255 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_TRUST(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_TRUST *r)
3256 {
3257         if (ndr_flags & NDR_SCALARS) {
3258                 NDR_CHECK(ndr_push_align(ndr, 2));
3259                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3260         }
3261         if (ndr_flags & NDR_BUFFERS) {
3262         }
3263         return NDR_ERR_SUCCESS;
3264 }
3265
3266 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
3267 {
3268         if (ndr_flags & NDR_SCALARS) {
3269                 NDR_CHECK(ndr_pull_align(ndr, 2));
3270                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3271         }
3272         if (ndr_flags & NDR_BUFFERS) {
3273         }
3274         return NDR_ERR_SUCCESS;
3275 }
3276
3277 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
3278 {
3279         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3280         ndr->depth++;
3281         ndr_print_uint16(ndr, "unknown", r->unknown);
3282         ndr->depth--;
3283 }
3284
3285 static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
3286 {
3287         uint32_t cntr_privilege_attrib_1;
3288         uint32_t cntr_privilege_name_1;
3289         if (ndr_flags & NDR_SCALARS) {
3290                 NDR_CHECK(ndr_push_align(ndr, 4));
3291                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3292                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3293                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3294                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3295                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3296                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3297                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3298                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3299                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3300                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3301                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3302                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3303                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3304                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3305                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3306                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3307         }
3308         if (ndr_flags & NDR_BUFFERS) {
3309                 if (r->privilege_attrib) {
3310                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3311                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3312                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3313                         }
3314                 }
3315                 if (r->privilege_name) {
3316                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3317                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3318                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3319                         }
3320                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3321                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3322                         }
3323                 }
3324                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3325                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3326                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3327                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3328                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3329         }
3330         return NDR_ERR_SUCCESS;
3331 }
3332
3333 static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
3334 {
3335         uint32_t _ptr_privilege_attrib;
3336         uint32_t cntr_privilege_attrib_1;
3337         TALLOC_CTX *_mem_save_privilege_attrib_0;
3338         TALLOC_CTX *_mem_save_privilege_attrib_1;
3339         uint32_t _ptr_privilege_name;
3340         uint32_t cntr_privilege_name_1;
3341         TALLOC_CTX *_mem_save_privilege_name_0;
3342         TALLOC_CTX *_mem_save_privilege_name_1;
3343         if (ndr_flags & NDR_SCALARS) {
3344                 NDR_CHECK(ndr_pull_align(ndr, 4));
3345                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3346                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3347                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3348                 if (_ptr_privilege_attrib) {
3349                         NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3350                 } else {
3351                         r->privilege_attrib = NULL;
3352                 }
3353                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3354                 if (_ptr_privilege_name) {
3355                         NDR_PULL_ALLOC(ndr, r->privilege_name);
3356                 } else {
3357                         r->privilege_name = NULL;
3358                 }
3359                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3360                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3361                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3362                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3363                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3364                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3365                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3366                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3367                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3368                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3369                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3370                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3371         }
3372         if (ndr_flags & NDR_BUFFERS) {
3373                 if (r->privilege_attrib) {
3374                         _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3375                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3376                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3377                         NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3378                         _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3379                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3380                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3381                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3382                         }
3383                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3384                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3385                 }
3386                 if (r->privilege_name) {
3387                         _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3388                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3389                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3390                         NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3391                         _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3392                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3393                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3394                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3395                         }
3396                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3397                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3398                         }
3399                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3400                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3401                 }
3402                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3403                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3404                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3405                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3406                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3407                 if (r->privilege_attrib) {
3408                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3409                 }
3410                 if (r->privilege_name) {
3411                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3412                 }
3413         }
3414         return NDR_ERR_SUCCESS;
3415 }
3416
3417 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
3418 {
3419         uint32_t cntr_privilege_attrib_1;
3420         uint32_t cntr_privilege_name_1;
3421         ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3422         ndr->depth++;
3423         ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3424         ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3425         ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3426         ndr->depth++;
3427         if (r->privilege_attrib) {
3428                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", (int)r->privilege_entries);
3429                 ndr->depth++;
3430                 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3431                         char *idx_1=NULL;
3432                         if (asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1) != -1) {
3433                                 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3434                                 free(idx_1);
3435                         }
3436                 }
3437                 ndr->depth--;
3438         }
3439         ndr->depth--;
3440         ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3441         ndr->depth++;
3442         if (r->privilege_name) {
3443                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", (int)r->privilege_entries);
3444                 ndr->depth++;
3445                 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3446                         char *idx_1=NULL;
3447                         if (asprintf(&idx_1, "[%d]", cntr_privilege_name_1) != -1) {
3448                                 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3449                                 free(idx_1);
3450                         }
3451                 }
3452                 ndr->depth--;
3453         }
3454         ndr->depth--;
3455         ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3456         ndr_print_uint32(ndr, "system_flags", r->system_flags);
3457         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3458         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3459         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3460         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3461         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3462         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3463         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3464         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3465         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3466         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3467         ndr->depth--;
3468 }
3469
3470 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_ACCOUNT *r)
3471 {
3472         if (ndr_flags & NDR_SCALARS) {
3473                 NDR_CHECK(ndr_push_align(ndr, 2));
3474                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3475         }
3476         if (ndr_flags & NDR_BUFFERS) {
3477         }
3478         return NDR_ERR_SUCCESS;
3479 }
3480
3481 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
3482 {
3483         if (ndr_flags & NDR_SCALARS) {
3484                 NDR_CHECK(ndr_pull_align(ndr, 2));
3485                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3486         }
3487         if (ndr_flags & NDR_BUFFERS) {
3488         }
3489         return NDR_ERR_SUCCESS;
3490 }
3491
3492 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
3493 {
3494         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3495         ndr->depth++;
3496         ndr_print_uint16(ndr, "unknown", r->unknown);
3497         ndr->depth--;
3498 }
3499
3500 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_SECRET *r)
3501 {
3502         if (ndr_flags & NDR_SCALARS) {
3503                 NDR_CHECK(ndr_push_align(ndr, 2));
3504                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3505         }
3506         if (ndr_flags & NDR_BUFFERS) {
3507         }
3508         return NDR_ERR_SUCCESS;
3509 }
3510
3511 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
3512 {
3513         if (ndr_flags & NDR_SCALARS) {
3514                 NDR_CHECK(ndr_pull_align(ndr, 2));
3515                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3516         }
3517         if (ndr_flags & NDR_BUFFERS) {
3518         }
3519         return NDR_ERR_SUCCESS;
3520 }
3521
3522 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
3523 {
3524         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3525         ndr->depth++;
3526         ndr_print_uint16(ndr, "unknown", r->unknown);
3527         ndr->depth--;
3528 }
3529
3530 static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
3531 {
3532         if (ndr_flags & NDR_SCALARS) {
3533                 NDR_CHECK(ndr_push_align(ndr, 4));
3534                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3535                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3536                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3537         }
3538         if (ndr_flags & NDR_BUFFERS) {
3539                 if (r->cipher_data) {
3540                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3541                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3542                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3543                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3544                 }
3545         }
3546         return NDR_ERR_SUCCESS;
3547 }
3548
3549 static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
3550 {
3551         uint32_t _ptr_cipher_data;
3552         TALLOC_CTX *_mem_save_cipher_data_0;
3553         if (ndr_flags & NDR_SCALARS) {
3554                 NDR_CHECK(ndr_pull_align(ndr, 4));
3555                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3556                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3557                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3558                 if (_ptr_cipher_data) {
3559                         NDR_PULL_ALLOC(ndr, r->cipher_data);
3560                 } else {
3561                         r->cipher_data = NULL;
3562                 }
3563         }
3564         if (ndr_flags & NDR_BUFFERS) {
3565                 if (r->cipher_data) {
3566                         _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3567                         NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3568                         NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3569                         NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3570                         if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3571                                 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));
3572                         }
3573                         NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3574                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3575                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3576                 }
3577                 if (r->cipher_data) {
3578                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3579                 }
3580                 if (r->cipher_data) {
3581                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3582                 }
3583         }
3584         return NDR_ERR_SUCCESS;
3585 }
3586
3587 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
3588 {
3589         ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3590         ndr->depth++;
3591         ndr_print_uint32(ndr, "len", r->len);
3592         ndr_print_uint32(ndr, "maxlen", r->maxlen);
3593         ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3594         ndr->depth++;
3595         if (r->cipher_data) {
3596                 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3597         }
3598         ndr->depth--;
3599         ndr->depth--;
3600 }
3601
3602 static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
3603 {
3604         if (ndr_flags & NDR_SCALARS) {
3605                 NDR_CHECK(ndr_push_align(ndr, 4));
3606                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3607                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3608                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3609                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3610                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3611                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3612                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3613                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3614                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3615                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3616                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3617                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3618                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3619                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3620         }
3621         if (ndr_flags & NDR_BUFFERS) {
3622                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3623                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3624                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3625                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3626                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3627                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3628                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3629         }
3630         return NDR_ERR_SUCCESS;
3631 }
3632
3633 static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
3634 {
3635         if (ndr_flags & NDR_SCALARS) {
3636                 NDR_CHECK(ndr_pull_align(ndr, 4));
3637                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3638                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3639                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3640                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3641                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3642                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3643                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3644                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3645                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3646                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3647                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3648                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3649                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3650                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3651         }
3652         if (ndr_flags & NDR_BUFFERS) {
3653                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3654                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3655                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3656                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3657                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3658                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3659                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3660         }
3661         return NDR_ERR_SUCCESS;
3662 }
3663
3664 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
3665 {
3666         ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3667         ndr->depth++;
3668         ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3669         ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3670         ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3671         ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3672         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3673         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3674         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3675         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3676         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3677         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3678         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3679         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3680         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3681         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3682         ndr->depth--;
3683 }
3684
3685 static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
3686 {
3687         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3688         return NDR_ERR_SUCCESS;
3689 }
3690
3691 static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
3692 {
3693         uint16_t v;
3694         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3695         *r = v;
3696         return NDR_ERR_SUCCESS;
3697 }
3698
3699 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
3700 {
3701         const char *val = NULL;
3702
3703         switch (r) {
3704                 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3705                 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3706                 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3707                 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3708                 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3709                 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3710                 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3711                 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3712                 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3713                 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3714                 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3715                 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3716                 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3717                 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3718                 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3719                 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3720                 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3721                 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3722                 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3723                 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3724                 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3725                 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3726         }
3727         ndr_print_enum(ndr, name, "ENUM", val, r);
3728 }
3729
3730 static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
3731 {
3732         if (ndr_flags & NDR_SCALARS) {
3733                 int level = ndr_push_get_switch_value(ndr, r);
3734                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3735                 switch (level) {
3736                         case NETR_DELTA_DOMAIN: {
3737                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3738                         break; }
3739
3740                         case NETR_DELTA_GROUP: {
3741                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3742                         break; }
3743
3744                         case NETR_DELTA_DELETE_GROUP: {
3745                         break; }
3746
3747                         case NETR_DELTA_RENAME_GROUP: {
3748                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
3749                         break; }
3750
3751                         case NETR_DELTA_USER: {
3752                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
3753                         break; }
3754
3755                         case NETR_DELTA_DELETE_USER: {
3756                         break; }
3757
3758                         case NETR_DELTA_RENAME_USER: {
3759                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
3760                         break; }
3761
3762                         case NETR_DELTA_GROUP_MEMBER: {
3763                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
3764                         break; }
3765
3766                         case NETR_DELTA_ALIAS: {
3767                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
3768                         break; }
3769
3770                         case NETR_DELTA_DELETE_ALIAS: {
3771                         break; }
3772
3773                         case NETR_DELTA_RENAME_ALIAS: {
3774                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
3775                         break; }
3776
3777                         case NETR_DELTA_ALIAS_MEMBER: {
3778                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
3779                         break; }
3780
3781                         case NETR_DELTA_POLICY: {
3782                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
3783                         break; }
3784
3785                         case NETR_DELTA_TRUSTED_DOMAIN: {
3786                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
3787                         break; }
3788
3789                         case NETR_DELTA_DELETE_TRUST: {
3790                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
3791                         break; }
3792
3793                         case NETR_DELTA_ACCOUNT: {
3794                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
3795                         break; }
3796
3797                         case NETR_DELTA_DELETE_ACCOUNT: {
3798                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
3799                         break; }
3800
3801                         case NETR_DELTA_SECRET: {
3802                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
3803                         break; }
3804
3805                         case NETR_DELTA_DELETE_SECRET: {
3806                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
3807                         break; }
3808
3809                         case NETR_DELTA_DELETE_GROUP2: {
3810                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
3811                         break; }
3812
3813                         case NETR_DELTA_DELETE_USER2: {
3814                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
3815                         break; }
3816
3817                         case NETR_DELTA_MODIFY_COUNT: {
3818                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
3819                         break; }
3820
3821                         default:
3822                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3823                 }
3824         }
3825         if (ndr_flags & NDR_BUFFERS) {
3826                 int level = ndr_push_get_switch_value(ndr, r);
3827                 switch (level) {
3828                         case NETR_DELTA_DOMAIN:
3829                                 if (r->domain) {
3830                                         NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
3831                                 }
3832                         break;
3833
3834                         case NETR_DELTA_GROUP:
3835                                 if (r->group) {
3836                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
3837                                 }
3838                         break;
3839
3840                         case NETR_DELTA_DELETE_GROUP:
3841                         break;
3842
3843                         case NETR_DELTA_RENAME_GROUP:
3844                                 if (r->rename_group) {
3845                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
3846                                 }
3847                         break;
3848
3849                         case NETR_DELTA_USER:
3850                                 if (r->user) {
3851                                         NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
3852                                 }
3853                         break;
3854
3855                         case NETR_DELTA_DELETE_USER:
3856                         break;
3857
3858                         case NETR_DELTA_RENAME_USER:
3859                                 if (r->rename_user) {
3860                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
3861                                 }
3862                         break;
3863
3864                         case NETR_DELTA_GROUP_MEMBER:
3865                                 if (r->group_member) {
3866                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
3867                                 }
3868                         break;
3869
3870                         case NETR_DELTA_ALIAS:
3871                                 if (r->alias) {
3872                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
3873                                 }
3874                         break;
3875
3876                         case NETR_DELTA_DELETE_ALIAS:
3877                         break;
3878
3879                         case NETR_DELTA_RENAME_ALIAS:
3880                                 if (r->rename_alias) {
3881                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
3882                                 }
3883                         break;
3884
3885                         case NETR_DELTA_ALIAS_MEMBER:
3886                                 if (r->alias_member) {
3887                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
3888                                 }
3889                         break;
3890
3891                         case NETR_DELTA_POLICY:
3892                                 if (r->policy) {
3893                                         NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
3894                                 }
3895                         break;
3896
3897                         case NETR_DELTA_TRUSTED_DOMAIN:
3898                                 if (r->trusted_domain) {
3899                                         NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
3900                                 }
3901                         break;
3902
3903                         case NETR_DELTA_DELETE_TRUST:
3904                         break;
3905
3906                         case NETR_DELTA_ACCOUNT:
3907                                 if (r->account) {
3908                                         NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
3909                                 }
3910                         break;
3911
3912                         case NETR_DELTA_DELETE_ACCOUNT:
3913                         break;
3914
3915                         case NETR_DELTA_SECRET:
3916                                 if (r->secret) {
3917                                         NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
3918                                 }
3919                         break;
3920
3921                         case NETR_DELTA_DELETE_SECRET:
3922                         break;
3923
3924                         case NETR_DELTA_DELETE_GROUP2:
3925                                 if (r->delete_group) {
3926                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
3927                                 }
3928                         break;
3929
3930                         case NETR_DELTA_DELETE_USER2:
3931                                 if (r->delete_user) {
3932                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
3933                                 }
3934                         break;
3935
3936                         case NETR_DELTA_MODIFY_COUNT:
3937                                 if (r->modified_count) {
3938                                         NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
3939                                 }
3940                         break;
3941
3942                         default:
3943                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3944                 }
3945         }
3946         return NDR_ERR_SUCCESS;
3947 }
3948
3949 static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
3950 {
3951         int level;
3952         uint16_t _level;
3953         TALLOC_CTX *_mem_save_domain_0;
3954         TALLOC_CTX *_mem_save_group_0;
3955         TALLOC_CTX *_mem_save_rename_group_0;
3956         TALLOC_CTX *_mem_save_user_0;
3957         TALLOC_CTX *_mem_save_rename_user_0;
3958         TALLOC_CTX *_mem_save_group_member_0;
3959         TALLOC_CTX *_mem_save_alias_0;
3960         TALLOC_CTX *_mem_save_rename_alias_0;
3961         TALLOC_CTX *_mem_save_alias_member_0;
3962         TALLOC_CTX *_mem_save_policy_0;
3963         TALLOC_CTX *_mem_save_trusted_domain_0;
3964         TALLOC_CTX *_mem_save_account_0;
3965         TALLOC_CTX *_mem_save_secret_0;
3966         TALLOC_CTX *_mem_save_delete_group_0;
3967         TALLOC_CTX *_mem_save_delete_user_0;
3968         TALLOC_CTX *_mem_save_modified_count_0;
3969         level = ndr_pull_get_switch_value(ndr, r);
3970         if (ndr_flags & NDR_SCALARS) {
3971                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
3972                 if (_level != level) {
3973                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
3974                 }
3975                 switch (level) {
3976                         case NETR_DELTA_DOMAIN: {
3977                                 uint32_t _ptr_domain;
3978                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
3979                                 if (_ptr_domain) {
3980                                         NDR_PULL_ALLOC(ndr, r->domain);
3981                                 } else {
3982                                         r->domain = NULL;
3983                                 }
3984                         break; }
3985
3986                         case NETR_DELTA_GROUP: {
3987                                 uint32_t _ptr_group;
3988                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
3989                                 if (_ptr_group) {
3990                                         NDR_PULL_ALLOC(ndr, r->group);
3991                                 } else {
3992                                         r->group = NULL;
3993                                 }
3994                         break; }
3995
3996                         case NETR_DELTA_DELETE_GROUP: {
3997                         break; }
3998
3999                         case NETR_DELTA_RENAME_GROUP: {
4000                                 uint32_t _ptr_rename_group;
4001                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4002                                 if (_ptr_rename_group) {
4003                                         NDR_PULL_ALLOC(ndr, r->rename_group);
4004                                 } else {
4005                                         r->rename_group = NULL;
4006                                 }
4007                         break; }
4008
4009                         case NETR_DELTA_USER: {
4010                                 uint32_t _ptr_user;
4011                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4012                                 if (_ptr_user) {
4013                                         NDR_PULL_ALLOC(ndr, r->user);
4014                                 } else {
4015                                         r->user = NULL;
4016                                 }
4017                         break; }
4018
4019                         case NETR_DELTA_DELETE_USER: {
4020                         break; }
4021
4022                         case NETR_DELTA_RENAME_USER: {
4023                                 uint32_t _ptr_rename_user;
4024                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4025                                 if (_ptr_rename_user) {
4026                                         NDR_PULL_ALLOC(ndr, r->rename_user);
4027                                 } else {
4028                                         r->rename_user = NULL;
4029                                 }
4030                         break; }
4031
4032                         case NETR_DELTA_GROUP_MEMBER: {
4033                                 uint32_t _ptr_group_member;
4034                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4035                                 if (_ptr_group_member) {
4036                                         NDR_PULL_ALLOC(ndr, r->group_member);
4037                                 } else {
4038                                         r->group_member = NULL;
4039                                 }
4040                         break; }
4041
4042                         case NETR_DELTA_ALIAS: {
4043                                 uint32_t _ptr_alias;
4044                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4045                                 if (_ptr_alias) {
4046                                         NDR_PULL_ALLOC(ndr, r->alias);
4047                                 } else {
4048                                         r->alias = NULL;
4049                                 }
4050                         break; }
4051
4052                         case NETR_DELTA_DELETE_ALIAS: {
4053                         break; }
4054
4055                         case NETR_DELTA_RENAME_ALIAS: {
4056                                 uint32_t _ptr_rename_alias;
4057                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4058                                 if (_ptr_rename_alias) {
4059                                         NDR_PULL_ALLOC(ndr, r->rename_alias);
4060                                 } else {
4061                                         r->rename_alias = NULL;
4062                                 }
4063                         break; }
4064
4065                         case NETR_DELTA_ALIAS_MEMBER: {
4066                                 uint32_t _ptr_alias_member;
4067                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4068                                 if (_ptr_alias_member) {
4069                                         NDR_PULL_ALLOC(ndr, r->alias_member);
4070                                 } else {
4071                                         r->alias_member = NULL;
4072                                 }
4073                         break; }
4074
4075                         case NETR_DELTA_POLICY: {
4076                                 uint32_t _ptr_policy;
4077                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4078                                 if (_ptr_policy) {
4079                                         NDR_PULL_ALLOC(ndr, r->policy);
4080                                 } else {
4081                                         r->policy = NULL;
4082                                 }
4083                         break; }
4084
4085                         case NETR_DELTA_TRUSTED_DOMAIN: {
4086                                 uint32_t _ptr_trusted_domain;
4087                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4088                                 if (_ptr_trusted_domain) {
4089                                         NDR_PULL_ALLOC(ndr, r->trusted_domain);
4090                                 } else {
4091                                         r->trusted_domain = NULL;
4092                                 }
4093                         break; }
4094
4095                         case NETR_DELTA_DELETE_TRUST: {
4096                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4097                         break; }
4098
4099                         case NETR_DELTA_ACCOUNT: {
4100                                 uint32_t _ptr_account;
4101                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4102                                 if (_ptr_account) {
4103                                         NDR_PULL_ALLOC(ndr, r->account);
4104                                 } else {
4105                                         r->account = NULL;
4106                                 }
4107                         break; }
4108
4109                         case NETR_DELTA_DELETE_ACCOUNT: {
4110                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4111                         break; }
4112
4113                         case NETR_DELTA_SECRET: {
4114                                 uint32_t _ptr_secret;
4115                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4116                                 if (_ptr_secret) {
4117                                         NDR_PULL_ALLOC(ndr, r->secret);
4118                                 } else {
4119                                         r->secret = NULL;
4120                                 }
4121                         break; }
4122
4123                         case NETR_DELTA_DELETE_SECRET: {
4124                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4125                         break; }
4126
4127                         case NETR_DELTA_DELETE_GROUP2: {
4128                                 uint32_t _ptr_delete_group;
4129                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4130                                 if (_ptr_delete_group) {
4131                                         NDR_PULL_ALLOC(ndr, r->delete_group);
4132                                 } else {
4133                                         r->delete_group = NULL;
4134                                 }
4135                         break; }
4136
4137                         case NETR_DELTA_DELETE_USER2: {
4138                                 uint32_t _ptr_delete_user;
4139                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4140                                 if (_ptr_delete_user) {
4141                                         NDR_PULL_ALLOC(ndr, r->delete_user);
4142                                 } else {
4143                                         r->delete_user = NULL;
4144                                 }
4145                         break; }
4146
4147                         case NETR_DELTA_MODIFY_COUNT: {
4148                                 uint32_t _ptr_modified_count;
4149                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4150                                 if (_ptr_modified_count) {
4151                                         NDR_PULL_ALLOC(ndr, r->modified_count);
4152                                 } else {
4153                                         r->modified_count = NULL;
4154                                 }
4155                         break; }
4156
4157                         default:
4158                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4159                 }
4160         }
4161         if (ndr_flags & NDR_BUFFERS) {
4162                 switch (level) {
4163                         case NETR_DELTA_DOMAIN:
4164                                 if (r->domain) {
4165                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4166                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4167                                         NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4168                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4169                                 }
4170                         break;
4171
4172                         case NETR_DELTA_GROUP:
4173                                 if (r->group) {
4174                                         _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4175                                         NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4176                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4177                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4178                                 }
4179                         break;
4180
4181                         case NETR_DELTA_DELETE_GROUP:
4182                         break;
4183
4184                         case NETR_DELTA_RENAME_GROUP:
4185                                 if (r->rename_group) {
4186                                         _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4187                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4188                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4189                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4190                                 }
4191                         break;
4192
4193                         case NETR_DELTA_USER:
4194                                 if (r->user) {
4195                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4196                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4197                                         NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4198                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4199                                 }
4200                         break;
4201
4202                         case NETR_DELTA_DELETE_USER:
4203                         break;
4204
4205                         case NETR_DELTA_RENAME_USER:
4206                                 if (r->rename_user) {
4207                                         _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4208                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4209                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4210                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4211                                 }
4212                         break;
4213
4214                         case NETR_DELTA_GROUP_MEMBER:
4215                                 if (r->group_member) {
4216                                         _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4217                                         NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4218                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4219                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4220                                 }
4221                         break;
4222
4223                         case NETR_DELTA_ALIAS:
4224                                 if (r->alias) {
4225                                         _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4226                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4227                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4228                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4229                                 }
4230                         break;
4231
4232                         case NETR_DELTA_DELETE_ALIAS:
4233                         break;
4234
4235                         case NETR_DELTA_RENAME_ALIAS:
4236                                 if (r->rename_alias) {
4237                                         _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4238                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4239                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4240                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4241                                 }
4242                         break;
4243
4244                         case NETR_DELTA_ALIAS_MEMBER:
4245                                 if (r->alias_member) {
4246                                         _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4247                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4248                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4249                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4250                                 }
4251                         break;
4252
4253                         case NETR_DELTA_POLICY:
4254                                 if (r->policy) {
4255                                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4256                                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4257                                         NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4258                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4259                                 }
4260                         break;
4261
4262                         case NETR_DELTA_TRUSTED_DOMAIN:
4263                                 if (r->trusted_domain) {
4264                                         _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4265                                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4266                                         NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4267                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4268                                 }
4269                         break;
4270
4271                         case NETR_DELTA_DELETE_TRUST:
4272                         break;
4273
4274                         case NETR_DELTA_ACCOUNT:
4275                                 if (r->account) {
4276                                         _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4277                                         NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4278                                         NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4279                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4280                                 }
4281                         break;
4282
4283                         case NETR_DELTA_DELETE_ACCOUNT:
4284                         break;
4285
4286                         case NETR_DELTA_SECRET:
4287                                 if (r->secret) {
4288                                         _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4289                                         NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4290                                         NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4291                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4292                                 }
4293                         break;
4294
4295                         case NETR_DELTA_DELETE_SECRET:
4296                         break;
4297
4298                         case NETR_DELTA_DELETE_GROUP2:
4299                                 if (r->delete_group) {
4300                                         _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4301                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4302                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4303                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4304                                 }
4305                         break;
4306
4307                         case NETR_DELTA_DELETE_USER2:
4308                                 if (r->delete_user) {
4309                                         _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4310                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4311                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4312                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4313                                 }
4314                         break;
4315
4316                         case NETR_DELTA_MODIFY_COUNT:
4317                                 if (r->modified_count) {
4318                                         _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4319                                         NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4320                                         NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4321                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4322                                 }
4323                         break;
4324
4325                         default:
4326                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4327                 }
4328         }
4329         return NDR_ERR_SUCCESS;
4330 }
4331
4332 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
4333 {
4334         int level;
4335         level = ndr_print_get_switch_value(ndr, r);
4336         ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4337         switch (level) {
4338                 case NETR_DELTA_DOMAIN:
4339                         ndr_print_ptr(ndr, "domain", r->domain);
4340                         ndr->depth++;
4341                         if (r->domain) {
4342                                 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4343                         }
4344                         ndr->depth--;
4345                 break;
4346
4347                 case NETR_DELTA_GROUP:
4348                         ndr_print_ptr(ndr, "group", r->group);
4349                         ndr->depth++;
4350                         if (r->group) {
4351                                 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4352                         }
4353                         ndr->depth--;
4354                 break;
4355
4356                 case NETR_DELTA_DELETE_GROUP:
4357                 break;
4358
4359                 case NETR_DELTA_RENAME_GROUP:
4360                         ndr_print_ptr(ndr, "rename_group", r->rename_group);
4361                         ndr->depth++;
4362                         if (r->rename_group) {
4363                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4364                         }
4365                         ndr->depth--;
4366                 break;
4367
4368                 case NETR_DELTA_USER:
4369                         ndr_print_ptr(ndr, "user", r->user);
4370                         ndr->depth++;
4371                         if (r->user) {
4372                                 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4373                         }
4374                         ndr->depth--;
4375                 break;
4376
4377                 case NETR_DELTA_DELETE_USER:
4378                 break;
4379
4380                 case NETR_DELTA_RENAME_USER:
4381                         ndr_print_ptr(ndr, "rename_user", r->rename_user);
4382                         ndr->depth++;
4383                         if (r->rename_user) {
4384                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4385                         }
4386                         ndr->depth--;
4387                 break;
4388
4389                 case NETR_DELTA_GROUP_MEMBER:
4390                         ndr_print_ptr(ndr, "group_member", r->group_member);
4391                         ndr->depth++;
4392                         if (r->group_member) {
4393                                 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4394                         }
4395                         ndr->depth--;
4396                 break;
4397
4398                 case NETR_DELTA_ALIAS:
4399                         ndr_print_ptr(ndr, "alias", r->alias);
4400                         ndr->depth++;
4401                         if (r->alias) {
4402                                 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4403                         }
4404                         ndr->depth--;
4405                 break;
4406
4407                 case NETR_DELTA_DELETE_ALIAS:
4408                 break;
4409
4410                 case NETR_DELTA_RENAME_ALIAS:
4411                         ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4412                         ndr->depth++;
4413                         if (r->rename_alias) {
4414                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4415                         }
4416                         ndr->depth--;
4417                 break;
4418
4419                 case NETR_DELTA_ALIAS_MEMBER:
4420                         ndr_print_ptr(ndr, "alias_member", r->alias_member);
4421                         ndr->depth++;
4422                         if (r->alias_member) {
4423                                 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4424                         }
4425                         ndr->depth--;
4426                 break;
4427
4428                 case NETR_DELTA_POLICY:
4429                         ndr_print_ptr(ndr, "policy", r->policy);
4430                         ndr->depth++;
4431                         if (r->policy) {
4432                                 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4433                         }
4434                         ndr->depth--;
4435                 break;
4436
4437                 case NETR_DELTA_TRUSTED_DOMAIN:
4438                         ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4439                         ndr->depth++;
4440                         if (r->trusted_domain) {
4441                                 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4442                         }
4443                         ndr->depth--;
4444                 break;
4445
4446                 case NETR_DELTA_DELETE_TRUST:
4447                         ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4448                 break;
4449
4450                 case NETR_DELTA_ACCOUNT:
4451                         ndr_print_ptr(ndr, "account", r->account);
4452                         ndr->depth++;
4453                         if (r->account) {
4454                                 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4455                         }
4456                         ndr->depth--;
4457                 break;
4458
4459                 case NETR_DELTA_DELETE_ACCOUNT:
4460                         ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4461                 break;
4462
4463                 case NETR_DELTA_SECRET:
4464                         ndr_print_ptr(ndr, "secret", r->secret);
4465                         ndr->depth++;
4466                         if (r->secret) {
4467                                 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4468                         }
4469                         ndr->depth--;
4470                 break;
4471
4472                 case NETR_DELTA_DELETE_SECRET:
4473                         ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4474                 break;
4475
4476                 case NETR_DELTA_DELETE_GROUP2:
4477                         ndr_print_ptr(ndr, "delete_group", r->delete_group);
4478                         ndr->depth++;
4479                         if (r->delete_group) {
4480                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4481                         }
4482                         ndr->depth--;
4483                 break;
4484
4485                 case NETR_DELTA_DELETE_USER2:
4486                         ndr_print_ptr(ndr, "delete_user", r->delete_user);
4487                         ndr->depth++;
4488                         if (r->delete_user) {
4489                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4490                         }
4491                         ndr->depth--;
4492                 break;
4493
4494                 case NETR_DELTA_MODIFY_COUNT:
4495                         ndr_print_ptr(ndr, "modified_count", r->modified_count);
4496                         ndr->depth++;
4497                         if (r->modified_count) {
4498                                 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4499                         }
4500                         ndr->depth--;
4501                 break;
4502
4503                 default:
4504                         ndr_print_bad_level(ndr, name, level);
4505         }
4506 }
4507
4508 static enum ndr_err_code ndr_push_netr_DELTA_ID_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_ID_UNION *r)
4509 {
4510         if (ndr_flags & NDR_SCALARS) {
4511                 int level = ndr_push_get_switch_value(ndr, r);
4512                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4513                 switch (level) {
4514                         case NETR_DELTA_DOMAIN: {
4515                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4516                         break; }
4517
4518                         case NETR_DELTA_GROUP: {
4519                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4520                         break; }
4521
4522                         case NETR_DELTA_DELETE_GROUP: {
4523                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4524                         break; }
4525
4526                         case NETR_DELTA_RENAME_GROUP: {
4527                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4528                         break; }
4529
4530                         case NETR_DELTA_USER: {
4531                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4532                         break; }
4533
4534                         case NETR_DELTA_DELETE_USER: {
4535                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4536                         break; }
4537
4538                         case NETR_DELTA_RENAME_USER: {
4539                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4540                         break; }
4541
4542                         case NETR_DELTA_GROUP_MEMBER: {
4543                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4544                         break; }
4545
4546                         case NETR_DELTA_ALIAS: {
4547                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4548                         break; }
4549
4550                         case NETR_DELTA_DELETE_ALIAS: {
4551                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4552                         break; }
4553
4554                         case NETR_DELTA_RENAME_ALIAS: {
4555                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4556                         break; }
4557
4558                         case NETR_DELTA_ALIAS_MEMBER: {
4559                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4560                         break; }
4561
4562                         case NETR_DELTA_POLICY: {
4563                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4564                         break; }
4565
4566                         case NETR_DELTA_TRUSTED_DOMAIN: {
4567                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4568                         break; }
4569
4570                         case NETR_DELTA_DELETE_TRUST: {
4571                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4572                         break; }
4573
4574                         case NETR_DELTA_ACCOUNT: {
4575                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4576                         break; }
4577
4578                         case NETR_DELTA_DELETE_ACCOUNT: {
4579                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4580                         break; }
4581
4582                         case NETR_DELTA_SECRET: {
4583                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4584                         break; }
4585
4586                         case NETR_DELTA_DELETE_SECRET: {
4587                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4588                         break; }
4589
4590                         case NETR_DELTA_DELETE_GROUP2: {
4591                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4592                         break; }
4593
4594                         case NETR_DELTA_DELETE_USER2: {
4595                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4596                         break; }
4597
4598                         case NETR_DELTA_MODIFY_COUNT: {
4599                         break; }
4600
4601                         default:
4602                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4603                 }
4604         }
4605         if (ndr_flags & NDR_BUFFERS) {
4606                 int level = ndr_push_get_switch_value(ndr, r);
4607                 switch (level) {
4608                         case NETR_DELTA_DOMAIN:
4609                         break;
4610
4611                         case NETR_DELTA_GROUP:
4612                         break;
4613
4614                         case NETR_DELTA_DELETE_GROUP:
4615                         break;
4616
4617                         case NETR_DELTA_RENAME_GROUP:
4618                         break;
4619
4620                         case NETR_DELTA_USER:
4621                         break;
4622
4623                         case NETR_DELTA_DELETE_USER:
4624                         break;
4625
4626                         case NETR_DELTA_RENAME_USER:
4627                         break;
4628
4629                         case NETR_DELTA_GROUP_MEMBER:
4630                         break;
4631
4632                         case NETR_DELTA_ALIAS:
4633                         break;
4634
4635                         case NETR_DELTA_DELETE_ALIAS:
4636                         break;
4637
4638                         case NETR_DELTA_RENAME_ALIAS:
4639                         break;
4640
4641                         case NETR_DELTA_ALIAS_MEMBER:
4642                         break;
4643
4644                         case NETR_DELTA_POLICY:
4645                                 if (r->sid) {
4646                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4647                                 }
4648                         break;
4649
4650                         case NETR_DELTA_TRUSTED_DOMAIN:
4651                                 if (r->sid) {
4652                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4653                                 }
4654                         break;
4655
4656                         case NETR_DELTA_DELETE_TRUST:
4657                                 if (r->sid) {
4658                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4659                                 }
4660                         break;
4661
4662                         case NETR_DELTA_ACCOUNT:
4663                                 if (r->sid) {
4664                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4665                                 }
4666                         break;
4667
4668                         case NETR_DELTA_DELETE_ACCOUNT:
4669                                 if (r->sid) {
4670                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4671                                 }
4672                         break;
4673
4674                         case NETR_DELTA_SECRET:
4675                                 if (r->name) {
4676                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4677                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4678                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4679                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4680                                 }
4681                         break;
4682
4683                         case NETR_DELTA_DELETE_SECRET:
4684                                 if (r->name) {
4685                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4686                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4687                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4688                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4689                                 }
4690                         break;
4691
4692                         case NETR_DELTA_DELETE_GROUP2:
4693                         break;
4694
4695                         case NETR_DELTA_DELETE_USER2:
4696                         break;
4697
4698                         case NETR_DELTA_MODIFY_COUNT:
4699                         break;
4700
4701                         default:
4702                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4703                 }
4704         }
4705         return NDR_ERR_SUCCESS;
4706 }
4707
4708 static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
4709 {
4710         int level;
4711         uint16_t _level;
4712         TALLOC_CTX *_mem_save_sid_0;
4713         TALLOC_CTX *_mem_save_name_0;
4714         level = ndr_pull_get_switch_value(ndr, r);
4715         if (ndr_flags & NDR_SCALARS) {
4716                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4717                 if (_level != level) {
4718                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4719                 }
4720                 switch (level) {
4721                         case NETR_DELTA_DOMAIN: {
4722                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4723                         break; }
4724
4725                         case NETR_DELTA_GROUP: {
4726                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4727                         break; }
4728
4729                         case NETR_DELTA_DELETE_GROUP: {
4730                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4731                         break; }
4732
4733                         case NETR_DELTA_RENAME_GROUP: {
4734                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4735                         break; }
4736
4737                         case NETR_DELTA_USER: {
4738                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4739                         break; }
4740
4741                         case NETR_DELTA_DELETE_USER: {
4742                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4743                         break; }
4744
4745                         case NETR_DELTA_RENAME_USER: {
4746                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4747                         break; }
4748
4749                         case NETR_DELTA_GROUP_MEMBER: {
4750                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4751                         break; }
4752
4753                         case NETR_DELTA_ALIAS: {
4754                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4755                         break; }
4756
4757                         case NETR_DELTA_DELETE_ALIAS: {
4758                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4759                         break; }
4760
4761                         case NETR_DELTA_RENAME_ALIAS: {
4762                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4763                         break; }
4764
4765                         case NETR_DELTA_ALIAS_MEMBER: {
4766                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4767                         break; }
4768
4769                         case NETR_DELTA_POLICY: {
4770                                 uint32_t _ptr_sid;
4771                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4772                                 if (_ptr_sid) {
4773                                         NDR_PULL_ALLOC(ndr, r->sid);
4774                                 } else {
4775                                         r->sid = NULL;
4776                                 }
4777                         break; }
4778
4779                         case NETR_DELTA_TRUSTED_DOMAIN: {
4780                                 uint32_t _ptr_sid;
4781                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4782                                 if (_ptr_sid) {
4783                                         NDR_PULL_ALLOC(ndr, r->sid);
4784                                 } else {
4785                                         r->sid = NULL;
4786                                 }
4787                         break; }
4788
4789                         case NETR_DELTA_DELETE_TRUST: {
4790                                 uint32_t _ptr_sid;
4791                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4792                                 if (_ptr_sid) {
4793                                         NDR_PULL_ALLOC(ndr, r->sid);
4794                                 } else {
4795                                         r->sid = NULL;
4796                                 }
4797                         break; }
4798
4799                         case NETR_DELTA_ACCOUNT: {
4800                                 uint32_t _ptr_sid;
4801                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4802                                 if (_ptr_sid) {
4803                                         NDR_PULL_ALLOC(ndr, r->sid);
4804                                 } else {
4805                                         r->sid = NULL;
4806                                 }
4807                         break; }
4808
4809                         case NETR_DELTA_DELETE_ACCOUNT: {
4810                                 uint32_t _ptr_sid;
4811                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4812                                 if (_ptr_sid) {
4813                                         NDR_PULL_ALLOC(ndr, r->sid);
4814                                 } else {
4815                                         r->sid = NULL;
4816                                 }
4817                         break; }
4818
4819                         case NETR_DELTA_SECRET: {
4820                                 uint32_t _ptr_name;
4821                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4822                                 if (_ptr_name) {
4823                                         NDR_PULL_ALLOC(ndr, r->name);
4824                                 } else {
4825                                         r->name = NULL;
4826                                 }
4827                         break; }
4828
4829                         case NETR_DELTA_DELETE_SECRET: {
4830                                 uint32_t _ptr_name;
4831                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4832                                 if (_ptr_name) {
4833                                         NDR_PULL_ALLOC(ndr, r->name);
4834                                 } else {
4835                                         r->name = NULL;
4836                                 }
4837                         break; }
4838
4839                         case NETR_DELTA_DELETE_GROUP2: {
4840                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4841                         break; }
4842
4843                         case NETR_DELTA_DELETE_USER2: {
4844                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4845                         break; }
4846
4847                         case NETR_DELTA_MODIFY_COUNT: {
4848                         break; }
4849
4850                         default:
4851                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4852                 }
4853         }
4854         if (ndr_flags & NDR_BUFFERS) {
4855                 switch (level) {
4856                         case NETR_DELTA_DOMAIN:
4857                         break;
4858
4859                         case NETR_DELTA_GROUP:
4860                         break;
4861
4862                         case NETR_DELTA_DELETE_GROUP:
4863                         break;
4864
4865                         case NETR_DELTA_RENAME_GROUP:
4866                         break;
4867
4868                         case NETR_DELTA_USER:
4869                         break;
4870
4871                         case NETR_DELTA_DELETE_USER:
4872                         break;
4873
4874                         case NETR_DELTA_RENAME_USER:
4875                         break;
4876
4877                         case NETR_DELTA_GROUP_MEMBER:
4878                         break;
4879
4880                         case NETR_DELTA_ALIAS:
4881                         break;
4882
4883                         case NETR_DELTA_DELETE_ALIAS:
4884                         break;
4885
4886                         case NETR_DELTA_RENAME_ALIAS:
4887                         break;
4888
4889                         case NETR_DELTA_ALIAS_MEMBER:
4890                         break;
4891
4892                         case NETR_DELTA_POLICY:
4893                                 if (r->sid) {
4894                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4895                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4896                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4897                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4898                                 }
4899                         break;
4900
4901                         case NETR_DELTA_TRUSTED_DOMAIN:
4902                                 if (r->sid) {
4903                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4904                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4905                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4906                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4907                                 }
4908                         break;
4909
4910                         case NETR_DELTA_DELETE_TRUST:
4911                                 if (r->sid) {
4912                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4913                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4914                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4915                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4916                                 }
4917                         break;
4918
4919                         case NETR_DELTA_ACCOUNT:
4920                                 if (r->sid) {
4921                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4922                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4923                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4924                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4925                                 }
4926                         break;
4927
4928                         case NETR_DELTA_DELETE_ACCOUNT:
4929                                 if (r->sid) {
4930                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4931                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4932                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4933                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4934                                 }
4935                         break;
4936
4937                         case NETR_DELTA_SECRET:
4938                                 if (r->name) {
4939                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4940                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
4941                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
4942                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
4943                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
4944                                                 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));
4945                                         }
4946                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
4947                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
4948                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
4949                                 }
4950                         break;
4951
4952                         case NETR_DELTA_DELETE_SECRET:
4953                                 if (r->name) {
4954                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4955                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
4956                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
4957                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
4958                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
4959                                                 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));
4960                                         }
4961                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
4962                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
4963                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
4964                                 }
4965                         break;
4966
4967                         case NETR_DELTA_DELETE_GROUP2:
4968                         break;
4969
4970                         case NETR_DELTA_DELETE_USER2:
4971                         break;
4972
4973                         case NETR_DELTA_MODIFY_COUNT:
4974                         break;
4975
4976                         default:
4977                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4978                 }
4979         }
4980         return NDR_ERR_SUCCESS;
4981 }
4982
4983 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
4984 {
4985         int level;
4986         level = ndr_print_get_switch_value(ndr, r);
4987         ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
4988         switch (level) {
4989                 case NETR_DELTA_DOMAIN:
4990                         ndr_print_uint32(ndr, "rid", r->rid);
4991                 break;
4992
4993                 case NETR_DELTA_GROUP:
4994                         ndr_print_uint32(ndr, "rid", r->rid);
4995                 break;
4996
4997                 case NETR_DELTA_DELETE_GROUP:
4998                         ndr_print_uint32(ndr, "rid", r->rid);
4999                 break;
5000
5001                 case NETR_DELTA_RENAME_GROUP:
5002                         ndr_print_uint32(ndr, "rid", r->rid);
5003                 break;
5004
5005                 case NETR_DELTA_USER:
5006                         ndr_print_uint32(ndr, "rid", r->rid);
5007                 break;
5008
5009                 case NETR_DELTA_DELETE_USER:
5010                         ndr_print_uint32(ndr, "rid", r->rid);
5011                 break;
5012
5013                 case NETR_DELTA_RENAME_USER:
5014                         ndr_print_uint32(ndr, "rid", r->rid);
5015                 break;
5016
5017                 case NETR_DELTA_GROUP_MEMBER:
5018                         ndr_print_uint32(ndr, "rid", r->rid);
5019                 break;
5020
5021                 case NETR_DELTA_ALIAS:
5022                         ndr_print_uint32(ndr, "rid", r->rid);
5023                 break;
5024
5025                 case NETR_DELTA_DELETE_ALIAS:
5026                         ndr_print_uint32(ndr, "rid", r->rid);
5027                 break;
5028
5029                 case NETR_DELTA_RENAME_ALIAS:
5030                         ndr_print_uint32(ndr, "rid", r->rid);
5031                 break;
5032
5033                 case NETR_DELTA_ALIAS_MEMBER:
5034                         ndr_print_uint32(ndr, "rid", r->rid);
5035                 break;
5036
5037                 case NETR_DELTA_POLICY:
5038                         ndr_print_ptr(ndr, "sid", r->sid);
5039                         ndr->depth++;
5040                         if (r->sid) {
5041                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5042                         }
5043                         ndr->depth--;
5044                 break;
5045
5046                 case NETR_DELTA_TRUSTED_DOMAIN:
5047                         ndr_print_ptr(ndr, "sid", r->sid);
5048                         ndr->depth++;
5049                         if (r->sid) {
5050                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5051                         }
5052                         ndr->depth--;
5053                 break;
5054
5055                 case NETR_DELTA_DELETE_TRUST:
5056                         ndr_print_ptr(ndr, "sid", r->sid);
5057                         ndr->depth++;
5058                         if (r->sid) {
5059                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5060                         }
5061                         ndr->depth--;
5062                 break;
5063
5064                 case NETR_DELTA_ACCOUNT:
5065                         ndr_print_ptr(ndr, "sid", r->sid);
5066                         ndr->depth++;
5067                         if (r->sid) {
5068                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5069                         }
5070                         ndr->depth--;
5071                 break;
5072
5073                 case NETR_DELTA_DELETE_ACCOUNT:
5074                         ndr_print_ptr(ndr, "sid", r->sid);
5075                         ndr->depth++;
5076                         if (r->sid) {
5077                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5078                         }
5079                         ndr->depth--;
5080                 break;
5081
5082                 case NETR_DELTA_SECRET:
5083                         ndr_print_ptr(ndr, "name", r->name);
5084                         ndr->depth++;
5085                         if (r->name) {
5086                                 ndr_print_string(ndr, "name", r->name);
5087                         }
5088                         ndr->depth--;
5089                 break;
5090
5091                 case NETR_DELTA_DELETE_SECRET:
5092                         ndr_print_ptr(ndr, "name", r->name);
5093                         ndr->depth++;
5094                         if (r->name) {
5095                                 ndr_print_string(ndr, "name", r->name);
5096                         }
5097                         ndr->depth--;
5098                 break;
5099
5100                 case NETR_DELTA_DELETE_GROUP2:
5101                         ndr_print_uint32(ndr, "rid", r->rid);
5102                 break;
5103
5104                 case NETR_DELTA_DELETE_USER2:
5105                         ndr_print_uint32(ndr, "rid", r->rid);
5106                 break;
5107
5108                 case NETR_DELTA_MODIFY_COUNT:
5109                 break;
5110
5111                 default:
5112                         ndr_print_bad_level(ndr, name, level);
5113         }
5114 }
5115
5116 static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
5117 {
5118         if (ndr_flags & NDR_SCALARS) {
5119                 NDR_CHECK(ndr_push_align(ndr, 4));
5120                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5121                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5122                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5123                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5124                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5125         }
5126         if (ndr_flags & NDR_BUFFERS) {
5127                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5128                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5129         }
5130         return NDR_ERR_SUCCESS;
5131 }
5132
5133 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
5134 {
5135         if (ndr_flags & NDR_SCALARS) {
5136                 NDR_CHECK(ndr_pull_align(ndr, 4));
5137                 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5138                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5139                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5140                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5141                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5142         }
5143         if (ndr_flags & NDR_BUFFERS) {
5144                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5145                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5146         }
5147         return NDR_ERR_SUCCESS;
5148 }
5149
5150 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
5151 {
5152         ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5153         ndr->depth++;
5154         ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5155         ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5156         ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5157         ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5158         ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5159         ndr->depth--;
5160 }
5161
5162 static enum ndr_err_code ndr_push_netr_DELTA_ENUM_ARRAY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM_ARRAY *r)
5163 {
5164         uint32_t cntr_delta_enum_1;
5165         if (ndr_flags & NDR_SCALARS) {
5166                 NDR_CHECK(ndr_push_align(ndr, 4));
5167                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5168                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5169         }
5170         if (ndr_flags & NDR_BUFFERS) {
5171                 if (r->delta_enum) {
5172                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5173                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5174                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5175                         }
5176                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5177                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5178                         }
5179                 }
5180         }
5181         return NDR_ERR_SUCCESS;
5182 }
5183
5184 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
5185 {
5186         uint32_t _ptr_delta_enum;
5187         uint32_t cntr_delta_enum_1;
5188         TALLOC_CTX *_mem_save_delta_enum_0;
5189         TALLOC_CTX *_mem_save_delta_enum_1;
5190         if (ndr_flags & NDR_SCALARS) {
5191                 NDR_CHECK(ndr_pull_align(ndr, 4));
5192                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5193                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5194                 if (_ptr_delta_enum) {
5195                         NDR_PULL_ALLOC(ndr, r->delta_enum);
5196                 } else {
5197                         r->delta_enum = NULL;
5198                 }
5199         }
5200         if (ndr_flags & NDR_BUFFERS) {
5201                 if (r->delta_enum) {
5202                         _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5203                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5204                         NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5205                         NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5206                         _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5207                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5208                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5209                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5210                         }
5211                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5212                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5213                         }
5214                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5215                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5216                 }
5217                 if (r->delta_enum) {
5218                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5219                 }
5220         }
5221         return NDR_ERR_SUCCESS;
5222 }
5223
5224 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
5225 {
5226         uint32_t cntr_delta_enum_1;
5227         ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5228         ndr->depth++;
5229         ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5230         ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5231         ndr->depth++;
5232         if (r->delta_enum) {
5233                 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", (int)r->num_deltas);
5234                 ndr->depth++;
5235                 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5236                         char *idx_1=NULL;
5237                         if (asprintf(&idx_1, "[%d]", cntr_delta_enum_1) != -1) {
5238                                 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5239                                 free(idx_1);
5240                         }
5241                 }
5242                 ndr->depth--;
5243         }
5244         ndr->depth--;
5245         ndr->depth--;
5246 }
5247
5248 static enum ndr_err_code ndr_push_netr_UAS_INFO_0(struct ndr_push *ndr, int ndr_flags, const struct netr_UAS_INFO_0 *r)
5249 {
5250         {
5251                 uint32_t _flags_save_STRUCT = ndr->flags;
5252                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5253                 if (ndr_flags & NDR_SCALARS) {
5254                         NDR_CHECK(ndr_push_align(ndr, 4));
5255                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5256                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5257                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5258                 }
5259                 if (ndr_flags & NDR_BUFFERS) {
5260                 }
5261                 ndr->flags = _flags_save_STRUCT;
5262         }
5263         return NDR_ERR_SUCCESS;
5264 }
5265
5266 static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
5267 {
5268         {
5269                 uint32_t _flags_save_STRUCT = ndr->flags;
5270                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5271                 if (ndr_flags & NDR_SCALARS) {
5272                         NDR_CHECK(ndr_pull_align(ndr, 4));
5273                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5274                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5275                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5276                 }
5277                 if (ndr_flags & NDR_BUFFERS) {
5278                 }
5279                 ndr->flags = _flags_save_STRUCT;
5280         }
5281         return NDR_ERR_SUCCESS;
5282 }
5283
5284 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
5285 {
5286         ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5287         {
5288                 uint32_t _flags_save_STRUCT = ndr->flags;
5289                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5290                 ndr->depth++;
5291                 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5292                 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5293                 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5294                 ndr->depth--;
5295                 ndr->flags = _flags_save_STRUCT;
5296         }
5297 }
5298
5299 static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
5300 {
5301         if (ndr_flags & NDR_SCALARS) {
5302                 NDR_CHECK(ndr_push_align(ndr, 4));
5303                 {
5304                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5305                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5306                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5307                         ndr->flags = _flags_save_DATA_BLOB;
5308                 }
5309         }
5310         if (ndr_flags & NDR_BUFFERS) {
5311         }
5312         return NDR_ERR_SUCCESS;
5313 }
5314
5315 static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
5316 {
5317         if (ndr_flags & NDR_SCALARS) {
5318                 NDR_CHECK(ndr_pull_align(ndr, 4));
5319                 {
5320                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5321                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5322                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5323                         ndr->flags = _flags_save_DATA_BLOB;
5324                 }
5325         }
5326         if (ndr_flags & NDR_BUFFERS) {
5327         }
5328         return NDR_ERR_SUCCESS;
5329 }
5330
5331 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
5332 {
5333         ndr_print_struct(ndr, name, "netr_AccountBuffer");
5334         ndr->depth++;
5335         ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5336         ndr->depth--;
5337 }
5338
5339 static enum ndr_err_code ndr_push_netr_InfoFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5340 {
5341         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5342         return NDR_ERR_SUCCESS;
5343 }
5344
5345 static enum ndr_err_code ndr_pull_netr_InfoFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5346 {
5347         uint32_t v;
5348         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5349         *r = v;
5350         return NDR_ERR_SUCCESS;
5351 }
5352
5353 _PUBLIC_ void ndr_print_netr_InfoFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5354 {
5355         ndr_print_uint32(ndr, name, r);
5356         ndr->depth++;
5357         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_NEEDED", NETLOGON_CTRL_REPL_NEEDED, r);
5358         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_IN_PROGRESS", NETLOGON_CTRL_REPL_IN_PROGRESS, r);
5359         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_FULL_SYNC", NETLOGON_CTRL_REPL_FULL_SYNC, r);
5360         ndr->depth--;
5361 }
5362
5363 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_1(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_1 *r)
5364 {
5365         if (ndr_flags & NDR_SCALARS) {
5366                 NDR_CHECK(ndr_push_align(ndr, 4));
5367                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5368                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5369         }
5370         if (ndr_flags & NDR_BUFFERS) {
5371         }
5372         return NDR_ERR_SUCCESS;
5373 }
5374
5375 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
5376 {
5377         if (ndr_flags & NDR_SCALARS) {
5378                 NDR_CHECK(ndr_pull_align(ndr, 4));
5379                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5380                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5381         }
5382         if (ndr_flags & NDR_BUFFERS) {
5383         }
5384         return NDR_ERR_SUCCESS;
5385 }
5386
5387 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
5388 {
5389         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5390         ndr->depth++;
5391         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5392         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5393         ndr->depth--;
5394 }
5395
5396 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_2(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_2 *r)
5397 {
5398         if (ndr_flags & NDR_SCALARS) {
5399                 NDR_CHECK(ndr_push_align(ndr, 4));
5400                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5401                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5402                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5403                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status));
5404         }
5405         if (ndr_flags & NDR_BUFFERS) {
5406                 if (r->trusted_dc_name) {
5407                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5408                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5409                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5410                         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));
5411                 }
5412         }
5413         return NDR_ERR_SUCCESS;
5414 }
5415
5416 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
5417 {
5418         uint32_t _ptr_trusted_dc_name;
5419         TALLOC_CTX *_mem_save_trusted_dc_name_0;
5420         if (ndr_flags & NDR_SCALARS) {
5421                 NDR_CHECK(ndr_pull_align(ndr, 4));
5422                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5423                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5424                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5425                 if (_ptr_trusted_dc_name) {
5426                         NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5427                 } else {
5428                         r->trusted_dc_name = NULL;
5429                 }
5430                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status));
5431         }
5432         if (ndr_flags & NDR_BUFFERS) {
5433                 if (r->trusted_dc_name) {
5434                         _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5435                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5436                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5437                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5438                         if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5439                                 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));
5440                         }
5441                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5442                         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));
5443                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5444                 }
5445         }
5446         return NDR_ERR_SUCCESS;
5447 }
5448
5449 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
5450 {
5451         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5452         ndr->depth++;
5453         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5454         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5455         ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5456         ndr->depth++;
5457         if (r->trusted_dc_name) {
5458                 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5459         }
5460         ndr->depth--;
5461         ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status);
5462         ndr->depth--;
5463 }
5464
5465 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_3(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_3 *r)
5466 {
5467         if (ndr_flags & NDR_SCALARS) {
5468                 NDR_CHECK(ndr_push_align(ndr, 4));
5469                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5470                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5471                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5472                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5473                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5474                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5475                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5476         }
5477         if (ndr_flags & NDR_BUFFERS) {
5478         }
5479         return NDR_ERR_SUCCESS;
5480 }
5481
5482 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
5483 {
5484         if (ndr_flags & NDR_SCALARS) {
5485                 NDR_CHECK(ndr_pull_align(ndr, 4));
5486                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5487                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5488                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5489                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5490                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5491                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5492                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5493         }
5494         if (ndr_flags & NDR_BUFFERS) {
5495         }
5496         return NDR_ERR_SUCCESS;
5497 }
5498
5499 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
5500 {
5501         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
5502         ndr->depth++;
5503         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5504         ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5505         ndr_print_uint32(ndr, "unknown1", r->unknown1);
5506         ndr_print_uint32(ndr, "unknown2", r->unknown2);
5507         ndr_print_uint32(ndr, "unknown3", r->unknown3);
5508         ndr_print_uint32(ndr, "unknown4", r->unknown4);
5509         ndr_print_uint32(ndr, "unknown5", r->unknown5);
5510         ndr->depth--;
5511 }
5512
5513 static enum ndr_err_code ndr_push_netr_CONTROL_QUERY_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_QUERY_INFORMATION *r)
5514 {
5515         if (ndr_flags & NDR_SCALARS) {
5516                 int level = ndr_push_get_switch_value(ndr, r);
5517                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5518                 switch (level) {
5519                         case 1: {
5520                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5521                         break; }
5522
5523                         case 2: {
5524                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5525                         break; }
5526
5527                         case 3: {
5528                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5529                         break; }
5530
5531                         default:
5532                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5533                 }
5534         }
5535         if (ndr_flags & NDR_BUFFERS) {
5536                 int level = ndr_push_get_switch_value(ndr, r);
5537                 switch (level) {
5538                         case 1:
5539                                 if (r->info1) {
5540                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5541                                 }
5542                         break;
5543
5544                         case 2:
5545                                 if (r->info2) {
5546                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5547                                 }
5548                         break;
5549
5550                         case 3:
5551                                 if (r->info3) {
5552                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5553                                 }
5554                         break;
5555
5556                         default:
5557                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5558                 }
5559         }
5560         return NDR_ERR_SUCCESS;
5561 }
5562
5563 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
5564 {
5565         int level;
5566         uint32_t _level;
5567         TALLOC_CTX *_mem_save_info1_0;
5568         TALLOC_CTX *_mem_save_info2_0;
5569         TALLOC_CTX *_mem_save_info3_0;
5570         level = ndr_pull_get_switch_value(ndr, r);
5571         if (ndr_flags & NDR_SCALARS) {
5572                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5573                 if (_level != level) {
5574                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5575                 }
5576                 switch (level) {
5577                         case 1: {
5578                                 uint32_t _ptr_info1;
5579                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5580                                 if (_ptr_info1) {
5581                                         NDR_PULL_ALLOC(ndr, r->info1);
5582                                 } else {
5583                                         r->info1 = NULL;
5584                                 }
5585                         break; }
5586
5587                         case 2: {
5588                                 uint32_t _ptr_info2;
5589                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5590                                 if (_ptr_info2) {
5591                                         NDR_PULL_ALLOC(ndr, r->info2);
5592                                 } else {
5593                                         r->info2 = NULL;
5594                                 }
5595                         break; }
5596
5597                         case 3: {
5598                                 uint32_t _ptr_info3;
5599                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5600                                 if (_ptr_info3) {
5601                                         NDR_PULL_ALLOC(ndr, r->info3);
5602                                 } else {
5603                                         r->info3 = NULL;
5604                                 }
5605                         break; }
5606
5607                         default:
5608                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5609                 }
5610         }
5611         if (ndr_flags & NDR_BUFFERS) {
5612                 switch (level) {
5613                         case 1:
5614                                 if (r->info1) {
5615                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5616                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5617                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5618                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5619                                 }
5620                         break;
5621
5622                         case 2:
5623                                 if (r->info2) {
5624                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5625                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5626                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5627                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5628                                 }
5629                         break;
5630
5631                         case 3:
5632                                 if (r->info3) {
5633                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5634                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5635                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5636                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5637                                 }
5638                         break;
5639
5640                         default:
5641                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5642                 }
5643         }
5644         return NDR_ERR_SUCCESS;
5645 }
5646
5647 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
5648 {
5649         int level;
5650         level = ndr_print_get_switch_value(ndr, r);
5651         ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
5652         switch (level) {
5653                 case 1:
5654                         ndr_print_ptr(ndr, "info1", r->info1);
5655                         ndr->depth++;
5656                         if (r->info1) {
5657                                 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
5658                         }
5659                         ndr->depth--;
5660                 break;
5661
5662                 case 2:
5663                         ndr_print_ptr(ndr, "info2", r->info2);
5664                         ndr->depth++;
5665                         if (r->info2) {
5666                                 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
5667                         }
5668                         ndr->depth--;
5669                 break;
5670
5671                 case 3:
5672                         ndr_print_ptr(ndr, "info3", r->info3);
5673                         ndr->depth++;
5674                         if (r->info3) {
5675                                 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
5676                         }
5677                         ndr->depth--;
5678                 break;
5679
5680                 default:
5681                         ndr_print_bad_level(ndr, name, level);
5682         }
5683 }
5684
5685 static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
5686 {
5687         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5688         return NDR_ERR_SUCCESS;
5689 }
5690
5691 static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
5692 {
5693         uint32_t v;
5694         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5695         *r = v;
5696         return NDR_ERR_SUCCESS;
5697 }
5698
5699 _PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
5700 {
5701         const char *val = NULL;
5702
5703         switch (r) {
5704                 case NETLOGON_CONTROL_SYNC: val = "NETLOGON_CONTROL_SYNC"; break;
5705                 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
5706                 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
5707                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5708                 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
5709         }
5710         ndr_print_enum(ndr, name, "ENUM", val, r);
5711 }
5712
5713 static enum ndr_err_code ndr_push_netr_CONTROL_DATA_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_DATA_INFORMATION *r)
5714 {
5715         if (ndr_flags & NDR_SCALARS) {
5716                 int level = ndr_push_get_switch_value(ndr, r);
5717                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5718                 switch (level) {
5719                         case NETLOGON_CONTROL_REDISCOVER: {
5720                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5721                         break; }
5722
5723                         case NETLOGON_CONTROL_TC_QUERY: {
5724                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5725                         break; }
5726
5727                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5728                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5729                         break; }
5730
5731                         case NETLOGON_CONTROL_SET_DBFLAG: {
5732                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
5733                         break; }
5734
5735                         default:
5736                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5737                 }
5738         }
5739         if (ndr_flags & NDR_BUFFERS) {
5740                 int level = ndr_push_get_switch_value(ndr, r);
5741                 switch (level) {
5742                         case NETLOGON_CONTROL_REDISCOVER:
5743                                 if (r->domain) {
5744                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5745                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5746                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5747                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5748                                 }
5749                         break;
5750
5751                         case NETLOGON_CONTROL_TC_QUERY:
5752                                 if (r->domain) {
5753                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5754                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5755                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5756                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5757                                 }
5758                         break;
5759
5760                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5761                                 if (r->domain) {
5762                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5763                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5764                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5765                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5766                                 }
5767                         break;
5768
5769                         case NETLOGON_CONTROL_SET_DBFLAG:
5770                         break;
5771
5772                         default:
5773                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5774                 }
5775         }
5776         return NDR_ERR_SUCCESS;
5777 }
5778
5779 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
5780 {
5781         int level;
5782         uint32_t _level;
5783         TALLOC_CTX *_mem_save_domain_0;
5784         level = ndr_pull_get_switch_value(ndr, r);
5785         if (ndr_flags & NDR_SCALARS) {
5786                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5787                 if (_level != level) {
5788                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5789                 }
5790                 switch (level) {
5791                         case NETLOGON_CONTROL_REDISCOVER: {
5792                                 uint32_t _ptr_domain;
5793                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5794                                 if (_ptr_domain) {
5795                                         NDR_PULL_ALLOC(ndr, r->domain);
5796                                 } else {
5797                                         r->domain = NULL;
5798                                 }
5799                         break; }
5800
5801                         case NETLOGON_CONTROL_TC_QUERY: {
5802                                 uint32_t _ptr_domain;
5803                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5804                                 if (_ptr_domain) {
5805                                         NDR_PULL_ALLOC(ndr, r->domain);
5806                                 } else {
5807                                         r->domain = NULL;
5808                                 }
5809                         break; }
5810
5811                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5812                                 uint32_t _ptr_domain;
5813                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5814                                 if (_ptr_domain) {
5815                                         NDR_PULL_ALLOC(ndr, r->domain);
5816                                 } else {
5817                                         r->domain = NULL;
5818                                 }
5819                         break; }
5820
5821                         case NETLOGON_CONTROL_SET_DBFLAG: {
5822                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
5823                         break; }
5824
5825                         default:
5826                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5827                 }
5828         }
5829         if (ndr_flags & NDR_BUFFERS) {
5830                 switch (level) {
5831                         case NETLOGON_CONTROL_REDISCOVER:
5832                                 if (r->domain) {
5833                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5834                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5835                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5836                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5837                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5838                                                 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));
5839                                         }
5840                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5841                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5842                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5843                                 }
5844                         break;
5845
5846                         case NETLOGON_CONTROL_TC_QUERY:
5847                                 if (r->domain) {
5848                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5849                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5850                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5851                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5852                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5853                                                 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));
5854                                         }
5855                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5856                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5857                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5858                                 }
5859                         break;
5860
5861                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5862                                 if (r->domain) {
5863                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5864                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5865                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5866                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5867                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5868                                                 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));
5869                                         }
5870                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5871                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5872                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5873                                 }
5874                         break;
5875
5876                         case NETLOGON_CONTROL_SET_DBFLAG:
5877                         break;
5878
5879                         default:
5880                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5881                 }
5882         }
5883         return NDR_ERR_SUCCESS;
5884 }
5885
5886 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
5887 {
5888         int level;
5889         level = ndr_print_get_switch_value(ndr, r);
5890         ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
5891         switch (level) {
5892                 case NETLOGON_CONTROL_REDISCOVER:
5893                         ndr_print_ptr(ndr, "domain", r->domain);
5894                         ndr->depth++;
5895                         if (r->domain) {
5896                                 ndr_print_string(ndr, "domain", r->domain);
5897                         }
5898                         ndr->depth--;
5899                 break;
5900
5901                 case NETLOGON_CONTROL_TC_QUERY:
5902                         ndr_print_ptr(ndr, "domain", r->domain);
5903                         ndr->depth++;
5904                         if (r->domain) {
5905                                 ndr_print_string(ndr, "domain", r->domain);
5906                         }
5907                         ndr->depth--;
5908                 break;
5909
5910                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5911                         ndr_print_ptr(ndr, "domain", r->domain);
5912                         ndr->depth++;
5913                         if (r->domain) {
5914                                 ndr_print_string(ndr, "domain", r->domain);
5915                         }
5916                         ndr->depth--;
5917                 break;
5918
5919                 case NETLOGON_CONTROL_SET_DBFLAG:
5920                         ndr_print_uint32(ndr, "debug_level", r->debug_level);
5921                 break;
5922
5923                 default:
5924                         ndr_print_bad_level(ndr, name, level);
5925         }
5926 }
5927
5928 static enum ndr_err_code ndr_push_netr_NegotiateFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5929 {
5930         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5931         return NDR_ERR_SUCCESS;
5932 }
5933
5934 static enum ndr_err_code ndr_pull_netr_NegotiateFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5935 {
5936         uint32_t v;
5937         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5938         *r = v;
5939         return NDR_ERR_SUCCESS;
5940 }
5941
5942 _PUBLIC_ void ndr_print_netr_NegotiateFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5943 {
5944         ndr_print_uint32(ndr, name, r);
5945         ndr->depth++;
5946         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT, r);
5947         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL, r);
5948         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR, r);
5949         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT, r);
5950         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC, r);
5951         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL, r);
5952         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS, r);
5953         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO, r);
5954         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL, r);
5955         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC, r);
5956         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH, r);
5957         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC, r);
5958         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL, r);
5959         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL, r);
5960         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_128BIT", NETLOGON_NEG_128BIT, r);
5961         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS, r);
5962         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS, r);
5963         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2, r);
5964         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO, r);
5965         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS, r);
5966         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION, r);
5967         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH, r);
5968         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS, r);
5969         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SCHANNEL", NETLOGON_NEG_SCHANNEL, r);
5970         ndr->depth--;
5971 }
5972
5973 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
5974 {
5975         if (ndr_flags & NDR_SCALARS) {
5976                 NDR_CHECK(ndr_push_align(ndr, 4));
5977                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5978                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
5979         }
5980         if (ndr_flags & NDR_BUFFERS) {
5981                 if (r->data) {
5982                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5983                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
5984                 }
5985         }
5986         return NDR_ERR_SUCCESS;
5987 }
5988
5989 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
5990 {
5991         uint32_t _ptr_data;
5992         TALLOC_CTX *_mem_save_data_0;
5993         if (ndr_flags & NDR_SCALARS) {
5994                 NDR_CHECK(ndr_pull_align(ndr, 4));
5995                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
5996                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
5997                 if (_ptr_data) {
5998                         NDR_PULL_ALLOC(ndr, r->data);
5999                 } else {
6000                         r->data = NULL;
6001                 }
6002         }
6003         if (ndr_flags & NDR_BUFFERS) {
6004                 if (r->data) {
6005                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6006                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6007                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6008                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6009                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
6010                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6011                 }
6012                 if (r->data) {
6013                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
6014                 }
6015         }
6016         return NDR_ERR_SUCCESS;
6017 }
6018
6019 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
6020 {
6021         ndr_print_struct(ndr, name, "netr_Blob");
6022         ndr->depth++;
6023         ndr_print_uint32(ndr, "length", r->length);
6024         ndr_print_ptr(ndr, "data", r->data);
6025         ndr->depth++;
6026         if (r->data) {
6027                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6028         }
6029         ndr->depth--;
6030         ndr->depth--;
6031 }
6032
6033 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6034 {
6035         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6036         return NDR_ERR_SUCCESS;
6037 }
6038
6039 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6040 {
6041         uint32_t v;
6042         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6043         *r = v;
6044         return NDR_ERR_SUCCESS;
6045 }
6046
6047 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6048 {
6049         ndr_print_uint32(ndr, name, r);
6050         ndr->depth++;
6051         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6052         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6053         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6054         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6055         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6056         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6057         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6058         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6059         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6060         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6061         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6062         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6063         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6064         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6065         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6066         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
6067         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
6068         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6069         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6070         ndr->depth--;
6071 }
6072
6073 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6074 {
6075         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6076         return NDR_ERR_SUCCESS;
6077 }
6078
6079 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6080 {
6081         uint32_t v;
6082         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6083         *r = v;
6084         return NDR_ERR_SUCCESS;
6085 }
6086
6087 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6088 {
6089         const char *val = NULL;
6090
6091         switch (r) {
6092                 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6093                 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6094         }
6095         ndr_print_enum(ndr, name, "ENUM", val, r);
6096 }
6097
6098 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6099 {
6100         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6101         return NDR_ERR_SUCCESS;
6102 }
6103
6104 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6105 {
6106         uint32_t v;
6107         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6108         *r = v;
6109         return NDR_ERR_SUCCESS;
6110 }
6111
6112 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6113 {
6114         ndr_print_uint32(ndr, name, r);
6115         ndr->depth++;
6116         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6117         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6118         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6119         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6120         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6121         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6122         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6123         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6124         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6125         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6126         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
6127         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
6128         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6129         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6130         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6131         ndr->depth--;
6132 }
6133
6134 _PUBLIC_ enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6135 {
6136         if (ndr_flags & NDR_SCALARS) {
6137                 NDR_CHECK(ndr_push_align(ndr, 4));
6138                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6139                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6140                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6141                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6142                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6143                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6144                 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6145                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6146                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6147         }
6148         if (ndr_flags & NDR_BUFFERS) {
6149                 if (r->dc_unc) {
6150                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6151                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6152                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6153                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6154                 }
6155                 if (r->dc_address) {
6156                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6157                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6158                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6159                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6160                 }
6161                 if (r->domain_name) {
6162                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6163                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6164                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6165                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6166                 }
6167                 if (r->forest_name) {
6168                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6169                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6170                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6171                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6172                 }
6173                 if (r->dc_site_name) {
6174                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6175                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6176                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6177                         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));
6178                 }
6179                 if (r->client_site_name) {
6180                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6181                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6182                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6183                         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));
6184                 }
6185         }
6186         return NDR_ERR_SUCCESS;
6187 }
6188
6189 _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6190 {
6191         uint32_t _ptr_dc_unc;
6192         TALLOC_CTX *_mem_save_dc_unc_0;
6193         uint32_t _ptr_dc_address;
6194         TALLOC_CTX *_mem_save_dc_address_0;
6195         uint32_t _ptr_domain_name;
6196         TALLOC_CTX *_mem_save_domain_name_0;
6197         uint32_t _ptr_forest_name;
6198         TALLOC_CTX *_mem_save_forest_name_0;
6199         uint32_t _ptr_dc_site_name;
6200         TALLOC_CTX *_mem_save_dc_site_name_0;
6201         uint32_t _ptr_client_site_name;
6202         TALLOC_CTX *_mem_save_client_site_name_0;
6203         if (ndr_flags & NDR_SCALARS) {
6204                 NDR_CHECK(ndr_pull_align(ndr, 4));
6205                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6206                 if (_ptr_dc_unc) {
6207                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6208                 } else {
6209                         r->dc_unc = NULL;
6210                 }
6211                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6212                 if (_ptr_dc_address) {
6213                         NDR_PULL_ALLOC(ndr, r->dc_address);
6214                 } else {
6215                         r->dc_address = NULL;
6216                 }
6217                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6218                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6219                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6220                 if (_ptr_domain_name) {
6221                         NDR_PULL_ALLOC(ndr, r->domain_name);
6222                 } else {
6223                         r->domain_name = NULL;
6224                 }
6225                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6226                 if (_ptr_forest_name) {
6227                         NDR_PULL_ALLOC(ndr, r->forest_name);
6228                 } else {
6229                         r->forest_name = NULL;
6230                 }
6231                 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6232                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6233                 if (_ptr_dc_site_name) {
6234                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6235                 } else {
6236                         r->dc_site_name = NULL;
6237                 }
6238                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6239                 if (_ptr_client_site_name) {
6240                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6241                 } else {
6242                         r->client_site_name = NULL;
6243                 }
6244         }
6245         if (ndr_flags & NDR_BUFFERS) {
6246                 if (r->dc_unc) {
6247                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6248                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6249                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6250                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6251                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6252                                 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));
6253                         }
6254                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6255                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6256                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6257                 }
6258                 if (r->dc_address) {
6259                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6260                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6261                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6262                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6263                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6264                                 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));
6265                         }
6266                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6267                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6268                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6269                 }
6270                 if (r->domain_name) {
6271                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6272                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6273                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6274                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6275                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6276                                 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));
6277                         }
6278                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6279                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6280                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6281                 }
6282                 if (r->forest_name) {
6283                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6284                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6285                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
6286                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
6287                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
6288                                 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));
6289                         }
6290                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
6291                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
6292                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
6293                 }
6294                 if (r->dc_site_name) {
6295                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6296                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
6297                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
6298                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
6299                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
6300                                 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));
6301                         }
6302                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
6303                         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));
6304                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
6305                 }
6306                 if (r->client_site_name) {
6307                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6308                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
6309                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
6310                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
6311                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
6312                                 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));
6313                         }
6314                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
6315                         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));
6316                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
6317                 }
6318         }
6319         return NDR_ERR_SUCCESS;
6320 }
6321
6322 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
6323 {
6324         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
6325         ndr->depth++;
6326         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
6327         ndr->depth++;
6328         if (r->dc_unc) {
6329                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
6330         }
6331         ndr->depth--;
6332         ndr_print_ptr(ndr, "dc_address", r->dc_address);
6333         ndr->depth++;
6334         if (r->dc_address) {
6335                 ndr_print_string(ndr, "dc_address", r->dc_address);
6336         }
6337         ndr->depth--;
6338         ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
6339         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
6340         ndr_print_ptr(ndr, "domain_name", r->domain_name);
6341         ndr->depth++;
6342         if (r->domain_name) {
6343                 ndr_print_string(ndr, "domain_name", r->domain_name);
6344         }
6345         ndr->depth--;
6346         ndr_print_ptr(ndr, "forest_name", r->forest_name);
6347         ndr->depth++;
6348         if (r->forest_name) {
6349                 ndr_print_string(ndr, "forest_name", r->forest_name);
6350         }
6351         ndr->depth--;
6352         ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
6353         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
6354         ndr->depth++;
6355         if (r->dc_site_name) {
6356                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
6357         }
6358         ndr->depth--;
6359         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
6360         ndr->depth++;
6361         if (r->client_site_name) {
6362                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
6363         }
6364         ndr->depth--;
6365         ndr->depth--;
6366 }
6367
6368 static enum ndr_err_code ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r)
6369 {
6370         uint32_t cntr_data_1;
6371         {
6372                 uint32_t _flags_save_STRUCT = ndr->flags;
6373                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6374                 if (ndr_flags & NDR_SCALARS) {
6375                         NDR_CHECK(ndr_push_align(ndr, 4));
6376                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
6377                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
6378                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6379                 }
6380                 if (ndr_flags & NDR_BUFFERS) {
6381                         if (r->data) {
6382                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
6383                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6384                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
6385                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6386                                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1]));
6387                                 }
6388                         }
6389                 }
6390                 ndr->flags = _flags_save_STRUCT;
6391         }
6392         return NDR_ERR_SUCCESS;
6393 }
6394
6395 static enum ndr_err_code ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r)
6396 {
6397         uint32_t _ptr_data;
6398         uint32_t cntr_data_1;
6399         TALLOC_CTX *_mem_save_data_0;
6400         TALLOC_CTX *_mem_save_data_1;
6401         {
6402                 uint32_t _flags_save_STRUCT = ndr->flags;
6403                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6404                 if (ndr_flags & NDR_SCALARS) {
6405                         NDR_CHECK(ndr_pull_align(ndr, 4));
6406                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
6407                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
6408                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6409                         if (_ptr_data) {
6410                                 NDR_PULL_ALLOC(ndr, r->data);
6411                         } else {
6412                                 r->data = NULL;
6413                         }
6414                 }
6415                 if (ndr_flags & NDR_BUFFERS) {
6416                         if (r->data) {
6417                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6418                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6419                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6420                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
6421                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
6422                                         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));
6423                                 }
6424                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6425                                 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
6426                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6427                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6428                                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
6429                                 }
6430                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
6431                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6432                         }
6433                         if (r->data) {
6434                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2));
6435                         }
6436                         if (r->data) {
6437                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2));
6438                         }
6439                 }
6440                 ndr->flags = _flags_save_STRUCT;
6441         }
6442         return NDR_ERR_SUCCESS;
6443 }
6444
6445 _PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r)
6446 {
6447         uint32_t cntr_data_1;
6448         ndr_print_struct(ndr, name, "netr_BinaryString");
6449         {
6450                 uint32_t _flags_save_STRUCT = ndr->flags;
6451                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6452                 ndr->depth++;
6453                 ndr_print_uint16(ndr, "length", r->length);
6454                 ndr_print_uint16(ndr, "size", r->size);
6455                 ndr_print_ptr(ndr, "data", r->data);
6456                 ndr->depth++;
6457                 if (r->data) {
6458                         ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)r->length / 2);
6459                         ndr->depth++;
6460                         for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) {
6461                                 char *idx_1=NULL;
6462                                 if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
6463                                         ndr_print_uint16(ndr, "data", r->data[cntr_data_1]);
6464                                         free(idx_1);
6465                                 }
6466                         }
6467                         ndr->depth--;
6468                 }
6469                 ndr->depth--;
6470                 ndr->depth--;
6471                 ndr->flags = _flags_save_STRUCT;
6472         }
6473 }
6474
6475 static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
6476 {
6477         uint32_t cntr_unknown7_0;
6478         if (ndr_flags & NDR_SCALARS) {
6479                 NDR_CHECK(ndr_push_align(ndr, 4));
6480                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6481                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
6482                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
6483                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
6484                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
6485                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
6486                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
6487                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6488                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
6489                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6490                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6491                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6492                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
6493                 }
6494         }
6495         if (ndr_flags & NDR_BUFFERS) {
6496                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6497                 if (r->workstation_domain) {
6498                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6499                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6500                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6501                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6502                 }
6503                 if (r->workstation_site) {
6504                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6505                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6506                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6507                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6508                 }
6509                 if (r->unknown1) {
6510                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6511                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6512                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6513                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6514                 }
6515                 if (r->unknown2) {
6516                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6517                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6518                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6519                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6520                 }
6521                 if (r->unknown3) {
6522                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6523                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6524                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6525                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6526                 }
6527                 if (r->unknown4) {
6528                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6529                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6530                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6531                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6532                 }
6533                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6534                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
6535                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6536                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6537         }
6538         return NDR_ERR_SUCCESS;
6539 }
6540
6541 static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
6542 {
6543         uint32_t _ptr_workstation_domain;
6544         TALLOC_CTX *_mem_save_workstation_domain_0;
6545         uint32_t _ptr_workstation_site;
6546         TALLOC_CTX *_mem_save_workstation_site_0;
6547         uint32_t _ptr_unknown1;
6548         TALLOC_CTX *_mem_save_unknown1_0;
6549         uint32_t _ptr_unknown2;
6550         TALLOC_CTX *_mem_save_unknown2_0;
6551         uint32_t _ptr_unknown3;
6552         TALLOC_CTX *_mem_save_unknown3_0;
6553         uint32_t _ptr_unknown4;
6554         TALLOC_CTX *_mem_save_unknown4_0;
6555         uint32_t cntr_unknown7_0;
6556         if (ndr_flags & NDR_SCALARS) {
6557                 NDR_CHECK(ndr_pull_align(ndr, 4));
6558                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6559                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
6560                 if (_ptr_workstation_domain) {
6561                         NDR_PULL_ALLOC(ndr, r->workstation_domain);
6562                 } else {
6563                         r->workstation_domain = NULL;
6564                 }
6565                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
6566                 if (_ptr_workstation_site) {
6567                         NDR_PULL_ALLOC(ndr, r->workstation_site);
6568                 } else {
6569                         r->workstation_site = NULL;
6570                 }
6571                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
6572                 if (_ptr_unknown1) {
6573                         NDR_PULL_ALLOC(ndr, r->unknown1);
6574                 } else {
6575                         r->unknown1 = NULL;
6576                 }
6577                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
6578                 if (_ptr_unknown2) {
6579                         NDR_PULL_ALLOC(ndr, r->unknown2);
6580                 } else {
6581                         r->unknown2 = NULL;
6582                 }
6583                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
6584                 if (_ptr_unknown3) {
6585                         NDR_PULL_ALLOC(ndr, r->unknown3);
6586                 } else {
6587                         r->unknown3 = NULL;
6588                 }
6589                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
6590                 if (_ptr_unknown4) {
6591                         NDR_PULL_ALLOC(ndr, r->unknown4);
6592                 } else {
6593                         r->unknown4 = NULL;
6594                 }
6595                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6596                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
6597                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6598                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6599                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6600                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
6601                 }
6602         }
6603         if (ndr_flags & NDR_BUFFERS) {
6604                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6605                 if (r->workstation_domain) {
6606                         _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6607                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
6608                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
6609                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
6610                         if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
6611                                 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));
6612                         }
6613                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
6614                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
6615                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
6616                 }
6617                 if (r->workstation_site) {
6618                         _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
6619                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
6620                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
6621                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
6622                         if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
6623                                 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));
6624                         }
6625                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
6626                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
6627                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
6628                 }
6629                 if (r->unknown1) {
6630                         _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6631                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
6632                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
6633                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
6634                         if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
6635                                 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));
6636                         }
6637                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
6638                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
6639                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
6640                 }
6641                 if (r->unknown2) {
6642                         _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6643                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
6644                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
6645                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
6646                         if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
6647                                 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));
6648                         }
6649                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
6650                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
6651                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
6652                 }
6653                 if (r->unknown3) {
6654                         _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6655                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
6656                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
6657                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
6658                         if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
6659                                 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));
6660                         }
6661                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
6662                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
6663                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
6664                 }
6665                 if (r->unknown4) {
6666                         _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6667                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
6668                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
6669                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
6670                         if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
6671                                 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));
6672                         }
6673                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
6674                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
6675                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
6676                 }
6677                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6678                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
6679                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6680                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6681         }
6682         return NDR_ERR_SUCCESS;
6683 }
6684
6685 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
6686 {
6687         uint32_t cntr_unknown7_0;
6688         ndr_print_struct(ndr, name, "netr_DomainQuery1");
6689         ndr->depth++;
6690         ndr_print_netr_Blob(ndr, "blob", &r->blob);
6691         ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
6692         ndr->depth++;
6693         if (r->workstation_domain) {
6694                 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
6695         }
6696         ndr->depth--;
6697         ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
6698         ndr->depth++;
6699         if (r->workstation_site) {
6700                 ndr_print_string(ndr, "workstation_site", r->workstation_site);
6701         }
6702         ndr->depth--;
6703         ndr_print_ptr(ndr, "unknown1", r->unknown1);
6704         ndr->depth++;
6705         if (r->unknown1) {
6706                 ndr_print_string(ndr, "unknown1", r->unknown1);
6707         }
6708         ndr->depth--;
6709         ndr_print_ptr(ndr, "unknown2", r->unknown2);
6710         ndr->depth++;
6711         if (r->unknown2) {
6712                 ndr_print_string(ndr, "unknown2", r->unknown2);
6713         }
6714         ndr->depth--;
6715         ndr_print_ptr(ndr, "unknown3", r->unknown3);
6716         ndr->depth++;
6717         if (r->unknown3) {
6718                 ndr_print_string(ndr, "unknown3", r->unknown3);
6719         }
6720         ndr->depth--;
6721         ndr_print_ptr(ndr, "unknown4", r->unknown4);
6722         ndr->depth++;
6723         if (r->unknown4) {
6724                 ndr_print_string(ndr, "unknown4", r->unknown4);
6725         }
6726         ndr->depth--;
6727         ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2);
6728         ndr_print_lsa_String(ndr, "product", &r->product);
6729         ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
6730         ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
6731         ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", (int)4);
6732         ndr->depth++;
6733         for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
6734                 char *idx_0=NULL;
6735                 if (asprintf(&idx_0, "[%d]", cntr_unknown7_0) != -1) {
6736                         ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
6737                         free(idx_0);
6738                 }
6739         }
6740         ndr->depth--;
6741         ndr->depth--;
6742 }
6743
6744 static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
6745 {
6746         if (ndr_flags & NDR_SCALARS) {
6747                 int level = ndr_push_get_switch_value(ndr, r);
6748                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6749                 switch (level) {
6750                         case 1: {
6751                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6752                         break; }
6753
6754                         case 2: {
6755                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6756                         break; }
6757
6758                         default:
6759                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6760                 }
6761         }
6762         if (ndr_flags & NDR_BUFFERS) {
6763                 int level = ndr_push_get_switch_value(ndr, r);
6764                 switch (level) {
6765                         case 1:
6766                                 if (r->query1) {
6767                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6768                                 }
6769                         break;
6770
6771                         case 2:
6772                                 if (r->query1) {
6773                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6774                                 }
6775                         break;
6776
6777                         default:
6778                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6779                 }
6780         }
6781         return NDR_ERR_SUCCESS;
6782 }
6783
6784 static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
6785 {
6786         int level;
6787         uint32_t _level;
6788         TALLOC_CTX *_mem_save_query1_0;
6789         level = ndr_pull_get_switch_value(ndr, r);
6790         if (ndr_flags & NDR_SCALARS) {
6791                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6792                 if (_level != level) {
6793                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6794                 }
6795                 switch (level) {
6796                         case 1: {
6797                                 uint32_t _ptr_query1;
6798                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6799                                 if (_ptr_query1) {
6800                                         NDR_PULL_ALLOC(ndr, r->query1);
6801                                 } else {
6802                                         r->query1 = NULL;
6803                                 }
6804                         break; }
6805
6806                         case 2: {
6807                                 uint32_t _ptr_query1;
6808                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6809                                 if (_ptr_query1) {
6810                                         NDR_PULL_ALLOC(ndr, r->query1);
6811                                 } else {
6812                                         r->query1 = NULL;
6813                                 }
6814                         break; }
6815
6816                         default:
6817                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6818                 }
6819         }
6820         if (ndr_flags & NDR_BUFFERS) {
6821                 switch (level) {
6822                         case 1:
6823                                 if (r->query1) {
6824                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6825                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6826                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6827                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6828                                 }
6829                         break;
6830
6831                         case 2:
6832                                 if (r->query1) {
6833                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6834                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6835                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6836                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6837                                 }
6838                         break;
6839
6840                         default:
6841                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6842                 }
6843         }
6844         return NDR_ERR_SUCCESS;
6845 }
6846
6847 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
6848 {
6849         int level;
6850         level = ndr_print_get_switch_value(ndr, r);
6851         ndr_print_union(ndr, name, level, "netr_DomainQuery");
6852         switch (level) {
6853                 case 1:
6854                         ndr_print_ptr(ndr, "query1", r->query1);
6855                         ndr->depth++;
6856                         if (r->query1) {
6857                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6858                         }
6859                         ndr->depth--;
6860                 break;
6861
6862                 case 2:
6863                         ndr_print_ptr(ndr, "query1", r->query1);
6864                         ndr->depth++;
6865                         if (r->query1) {
6866                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6867                         }
6868                         ndr->depth--;
6869                 break;
6870
6871                 default:
6872                         ndr_print_bad_level(ndr, name, level);
6873         }
6874 }
6875
6876 static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
6877 {
6878         uint32_t cntr_unknown1_0;
6879         uint32_t cntr_unknown_0;
6880         if (ndr_flags & NDR_SCALARS) {
6881                 NDR_CHECK(ndr_push_align(ndr, 4));
6882                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6883                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6884                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
6885                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
6886                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
6887                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6888                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6889                 }
6890                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6891                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6892                 }
6893         }
6894         if (ndr_flags & NDR_BUFFERS) {
6895                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6896                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6897                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6898                 if (r->sid) {
6899                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6900                 }
6901                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6902                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6903                 }
6904         }
6905         return NDR_ERR_SUCCESS;
6906 }
6907
6908 static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
6909 {
6910         uint32_t _ptr_sid;
6911         TALLOC_CTX *_mem_save_sid_0;
6912         uint32_t cntr_unknown1_0;
6913         uint32_t cntr_unknown_0;
6914         if (ndr_flags & NDR_SCALARS) {
6915                 NDR_CHECK(ndr_pull_align(ndr, 4));
6916                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6917                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6918                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
6919                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
6920                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
6921                 if (_ptr_sid) {
6922                         NDR_PULL_ALLOC(ndr, r->sid);
6923                 } else {
6924                         r->sid = NULL;
6925                 }
6926                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6927                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6928                 }
6929                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6930                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
6931                 }
6932         }
6933         if (ndr_flags & NDR_BUFFERS) {
6934                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6935                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6936                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6937                 if (r->sid) {
6938                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6939                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
6940                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6941                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
6942                 }
6943                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6944                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6945                 }
6946         }
6947         return NDR_ERR_SUCCESS;
6948 }
6949
6950 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
6951 {
6952         uint32_t cntr_unknown1_0;
6953         uint32_t cntr_unknown_0;
6954         ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
6955         ndr->depth++;
6956         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
6957         ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
6958         ndr_print_lsa_String(ndr, "forest", &r->forest);
6959         ndr_print_GUID(ndr, "guid", &r->guid);
6960         ndr_print_ptr(ndr, "sid", r->sid);
6961         ndr->depth++;
6962         if (r->sid) {
6963                 ndr_print_dom_sid2(ndr, "sid", r->sid);
6964         }
6965         ndr->depth--;
6966         ndr->print(ndr, "%s: ARRAY(%d)", "unknown1", (int)4);
6967         ndr->depth++;
6968         for (cntr_unknown1_0=0;cntr_unknown1_0<4;cntr_unknown1_0++) {
6969                 char *idx_0=NULL;
6970                 if (asprintf(&idx_0, "[%d]", cntr_unknown1_0) != -1) {
6971                         ndr_print_netr_BinaryString(ndr, "unknown1", &r->unknown1[cntr_unknown1_0]);
6972                         free(idx_0);
6973                 }
6974         }
6975         ndr->depth--;
6976         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)4);
6977         ndr->depth++;
6978         for (cntr_unknown_0=0;cntr_unknown_0<4;cntr_unknown_0++) {
6979                 char *idx_0=NULL;
6980                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
6981                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
6982                         free(idx_0);
6983                 }
6984         }
6985         ndr->depth--;
6986         ndr->depth--;
6987 }
6988
6989 static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
6990 {
6991         uint32_t cntr_trusts_1;
6992         uint32_t cntr_unknown_0;
6993         if (ndr_flags & NDR_SCALARS) {
6994                 NDR_CHECK(ndr_push_align(ndr, 4));
6995                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
6996                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6997                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
6998                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
6999                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
7000                 }
7001         }
7002         if (ndr_flags & NDR_BUFFERS) {
7003                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7004                 if (r->trusts) {
7005                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7006                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7007                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7008                         }
7009                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7010                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7011                         }
7012                 }
7013         }
7014         return NDR_ERR_SUCCESS;
7015 }
7016
7017 static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
7018 {
7019         uint32_t _ptr_trusts;
7020         uint32_t cntr_trusts_1;
7021         TALLOC_CTX *_mem_save_trusts_0;
7022         TALLOC_CTX *_mem_save_trusts_1;
7023         uint32_t cntr_unknown_0;
7024         if (ndr_flags & NDR_SCALARS) {
7025                 NDR_CHECK(ndr_pull_align(ndr, 4));
7026                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7027                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
7028                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
7029                 if (_ptr_trusts) {
7030                         NDR_PULL_ALLOC(ndr, r->trusts);
7031                 } else {
7032                         r->trusts = NULL;
7033                 }
7034                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
7035                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
7036                 }
7037         }
7038         if (ndr_flags & NDR_BUFFERS) {
7039                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7040                 if (r->trusts) {
7041                         _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
7042                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7043                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
7044                         NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
7045                         _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
7046                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7047                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7048                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7049                         }
7050                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7051                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7052                         }
7053                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
7054                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
7055                 }
7056                 if (r->trusts) {
7057                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
7058                 }
7059         }
7060         return NDR_ERR_SUCCESS;
7061 }
7062
7063 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
7064 {
7065         uint32_t cntr_trusts_1;
7066         uint32_t cntr_unknown_0;
7067         ndr_print_struct(ndr, name, "netr_DomainInfo1");
7068         ndr->depth++;
7069         ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
7070         ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
7071         ndr_print_ptr(ndr, "trusts", r->trusts);
7072         ndr->depth++;
7073         if (r->trusts) {
7074                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", (int)r->num_trusts);
7075                 ndr->depth++;
7076                 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
7077                         char *idx_1=NULL;
7078                         if (asprintf(&idx_1, "[%d]", cntr_trusts_1) != -1) {
7079                                 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
7080                                 free(idx_1);
7081                         }
7082                 }
7083                 ndr->depth--;
7084         }
7085         ndr->depth--;
7086         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)14);
7087         ndr->depth++;
7088         for (cntr_unknown_0=0;cntr_unknown_0<14;cntr_unknown_0++) {
7089                 char *idx_0=NULL;
7090                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
7091                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
7092                         free(idx_0);
7093                 }
7094         }
7095         ndr->depth--;
7096         ndr->depth--;
7097 }
7098
7099 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
7100 {
7101         if (ndr_flags & NDR_SCALARS) {
7102                 int level = ndr_push_get_switch_value(ndr, r);
7103                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7104                 switch (level) {
7105                         case 1: {
7106                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7107                         break; }
7108
7109                         case 2: {
7110                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7111                         break; }
7112
7113                         default:
7114                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7115                 }
7116         }
7117         if (ndr_flags & NDR_BUFFERS) {
7118                 int level = ndr_push_get_switch_value(ndr, r);
7119                 switch (level) {
7120                         case 1:
7121                                 if (r->info1) {
7122                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7123                                 }
7124                         break;
7125
7126                         case 2:
7127                                 if (r->info1) {
7128                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7129                                 }
7130                         break;
7131
7132                         default:
7133                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7134                 }
7135         }
7136         return NDR_ERR_SUCCESS;
7137 }
7138
7139 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
7140 {
7141         int level;
7142         uint32_t _level;
7143         TALLOC_CTX *_mem_save_info1_0;
7144         level = ndr_pull_get_switch_value(ndr, r);
7145         if (ndr_flags & NDR_SCALARS) {
7146                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7147                 if (_level != level) {
7148                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7149                 }
7150                 switch (level) {
7151                         case 1: {
7152                                 uint32_t _ptr_info1;
7153                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7154                                 if (_ptr_info1) {
7155                                         NDR_PULL_ALLOC(ndr, r->info1);
7156                                 } else {
7157                                         r->info1 = NULL;
7158                                 }
7159                         break; }
7160
7161                         case 2: {
7162                                 uint32_t _ptr_info1;
7163                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7164                                 if (_ptr_info1) {
7165                                         NDR_PULL_ALLOC(ndr, r->info1);
7166                                 } else {
7167                                         r->info1 = NULL;
7168                                 }
7169                         break; }
7170
7171                         default:
7172                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7173                 }
7174         }
7175         if (ndr_flags & NDR_BUFFERS) {
7176                 switch (level) {
7177                         case 1:
7178                                 if (r->info1) {
7179                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7180                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7181                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7182                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7183                                 }
7184                         break;
7185
7186                         case 2:
7187                                 if (r->info1) {
7188                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7189                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7190                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7191                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7192                                 }
7193                         break;
7194
7195                         default:
7196                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7197                 }
7198         }
7199         return NDR_ERR_SUCCESS;
7200 }
7201
7202 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
7203 {
7204         int level;
7205         level = ndr_print_get_switch_value(ndr, r);
7206         ndr_print_union(ndr, name, level, "netr_DomainInfo");
7207         switch (level) {
7208                 case 1:
7209                         ndr_print_ptr(ndr, "info1", r->info1);
7210                         ndr->depth++;
7211                         if (r->info1) {
7212                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7213                         }
7214                         ndr->depth--;
7215                 break;
7216
7217                 case 2:
7218                         ndr_print_ptr(ndr, "info1", r->info1);
7219                         ndr->depth++;
7220                         if (r->info1) {
7221                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7222                         }
7223                         ndr->depth--;
7224                 break;
7225
7226                 default:
7227                         ndr_print_bad_level(ndr, name, level);
7228         }
7229 }
7230
7231 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
7232 {
7233         {
7234                 uint32_t _flags_save_STRUCT = ndr->flags;
7235                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7236                 if (ndr_flags & NDR_SCALARS) {
7237                         NDR_CHECK(ndr_push_align(ndr, 4));
7238                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7239                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
7240                 }
7241                 if (ndr_flags & NDR_BUFFERS) {
7242                 }
7243                 ndr->flags = _flags_save_STRUCT;
7244         }
7245         return NDR_ERR_SUCCESS;
7246 }
7247
7248 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
7249 {
7250         {
7251                 uint32_t _flags_save_STRUCT = ndr->flags;
7252                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7253                 if (ndr_flags & NDR_SCALARS) {
7254                         NDR_CHECK(ndr_pull_align(ndr, 4));
7255                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7256                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7257                 }
7258                 if (ndr_flags & NDR_BUFFERS) {
7259                 }
7260                 ndr->flags = _flags_save_STRUCT;
7261         }
7262         return NDR_ERR_SUCCESS;
7263 }
7264
7265 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
7266 {
7267         ndr_print_struct(ndr, name, "netr_CryptPassword");
7268         {
7269                 uint32_t _flags_save_STRUCT = ndr->flags;
7270                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7271                 ndr->depth++;
7272                 ndr_print_array_uint8(ndr, "data", r->data, 512);
7273                 ndr_print_uint32(ndr, "length", r->length);
7274                 ndr->depth--;
7275                 ndr->flags = _flags_save_STRUCT;
7276         }
7277 }
7278
7279 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
7280 {
7281         uint32_t cntr_sitename_1;
7282         if (ndr_flags & NDR_SCALARS) {
7283                 NDR_CHECK(ndr_push_align(ndr, 4));
7284                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7285                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7286         }
7287         if (ndr_flags & NDR_BUFFERS) {
7288                 if (r->sitename) {
7289                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7290                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7291                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7292                         }
7293                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7294                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7295                         }
7296                 }
7297         }
7298         return NDR_ERR_SUCCESS;
7299 }
7300
7301 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
7302 {
7303         uint32_t _ptr_sitename;
7304         uint32_t cntr_sitename_1;
7305         TALLOC_CTX *_mem_save_sitename_0;
7306         TALLOC_CTX *_mem_save_sitename_1;
7307         if (ndr_flags & NDR_SCALARS) {
7308                 NDR_CHECK(ndr_pull_align(ndr, 4));
7309                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7310                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7311                 if (_ptr_sitename) {
7312                         NDR_PULL_ALLOC(ndr, r->sitename);
7313                 } else {
7314                         r->sitename = NULL;
7315                 }
7316         }
7317         if (ndr_flags & NDR_BUFFERS) {
7318                 if (r->sitename) {
7319                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7320                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7321                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7322                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7323                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7324                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7325                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7326                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7327                         }
7328                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7329                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7330                         }
7331                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7332                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7333                 }
7334                 if (r->sitename) {
7335                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7336                 }
7337         }
7338         return NDR_ERR_SUCCESS;
7339 }
7340
7341 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
7342 {
7343         uint32_t cntr_sitename_1;
7344         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
7345         ndr->depth++;
7346         ndr_print_uint32(ndr, "count", r->count);
7347         ndr_print_ptr(ndr, "sitename", r->sitename);
7348         ndr->depth++;
7349         if (r->sitename) {
7350                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
7351                 ndr->depth++;
7352                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7353                         char *idx_1=NULL;
7354                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
7355                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7356                                 free(idx_1);
7357                         }
7358                 }
7359                 ndr->depth--;
7360         }
7361         ndr->depth--;
7362         ndr->depth--;
7363 }
7364
7365 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
7366 {
7367         if (ndr_flags & NDR_SCALARS) {
7368                 NDR_CHECK(ndr_push_align(ndr, 4));
7369                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
7370                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7371         }
7372         if (ndr_flags & NDR_BUFFERS) {
7373                 if (r->buffer) {
7374                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7375                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
7376                 }
7377         }
7378         return NDR_ERR_SUCCESS;
7379 }
7380
7381 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
7382 {
7383         uint32_t _ptr_buffer;
7384         TALLOC_CTX *_mem_save_buffer_0;
7385         if (ndr_flags & NDR_SCALARS) {
7386                 NDR_CHECK(ndr_pull_align(ndr, 4));
7387                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
7388                 if (_ptr_buffer) {
7389                         NDR_PULL_ALLOC(ndr, r->buffer);
7390                 } else {
7391                         r->buffer = NULL;
7392                 }
7393                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7394         }
7395         if (ndr_flags & NDR_BUFFERS) {
7396                 if (r->buffer) {
7397                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
7398                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
7399                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
7400                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
7401                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
7402                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
7403                 }
7404                 if (r->buffer) {
7405                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
7406                 }
7407         }
7408         return NDR_ERR_SUCCESS;
7409 }
7410
7411 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
7412 {
7413         ndr_print_struct(ndr, name, "netr_DsRAddress");
7414         ndr->depth++;
7415         ndr_print_ptr(ndr, "buffer", r->buffer);
7416         ndr->depth++;
7417         if (r->buffer) {
7418                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
7419         }
7420         ndr->depth--;
7421         ndr_print_uint32(ndr, "size", r->size);
7422         ndr->depth--;
7423 }
7424
7425 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7426 {
7427         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7428         return NDR_ERR_SUCCESS;
7429 }
7430
7431 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7432 {
7433         uint32_t v;
7434         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7435         *r = v;
7436         return NDR_ERR_SUCCESS;
7437 }
7438
7439 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7440 {
7441         ndr_print_uint32(ndr, name, r);
7442         ndr->depth++;
7443         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7444         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7445         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7446         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7447         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7448         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7449         ndr->depth--;
7450 }
7451
7452 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
7453 {
7454         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7455         return NDR_ERR_SUCCESS;
7456 }
7457
7458 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
7459 {
7460         uint32_t v;
7461         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7462         *r = v;
7463         return NDR_ERR_SUCCESS;
7464 }
7465
7466 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
7467 {
7468         const char *val = NULL;
7469
7470         switch (r) {
7471                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7472                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
7473                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
7474                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
7475         }
7476         ndr_print_enum(ndr, name, "ENUM", val, r);
7477 }
7478
7479 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7480 {
7481         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7482         return NDR_ERR_SUCCESS;
7483 }
7484
7485 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7486 {
7487         uint32_t v;
7488         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7489         *r = v;
7490         return NDR_ERR_SUCCESS;
7491 }
7492
7493 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
7494 {
7495         ndr_print_uint32(ndr, name, r);
7496         ndr->depth++;
7497         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
7498         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
7499         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
7500         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
7501         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
7502         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
7503         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
7504         ndr->depth--;
7505 }
7506
7507 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
7508 {
7509         if (ndr_flags & NDR_SCALARS) {
7510                 NDR_CHECK(ndr_push_align(ndr, 4));
7511                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7512                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7513                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
7514                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7515                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
7516                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
7517                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7518                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7519         }
7520         if (ndr_flags & NDR_BUFFERS) {
7521                 if (r->netbios_name) {
7522                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7523                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7524                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7525                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7526                 }
7527                 if (r->dns_name) {
7528                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7529                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7530                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7531                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7532                 }
7533                 if (r->sid) {
7534                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7535                 }
7536         }
7537         return NDR_ERR_SUCCESS;
7538 }
7539
7540 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
7541 {
7542         uint32_t _ptr_netbios_name;
7543         TALLOC_CTX *_mem_save_netbios_name_0;
7544         uint32_t _ptr_dns_name;
7545         TALLOC_CTX *_mem_save_dns_name_0;
7546         uint32_t _ptr_sid;
7547         TALLOC_CTX *_mem_save_sid_0;
7548         if (ndr_flags & NDR_SCALARS) {
7549                 NDR_CHECK(ndr_pull_align(ndr, 4));
7550                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7551                 if (_ptr_netbios_name) {
7552                         NDR_PULL_ALLOC(ndr, r->netbios_name);
7553                 } else {
7554                         r->netbios_name = NULL;
7555                 }
7556                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7557                 if (_ptr_dns_name) {
7558                         NDR_PULL_ALLOC(ndr, r->dns_name);
7559                 } else {
7560                         r->dns_name = NULL;
7561                 }
7562                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
7563                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7564                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
7565                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
7566                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7567                 if (_ptr_sid) {
7568                         NDR_PULL_ALLOC(ndr, r->sid);
7569                 } else {
7570                         r->sid = NULL;
7571                 }
7572                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7573         }
7574         if (ndr_flags & NDR_BUFFERS) {
7575                 if (r->netbios_name) {
7576                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7577                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7578                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7579                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7580                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7581                                 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));
7582                         }
7583                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7584                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7585                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7586                 }
7587                 if (r->dns_name) {
7588                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7589                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7590                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7591                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7592                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7593                                 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));
7594                         }
7595                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7596                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7597                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7598                 }
7599                 if (r->sid) {
7600                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7601                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7602                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7603                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7604                 }
7605         }
7606         return NDR_ERR_SUCCESS;
7607 }
7608
7609 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
7610 {
7611         ndr_print_struct(ndr, name, "netr_DomainTrust");
7612         ndr->depth++;
7613         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7614         ndr->depth++;
7615         if (r->netbios_name) {
7616                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7617         }
7618         ndr->depth--;
7619         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7620         ndr->depth++;
7621         if (r->dns_name) {
7622                 ndr_print_string(ndr, "dns_name", r->dns_name);
7623         }
7624         ndr->depth--;
7625         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
7626         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7627         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
7628         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
7629         ndr_print_ptr(ndr, "sid", r->sid);
7630         ndr->depth++;
7631         if (r->sid) {
7632                 ndr_print_dom_sid2(ndr, "sid", r->sid);
7633         }
7634         ndr->depth--;
7635         ndr_print_GUID(ndr, "guid", &r->guid);
7636         ndr->depth--;
7637 }
7638
7639 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
7640 {
7641         uint32_t cntr_array_1;
7642         if (ndr_flags & NDR_SCALARS) {
7643                 NDR_CHECK(ndr_push_align(ndr, 4));
7644                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7645                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7646         }
7647         if (ndr_flags & NDR_BUFFERS) {
7648                 if (r->array) {
7649                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7650                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7651                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7652                         }
7653                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7654                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7655                         }
7656                 }
7657         }
7658         return NDR_ERR_SUCCESS;
7659 }
7660
7661 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
7662 {
7663         uint32_t _ptr_array;
7664         uint32_t cntr_array_1;
7665         TALLOC_CTX *_mem_save_array_0;
7666         TALLOC_CTX *_mem_save_array_1;
7667         if (ndr_flags & NDR_SCALARS) {
7668                 NDR_CHECK(ndr_pull_align(ndr, 4));
7669                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7670                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7671                 if (_ptr_array) {
7672                         NDR_PULL_ALLOC(ndr, r->array);
7673                 } else {
7674                         r->array = NULL;
7675                 }
7676         }
7677         if (ndr_flags & NDR_BUFFERS) {
7678                 if (r->array) {
7679                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7680                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7681                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7682                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
7683                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7684                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7685                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7686                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7687                         }
7688                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7689                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7690                         }
7691                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7692                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7693                 }
7694                 if (r->array) {
7695                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7696                 }
7697         }
7698         return NDR_ERR_SUCCESS;
7699 }
7700
7701 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
7702 {
7703         uint32_t cntr_array_1;
7704         ndr_print_struct(ndr, name, "netr_DomainTrustList");
7705         ndr->depth++;
7706         ndr_print_uint32(ndr, "count", r->count);
7707         ndr_print_ptr(ndr, "array", r->array);
7708         ndr->depth++;
7709         if (r->array) {
7710                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
7711                 ndr->depth++;
7712                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7713                         char *idx_1=NULL;
7714                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
7715                                 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
7716                                 free(idx_1);
7717                         }
7718                 }
7719                 ndr->depth--;
7720         }
7721         ndr->depth--;
7722         ndr->depth--;
7723 }
7724
7725 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
7726 {
7727         uint32_t cntr_sitename_1;
7728         uint32_t cntr_subnetname_1;
7729         if (ndr_flags & NDR_SCALARS) {
7730                 NDR_CHECK(ndr_push_align(ndr, 4));
7731                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7732                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7733                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
7734         }
7735         if (ndr_flags & NDR_BUFFERS) {
7736                 if (r->sitename) {
7737                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7738                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7739                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7740                         }
7741                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7742                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7743                         }
7744                 }
7745                 if (r->subnetname) {
7746                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7747                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7748                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7749                         }
7750                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7751                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7752                         }
7753                 }
7754         }
7755         return NDR_ERR_SUCCESS;
7756 }
7757
7758 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
7759 {
7760         uint32_t _ptr_sitename;
7761         uint32_t cntr_sitename_1;
7762         TALLOC_CTX *_mem_save_sitename_0;
7763         TALLOC_CTX *_mem_save_sitename_1;
7764         uint32_t _ptr_subnetname;
7765         uint32_t cntr_subnetname_1;
7766         TALLOC_CTX *_mem_save_subnetname_0;
7767         TALLOC_CTX *_mem_save_subnetname_1;
7768         if (ndr_flags & NDR_SCALARS) {
7769                 NDR_CHECK(ndr_pull_align(ndr, 4));
7770                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7771                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7772                 if (_ptr_sitename) {
7773                         NDR_PULL_ALLOC(ndr, r->sitename);
7774                 } else {
7775                         r->sitename = NULL;
7776                 }
7777                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
7778                 if (_ptr_subnetname) {
7779                         NDR_PULL_ALLOC(ndr, r->subnetname);
7780                 } else {
7781                         r->subnetname = NULL;
7782                 }
7783         }
7784         if (ndr_flags & NDR_BUFFERS) {
7785                 if (r->sitename) {
7786                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7787                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7788                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7789                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7790                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7791                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7792                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7793                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7794                         }
7795                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7796                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7797                         }
7798                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7799                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7800                 }
7801                 if (r->subnetname) {
7802                         _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7803                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7804                         NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
7805                         NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
7806                         _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
7807                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7808                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7809                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7810                         }
7811                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7812                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7813                         }
7814                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
7815                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
7816                 }
7817                 if (r->sitename) {
7818                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7819                 }
7820                 if (r->subnetname) {
7821                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
7822                 }
7823         }
7824         return NDR_ERR_SUCCESS;
7825 }
7826
7827 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
7828 {
7829         uint32_t cntr_sitename_1;
7830         uint32_t cntr_subnetname_1;
7831         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
7832         ndr->depth++;
7833         ndr_print_uint32(ndr, "count", r->count);
7834         ndr_print_ptr(ndr, "sitename", r->sitename);
7835         ndr->depth++;
7836         if (r->sitename) {
7837                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
7838                 ndr->depth++;
7839                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7840                         char *idx_1=NULL;
7841                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
7842                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7843                                 free(idx_1);
7844                         }
7845                 }
7846                 ndr->depth--;
7847         }
7848         ndr->depth--;
7849         ndr_print_ptr(ndr, "subnetname", r->subnetname);
7850         ndr->depth++;
7851         if (r->subnetname) {
7852                 ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", (int)r->count);
7853                 ndr->depth++;
7854                 for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
7855                         char *idx_1=NULL;
7856                         if (asprintf(&idx_1, "[%d]", cntr_subnetname_1) != -1) {
7857                                 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
7858                                 free(idx_1);
7859                         }
7860                 }
7861                 ndr->depth--;
7862         }
7863         ndr->depth--;
7864         ndr->depth--;
7865 }
7866
7867 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
7868 {
7869         uint32_t cntr_sites_1;
7870         if (ndr_flags & NDR_SCALARS) {
7871                 NDR_CHECK(ndr_push_align(ndr, 4));
7872                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7873                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
7874         }
7875         if (ndr_flags & NDR_BUFFERS) {
7876                 if (r->sites) {
7877                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7878                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7879                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7880                         }
7881                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7882                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7883                         }
7884                 }
7885         }
7886         return NDR_ERR_SUCCESS;
7887 }
7888
7889 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
7890 {
7891         uint32_t _ptr_sites;
7892         uint32_t cntr_sites_1;
7893         TALLOC_CTX *_mem_save_sites_0;
7894         TALLOC_CTX *_mem_save_sites_1;
7895         if (ndr_flags & NDR_SCALARS) {
7896                 NDR_CHECK(ndr_pull_align(ndr, 4));
7897                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
7898                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
7899                 if (_ptr_sites) {
7900                         NDR_PULL_ALLOC(ndr, r->sites);
7901                 } else {
7902                         r->sites = NULL;
7903                 }
7904         }
7905         if (ndr_flags & NDR_BUFFERS) {
7906                 if (r->sites) {
7907                         _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
7908                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7909                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
7910                         NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
7911                         _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
7912                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7913                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7914                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7915                         }
7916                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7917                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7918                         }
7919                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
7920                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
7921                 }
7922                 if (r->sites) {
7923                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
7924                 }
7925         }
7926         return NDR_ERR_SUCCESS;
7927 }
7928
7929 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
7930 {
7931         uint32_t cntr_sites_1;
7932         ndr_print_struct(ndr, name, "DcSitesCtr");
7933         ndr->depth++;
7934         ndr_print_uint32(ndr, "num_sites", r->num_sites);
7935         ndr_print_ptr(ndr, "sites", r->sites);
7936         ndr->depth++;
7937         if (r->sites) {
7938                 ndr->print(ndr, "%s: ARRAY(%d)", "sites", (int)r->num_sites);
7939                 ndr->depth++;
7940                 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
7941                         char *idx_1=NULL;
7942                         if (asprintf(&idx_1, "[%d]", cntr_sites_1) != -1) {
7943                                 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
7944                                 free(idx_1);
7945                         }
7946                 }
7947                 ndr->depth--;
7948         }
7949         ndr->depth--;
7950         ndr->depth--;
7951 }
7952
7953 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
7954 {
7955         if (flags & NDR_IN) {
7956                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7957                 if (r->in.server_name) {
7958                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7959                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7960                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7961                         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));
7962                 }
7963                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7964                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7965                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7966                 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));
7967                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7968                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7969                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7970                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7971         }
7972         if (flags & NDR_OUT) {
7973                 if (r->out.info == NULL) {
7974                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7975                 }
7976                 NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
7977                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
7978         }
7979         return NDR_ERR_SUCCESS;
7980 }
7981
7982 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
7983 {
7984         uint32_t _ptr_server_name;
7985         TALLOC_CTX *_mem_save_server_name_0;
7986         TALLOC_CTX *_mem_save_info_0;
7987         if (flags & NDR_IN) {
7988                 ZERO_STRUCT(r->out);
7989
7990                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7991                 if (_ptr_server_name) {
7992                         NDR_PULL_ALLOC(ndr, r->in.server_name);
7993                 } else {
7994                         r->in.server_name = NULL;
7995                 }
7996                 if (r->in.server_name) {
7997                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7998                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
7999                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8000                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8001                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8002                                 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));
8003                         }
8004                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8005                         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));
8006                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8007                 }
8008                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8009                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8010                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8011                         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));
8012                 }
8013                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8014                 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));
8015                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8016                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8017                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8018                         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));
8019                 }
8020                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8021                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8022                 NDR_PULL_ALLOC(ndr, r->out.info);
8023                 ZERO_STRUCTP(r->out.info);
8024         }
8025         if (flags & NDR_OUT) {
8026                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8027                         NDR_PULL_ALLOC(ndr, r->out.info);
8028                 }
8029                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8030                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8031                 NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
8032                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8033                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8034         }
8035         return NDR_ERR_SUCCESS;
8036 }
8037
8038 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
8039 {
8040         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
8041         ndr->depth++;
8042         if (flags & NDR_SET_VALUES) {
8043                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8044         }
8045         if (flags & NDR_IN) {
8046                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
8047                 ndr->depth++;
8048                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8049                 ndr->depth++;
8050                 if (r->in.server_name) {
8051                         ndr_print_string(ndr, "server_name", r->in.server_name);
8052                 }
8053                 ndr->depth--;
8054                 ndr_print_string(ndr, "account_name", r->in.account_name);
8055                 ndr_print_string(ndr, "workstation", r->in.workstation);
8056                 ndr->depth--;
8057         }
8058         if (flags & NDR_OUT) {
8059                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
8060                 ndr->depth++;
8061                 ndr_print_ptr(ndr, "info", r->out.info);
8062                 ndr->depth++;
8063                 ndr_print_netr_UasInfo(ndr, "info", r->out.info);
8064                 ndr->depth--;
8065                 ndr_print_WERROR(ndr, "result", r->out.result);
8066                 ndr->depth--;
8067         }
8068         ndr->depth--;
8069 }
8070
8071 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
8072 {
8073         if (flags & NDR_IN) {
8074                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8075                 if (r->in.server_name) {
8076                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8077                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8078                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8079                         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));
8080                 }
8081                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8082                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8083                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8084                 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));
8085                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8086                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8087                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8088                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8089         }
8090         if (flags & NDR_OUT) {
8091                 if (r->out.info == NULL) {
8092                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8093                 }
8094                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8095                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8096         }
8097         return NDR_ERR_SUCCESS;
8098 }
8099
8100 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
8101 {
8102         uint32_t _ptr_server_name;
8103         TALLOC_CTX *_mem_save_server_name_0;
8104         TALLOC_CTX *_mem_save_info_0;
8105         if (flags & NDR_IN) {
8106                 ZERO_STRUCT(r->out);
8107
8108                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8109                 if (_ptr_server_name) {
8110                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8111                 } else {
8112                         r->in.server_name = NULL;
8113                 }
8114                 if (r->in.server_name) {
8115                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8116                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8117                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8118                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8119                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8120                                 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));
8121                         }
8122                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8123                         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));
8124                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8125                 }
8126                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8127                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8128                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8129                         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));
8130                 }
8131                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8132                 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));
8133                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8134                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8135                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8136                         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));
8137                 }
8138                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8139                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8140                 NDR_PULL_ALLOC(ndr, r->out.info);
8141                 ZERO_STRUCTP(r->out.info);
8142         }
8143         if (flags & NDR_OUT) {
8144                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8145                         NDR_PULL_ALLOC(ndr, r->out.info);
8146                 }
8147                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8148                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8149                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8150                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8151                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8152         }
8153         return NDR_ERR_SUCCESS;
8154 }
8155
8156 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
8157 {
8158         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
8159         ndr->depth++;
8160         if (flags & NDR_SET_VALUES) {
8161                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8162         }
8163         if (flags & NDR_IN) {
8164                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
8165                 ndr->depth++;
8166                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8167                 ndr->depth++;
8168                 if (r->in.server_name) {
8169                         ndr_print_string(ndr, "server_name", r->in.server_name);
8170                 }
8171                 ndr->depth--;
8172                 ndr_print_string(ndr, "account_name", r->in.account_name);
8173                 ndr_print_string(ndr, "workstation", r->in.workstation);
8174                 ndr->depth--;
8175         }
8176         if (flags & NDR_OUT) {
8177                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
8178                 ndr->depth++;
8179                 ndr_print_ptr(ndr, "info", r->out.info);
8180                 ndr->depth++;
8181                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
8182                 ndr->depth--;
8183                 ndr_print_WERROR(ndr, "result", r->out.result);
8184                 ndr->depth--;
8185         }
8186         ndr->depth--;
8187 }
8188
8189 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
8190 {
8191         if (flags & NDR_IN) {
8192                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8193                 if (r->in.server_name) {
8194                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8195                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8196                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8197                         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));
8198                 }
8199                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8200                 if (r->in.computer_name) {
8201                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8202                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8203                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8204                         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));
8205                 }
8206                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8207                 if (r->in.credential) {
8208                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8209                 }
8210                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8211                 if (r->in.return_authenticator) {
8212                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8213                 }
8214                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
8215                 if (r->in.logon == NULL) {
8216                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8217                 }
8218                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
8219                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
8220                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
8221         }
8222         if (flags & NDR_OUT) {
8223                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8224                 if (r->out.return_authenticator) {
8225                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8226                 }
8227                 if (r->out.validation == NULL) {
8228                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8229                 }
8230                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8231                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8232                 if (r->out.authoritative == NULL) {
8233                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8234                 }
8235                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
8236                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8237         }
8238         return NDR_ERR_SUCCESS;
8239 }
8240
8241 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
8242 {
8243         uint32_t _ptr_server_name;
8244         uint32_t _ptr_computer_name;
8245         uint32_t _ptr_credential;
8246         uint32_t _ptr_return_authenticator;
8247         TALLOC_CTX *_mem_save_server_name_0;
8248         TALLOC_CTX *_mem_save_computer_name_0;
8249         TALLOC_CTX *_mem_save_credential_0;
8250         TALLOC_CTX *_mem_save_return_authenticator_0;
8251         TALLOC_CTX *_mem_save_logon_0;
8252         TALLOC_CTX *_mem_save_validation_0;
8253         TALLOC_CTX *_mem_save_authoritative_0;
8254         if (flags & NDR_IN) {
8255                 ZERO_STRUCT(r->out);
8256
8257                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8258                 if (_ptr_server_name) {
8259                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8260                 } else {
8261                         r->in.server_name = NULL;
8262                 }
8263                 if (r->in.server_name) {
8264                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8265                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8266                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8267                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8268                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8269                                 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));
8270                         }
8271                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8272                         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));
8273                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8274                 }
8275                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8276                 if (_ptr_computer_name) {
8277                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8278                 } else {
8279                         r->in.computer_name = NULL;
8280                 }
8281                 if (r->in.computer_name) {
8282                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8283                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8284                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8285                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8286                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8287                                 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));
8288                         }
8289                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8290                         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));
8291                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8292                 }
8293                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8294                 if (_ptr_credential) {
8295                         NDR_PULL_ALLOC(ndr, r->in.credential);
8296                 } else {
8297                         r->in.credential = NULL;
8298                 }
8299                 if (r->in.credential) {
8300                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8301                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8302                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8303                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8304                 }
8305                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8306                 if (_ptr_return_authenticator) {
8307                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8308                 } else {
8309                         r->in.return_authenticator = NULL;
8310                 }
8311                 if (r->in.return_authenticator) {
8312                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8313                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8314                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8315                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8316                 }
8317                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
8318                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8319                         NDR_PULL_ALLOC(ndr, r->in.logon);
8320                 }
8321                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
8322                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
8323                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
8324                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
8325                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
8326                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
8327                 NDR_PULL_ALLOC(ndr, r->out.validation);
8328                 ZERO_STRUCTP(r->out.validation);
8329                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
8330                 ZERO_STRUCTP(r->out.authoritative);
8331         }
8332         if (flags & NDR_OUT) {
8333                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8334                 if (_ptr_return_authenticator) {
8335                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8336                 } else {
8337                         r->out.return_authenticator = NULL;
8338                 }
8339                 if (r->out.return_authenticator) {
8340                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8341                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8342                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8343                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8344                 }
8345                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8346                         NDR_PULL_ALLOC(ndr, r->out.validation);
8347                 }
8348                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
8349                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
8350                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8351                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8352                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
8353                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8354                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
8355                 }
8356                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
8357                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
8358                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
8359                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
8360                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8361         }
8362         return NDR_ERR_SUCCESS;
8363 }
8364
8365 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
8366 {
8367         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
8368         ndr->depth++;
8369         if (flags & NDR_SET_VALUES) {
8370                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8371         }
8372         if (flags & NDR_IN) {
8373                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
8374                 ndr->depth++;
8375                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8376                 ndr->depth++;
8377                 if (r->in.server_name) {
8378                         ndr_print_string(ndr, "server_name", r->in.server_name);
8379                 }
8380                 ndr->depth--;
8381                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8382                 ndr->depth++;
8383                 if (r->in.computer_name) {
8384                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8385                 }
8386                 ndr->depth--;
8387                 ndr_print_ptr(ndr, "credential", r->in.credential);
8388                 ndr->depth++;
8389                 if (r->in.credential) {
8390                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8391                 }
8392                 ndr->depth--;
8393                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8394                 ndr->depth++;
8395                 if (r->in.return_authenticator) {
8396                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8397                 }
8398                 ndr->depth--;
8399                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
8400                 ndr_print_ptr(ndr, "logon", r->in.logon);
8401                 ndr->depth++;
8402                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
8403                 ndr_print_netr_LogonInfo(ndr, "logon", r->in.logon);
8404                 ndr->depth--;
8405                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
8406                 ndr->depth--;
8407         }
8408         if (flags & NDR_OUT) {
8409                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
8410                 ndr->depth++;
8411                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8412                 ndr->depth++;
8413                 if (r->out.return_authenticator) {
8414                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8415                 }
8416                 ndr->depth--;
8417                 ndr_print_ptr(ndr, "validation", r->out.validation);
8418                 ndr->depth++;
8419                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
8420                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
8421                 ndr->depth--;
8422                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
8423                 ndr->depth++;
8424                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
8425                 ndr->depth--;
8426                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8427                 ndr->depth--;
8428         }
8429         ndr->depth--;
8430 }
8431
8432 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
8433 {
8434         if (flags & NDR_IN) {
8435                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8436                 if (r->in.server_name) {
8437                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8438                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8439                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8440                         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));
8441                 }
8442                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8443                 if (r->in.computer_name) {
8444                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8445                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8446                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8447                         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));
8448                 }
8449                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8450                 if (r->in.credential) {
8451                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8452                 }
8453                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8454                 if (r->in.return_authenticator) {
8455                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8456                 }
8457                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
8458                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8459                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8460         }
8461         if (flags & NDR_OUT) {
8462                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8463                 if (r->out.return_authenticator) {
8464                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8465                 }
8466                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8467         }
8468         return NDR_ERR_SUCCESS;
8469 }
8470
8471 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
8472 {
8473         uint32_t _ptr_server_name;
8474         uint32_t _ptr_computer_name;
8475         uint32_t _ptr_credential;
8476         uint32_t _ptr_return_authenticator;
8477         TALLOC_CTX *_mem_save_server_name_0;
8478         TALLOC_CTX *_mem_save_computer_name_0;
8479         TALLOC_CTX *_mem_save_credential_0;
8480         TALLOC_CTX *_mem_save_return_authenticator_0;
8481         if (flags & NDR_IN) {
8482                 ZERO_STRUCT(r->out);
8483
8484                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8485                 if (_ptr_server_name) {
8486                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8487                 } else {
8488                         r->in.server_name = NULL;
8489                 }
8490                 if (r->in.server_name) {
8491                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8492                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8493                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8494                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8495                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8496                                 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));
8497                         }
8498                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8499                         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));
8500                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8501                 }
8502                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8503                 if (_ptr_computer_name) {
8504                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8505                 } else {
8506                         r->in.computer_name = NULL;
8507                 }
8508                 if (r->in.computer_name) {
8509                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8510                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8511                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8512                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8513                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8514                                 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));
8515                         }
8516                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8517                         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));
8518                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8519                 }
8520                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8521                 if (_ptr_credential) {
8522                         NDR_PULL_ALLOC(ndr, r->in.credential);
8523                 } else {
8524                         r->in.credential = NULL;
8525                 }
8526                 if (r->in.credential) {
8527                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8528                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8529                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8530                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8531                 }
8532                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8533                 if (_ptr_return_authenticator) {
8534                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8535                 } else {
8536                         r->in.return_authenticator = NULL;
8537                 }
8538                 if (r->in.return_authenticator) {
8539                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8540                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8541                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8542                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8543                 }
8544                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
8545                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8546                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8547         }
8548         if (flags & NDR_OUT) {
8549                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8550                 if (_ptr_return_authenticator) {
8551                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8552                 } else {
8553                         r->out.return_authenticator = NULL;
8554                 }
8555                 if (r->out.return_authenticator) {
8556                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8557                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8558                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8559                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8560                 }
8561                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8562         }
8563         return NDR_ERR_SUCCESS;
8564 }
8565
8566 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
8567 {
8568         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
8569         ndr->depth++;
8570         if (flags & NDR_SET_VALUES) {
8571                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8572         }
8573         if (flags & NDR_IN) {
8574                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
8575                 ndr->depth++;
8576                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8577                 ndr->depth++;
8578                 if (r->in.server_name) {
8579                         ndr_print_string(ndr, "server_name", r->in.server_name);
8580                 }
8581                 ndr->depth--;
8582                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8583                 ndr->depth++;
8584                 if (r->in.computer_name) {
8585                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8586                 }
8587                 ndr->depth--;
8588                 ndr_print_ptr(ndr, "credential", r->in.credential);
8589                 ndr->depth++;
8590                 if (r->in.credential) {
8591                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8592                 }
8593                 ndr->depth--;
8594                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8595                 ndr->depth++;
8596                 if (r->in.return_authenticator) {
8597                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8598                 }
8599                 ndr->depth--;
8600                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
8601                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8602                 ndr_print_netr_LogonInfo(ndr, "logon", &r->in.logon);
8603                 ndr->depth--;
8604         }
8605         if (flags & NDR_OUT) {
8606                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
8607                 ndr->depth++;
8608                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8609                 ndr->depth++;
8610                 if (r->out.return_authenticator) {
8611                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8612                 }
8613                 ndr->depth--;
8614                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8615                 ndr->depth--;
8616         }
8617         ndr->depth--;
8618 }
8619
8620 static enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
8621 {
8622         if (flags & NDR_IN) {
8623                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8624                 if (r->in.server_name) {
8625                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8626                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8627                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8628                         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));
8629                 }
8630                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8631                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8632                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8633                 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));
8634                 if (r->in.credentials == NULL) {
8635                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8636                 }
8637                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8638         }
8639         if (flags & NDR_OUT) {
8640                 if (r->out.return_credentials == NULL) {
8641                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8642                 }
8643                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8644                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8645         }
8646         return NDR_ERR_SUCCESS;
8647 }
8648
8649 static enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
8650 {
8651         uint32_t _ptr_server_name;
8652         TALLOC_CTX *_mem_save_server_name_0;
8653         TALLOC_CTX *_mem_save_credentials_0;
8654         TALLOC_CTX *_mem_save_return_credentials_0;
8655         if (flags & NDR_IN) {
8656                 ZERO_STRUCT(r->out);
8657
8658                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8659                 if (_ptr_server_name) {
8660                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8661                 } else {
8662                         r->in.server_name = NULL;
8663                 }
8664                 if (r->in.server_name) {
8665                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8666                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8667                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8668                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8669                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8670                                 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));
8671                         }
8672                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8673                         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));
8674                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8675                 }
8676                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8677                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8678                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8679                         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));
8680                 }
8681                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8682                 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));
8683                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8684                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8685                 }
8686                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8687                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8688                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8689                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8690                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8691                 ZERO_STRUCTP(r->out.return_credentials);
8692         }
8693         if (flags & NDR_OUT) {
8694                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8695                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8696                 }
8697                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8698                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
8699                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8700                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8701                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8702         }
8703         return NDR_ERR_SUCCESS;
8704 }
8705
8706 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
8707 {
8708         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
8709         ndr->depth++;
8710         if (flags & NDR_SET_VALUES) {
8711                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8712         }
8713         if (flags & NDR_IN) {
8714                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
8715                 ndr->depth++;
8716                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8717                 ndr->depth++;
8718                 if (r->in.server_name) {
8719                         ndr_print_string(ndr, "server_name", r->in.server_name);
8720                 }
8721                 ndr->depth--;
8722                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8723                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8724                 ndr->depth++;
8725                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8726                 ndr->depth--;
8727                 ndr->depth--;
8728         }
8729         if (flags & NDR_OUT) {
8730                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
8731                 ndr->depth++;
8732                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
8733                 ndr->depth++;
8734                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
8735                 ndr->depth--;
8736                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8737                 ndr->depth--;
8738         }
8739         ndr->depth--;
8740 }
8741
8742 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
8743 {
8744         if (flags & NDR_IN) {
8745                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8746                 if (r->in.server_name) {
8747                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8748                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8749                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8750                         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));
8751                 }
8752                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8753                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8754                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8755                 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));
8756                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8757                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8758                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8759                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8760                 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));
8761                 if (r->in.credentials == NULL) {
8762                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8763                 }
8764                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8765         }
8766         if (flags & NDR_OUT) {
8767                 if (r->out.return_credentials == NULL) {
8768                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8769                 }
8770                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8771                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8772         }
8773         return NDR_ERR_SUCCESS;
8774 }
8775
8776 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
8777 {
8778         uint32_t _ptr_server_name;
8779         TALLOC_CTX *_mem_save_server_name_0;
8780         TALLOC_CTX *_mem_save_credentials_0;
8781         TALLOC_CTX *_mem_save_return_credentials_0;
8782         if (flags & NDR_IN) {
8783                 ZERO_STRUCT(r->out);
8784
8785                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8786                 if (_ptr_server_name) {
8787                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8788                 } else {
8789                         r->in.server_name = NULL;
8790                 }
8791                 if (r->in.server_name) {
8792                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8793                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8794                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8795                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8796                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8797                                 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));
8798                         }
8799                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8800                         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));
8801                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8802                 }
8803                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8804                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8805                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8806                         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));
8807                 }
8808                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8809                 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));
8810                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8811                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8812                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8813                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8814                         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));
8815                 }
8816                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8817                 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));
8818                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8819                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8820                 }
8821                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8822                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8823                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8824                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8825                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8826                 ZERO_STRUCTP(r->out.return_credentials);
8827         }
8828         if (flags & NDR_OUT) {
8829                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8830                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8831                 }
8832                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8833                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
8834                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8835                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8836                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8837         }
8838         return NDR_ERR_SUCCESS;
8839 }
8840
8841 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
8842 {
8843         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
8844         ndr->depth++;
8845         if (flags & NDR_SET_VALUES) {
8846                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8847         }
8848         if (flags & NDR_IN) {
8849                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
8850                 ndr->depth++;
8851                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8852                 ndr->depth++;
8853                 if (r->in.server_name) {
8854                         ndr_print_string(ndr, "server_name", r->in.server_name);
8855                 }
8856                 ndr->depth--;
8857                 ndr_print_string(ndr, "account_name", r->in.account_name);
8858                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8859                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8860                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8861                 ndr->depth++;
8862                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8863                 ndr->depth--;
8864                 ndr->depth--;
8865         }
8866         if (flags & NDR_OUT) {
8867                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
8868                 ndr->depth++;
8869                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
8870                 ndr->depth++;
8871                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
8872                 ndr->depth--;
8873                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8874                 ndr->depth--;
8875         }
8876         ndr->depth--;
8877 }
8878
8879 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
8880 {
8881         if (flags & NDR_IN) {
8882                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8883                 if (r->in.server_name) {
8884                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8885                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8886                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8887                         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));
8888                 }
8889                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8890                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8891                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8892                 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));
8893                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8894                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8895                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8896                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8897                 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));
8898                 if (r->in.credential == NULL) {
8899                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8900                 }
8901                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8902                 if (r->in.new_password == NULL) {
8903                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8904                 }
8905                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
8906         }
8907         if (flags & NDR_OUT) {
8908                 if (r->out.return_authenticator == NULL) {
8909                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8910                 }
8911                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8912                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8913         }
8914         return NDR_ERR_SUCCESS;
8915 }
8916
8917 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
8918 {
8919         uint32_t _ptr_server_name;
8920         TALLOC_CTX *_mem_save_server_name_0;
8921         TALLOC_CTX *_mem_save_credential_0;
8922         TALLOC_CTX *_mem_save_return_authenticator_0;
8923         TALLOC_CTX *_mem_save_new_password_0;
8924         if (flags & NDR_IN) {
8925                 ZERO_STRUCT(r->out);
8926
8927                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8928                 if (_ptr_server_name) {
8929                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8930                 } else {
8931                         r->in.server_name = NULL;
8932                 }
8933                 if (r->in.server_name) {
8934                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8935                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8936                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8937                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8938                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8939                                 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));
8940                         }
8941                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8942                         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));
8943                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8944                 }
8945                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8946                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8947                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8948                         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));
8949                 }
8950                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8951                 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));
8952                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8953                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8954                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8955                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8956                         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));
8957                 }
8958                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8959                 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));
8960                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8961                         NDR_PULL_ALLOC(ndr, r->in.credential);
8962                 }
8963                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8964                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
8965                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8966                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
8967                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8968                         NDR_PULL_ALLOC(ndr, r->in.new_password);
8969                 }
8970                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
8971                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
8972                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
8973                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
8974                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8975                 ZERO_STRUCTP(r->out.return_authenticator);
8976         }
8977         if (flags & NDR_OUT) {
8978                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8979                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8980                 }
8981                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8982                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8983                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8984                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8985                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8986         }
8987         return NDR_ERR_SUCCESS;
8988 }
8989
8990 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
8991 {
8992         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
8993         ndr->depth++;
8994         if (flags & NDR_SET_VALUES) {
8995                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8996         }
8997         if (flags & NDR_IN) {
8998                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
8999                 ndr->depth++;
9000                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9001                 ndr->depth++;
9002                 if (r->in.server_name) {
9003                         ndr_print_string(ndr, "server_name", r->in.server_name);
9004                 }
9005                 ndr->depth--;
9006                 ndr_print_string(ndr, "account_name", r->in.account_name);
9007                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
9008                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9009                 ndr_print_ptr(ndr, "credential", r->in.credential);
9010                 ndr->depth++;
9011                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9012                 ndr->depth--;
9013                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
9014                 ndr->depth++;
9015                 ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
9016                 ndr->depth--;
9017                 ndr->depth--;
9018         }
9019         if (flags & NDR_OUT) {
9020                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
9021                 ndr->depth++;
9022                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9023                 ndr->depth++;
9024                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9025                 ndr->depth--;
9026                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9027                 ndr->depth--;
9028         }
9029         ndr->depth--;
9030 }
9031
9032 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
9033 {
9034         if (flags & NDR_IN) {
9035                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9036                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9037                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9038                 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));
9039                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9040                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9041                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9042                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9043                 if (r->in.credential == NULL) {
9044                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9045                 }
9046                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9047                 if (r->in.return_authenticator == NULL) {
9048                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9049                 }
9050                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9051                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9052                 if (r->in.sequence_num == NULL) {
9053                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9054                 }
9055                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
9056                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9057         }
9058         if (flags & NDR_OUT) {
9059                 if (r->out.return_authenticator == NULL) {
9060                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9061                 }
9062                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9063                 if (r->out.sequence_num == NULL) {
9064                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9065                 }
9066                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
9067                 if (r->out.delta_enum_array == NULL) {
9068                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9069                 }
9070                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
9071                 if (*r->out.delta_enum_array) {
9072                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9073                 }
9074                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9075         }
9076         return NDR_ERR_SUCCESS;
9077 }
9078
9079 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
9080 {
9081         uint32_t _ptr_delta_enum_array;
9082         TALLOC_CTX *_mem_save_credential_0;
9083         TALLOC_CTX *_mem_save_return_authenticator_0;
9084         TALLOC_CTX *_mem_save_sequence_num_0;
9085         TALLOC_CTX *_mem_save_delta_enum_array_0;
9086         TALLOC_CTX *_mem_save_delta_enum_array_1;
9087         if (flags & NDR_IN) {
9088                 ZERO_STRUCT(r->out);
9089
9090                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9091                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9092                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9093                         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));
9094                 }
9095                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9096                 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));
9097                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9098                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9099                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9100                         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));
9101                 }
9102                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9103                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9104                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9105                         NDR_PULL_ALLOC(ndr, r->in.credential);
9106                 }
9107                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9108                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
9109                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9110                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
9111                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9112                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9113                 }
9114                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9115                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9116                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9117                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9118                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9119                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9120                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
9121                 }
9122                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9123                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9124                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
9125                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9126                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9127                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9128                 *r->out.return_authenticator = *r->in.return_authenticator;
9129                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9130                 *r->out.sequence_num = *r->in.sequence_num;
9131                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9132                 ZERO_STRUCTP(r->out.delta_enum_array);
9133         }
9134         if (flags & NDR_OUT) {
9135                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9136                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9137                 }
9138                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9139                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9140                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9141                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9142                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9143                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9144                 }
9145                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9146                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9147                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
9148                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9149                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9150                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9151                 }
9152                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9153                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9154                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
9155                 if (_ptr_delta_enum_array) {
9156                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
9157                 } else {
9158                         *r->out.delta_enum_array = NULL;
9159                 }
9160                 if (*r->out.delta_enum_array) {
9161                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
9162                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
9163                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9164                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
9165                 }
9166                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9167                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9168         }
9169         return NDR_ERR_SUCCESS;
9170 }
9171
9172 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
9173 {
9174         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
9175         ndr->depth++;
9176         if (flags & NDR_SET_VALUES) {
9177                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9178         }
9179         if (flags & NDR_IN) {
9180                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
9181                 ndr->depth++;
9182                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9183                 ndr_print_string(ndr, "computername", r->in.computername);
9184                 ndr_print_ptr(ndr, "credential", r->in.credential);
9185                 ndr->depth++;
9186                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9187                 ndr->depth--;
9188                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9189                 ndr->depth++;
9190                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9191                 ndr->depth--;
9192                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9193                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
9194                 ndr->depth++;
9195                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
9196                 ndr->depth--;
9197                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9198                 ndr->depth--;
9199         }
9200         if (flags & NDR_OUT) {
9201                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
9202                 ndr->depth++;
9203                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9204                 ndr->depth++;
9205                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9206                 ndr->depth--;
9207                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
9208                 ndr->depth++;
9209                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
9210                 ndr->depth--;
9211                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9212                 ndr->depth++;
9213                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
9214                 ndr->depth++;
9215                 if (*r->out.delta_enum_array) {
9216                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
9217                 }
9218                 ndr->depth--;
9219                 ndr->depth--;
9220                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9221                 ndr->depth--;
9222         }
9223         ndr->depth--;
9224 }
9225
9226 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
9227 {
9228         if (flags & NDR_IN) {
9229                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9230                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9231                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9232                 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));
9233                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9234                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9235                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9236                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9237                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9238                 if (r->in.return_authenticator == NULL) {
9239                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9240                 }
9241                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9242                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9243                 if (r->in.sync_context == NULL) {
9244                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9245                 }
9246                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
9247                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9248         }
9249         if (flags & NDR_OUT) {
9250                 if (r->out.return_authenticator == NULL) {
9251                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9252                 }
9253                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9254                 if (r->out.sync_context == NULL) {
9255                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9256                 }
9257                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
9258                 if (r->out.delta_enum_array == NULL) {
9259                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9260                 }
9261                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9262                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9263         }
9264         return NDR_ERR_SUCCESS;
9265 }
9266
9267 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
9268 {
9269         TALLOC_CTX *_mem_save_return_authenticator_0;
9270         TALLOC_CTX *_mem_save_sync_context_0;
9271         TALLOC_CTX *_mem_save_delta_enum_array_0;
9272         if (flags & NDR_IN) {
9273                 ZERO_STRUCT(r->out);
9274
9275                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9276                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9277                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9278                         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));
9279                 }
9280                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9281                 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));
9282                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9283                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9284                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9285                         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));
9286                 }
9287                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9288                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9289                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9290                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9291                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9292                 }
9293                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9294                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9295                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9296                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9297                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9298                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9299                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
9300                 }
9301                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9302                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
9303                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
9304                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9305                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9306                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9307                 *r->out.return_authenticator = *r->in.return_authenticator;
9308                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
9309                 *r->out.sync_context = *r->in.sync_context;
9310                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9311                 ZERO_STRUCTP(r->out.delta_enum_array);
9312         }
9313         if (flags & NDR_OUT) {
9314                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9315                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9316                 }
9317                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9318                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9319                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9320                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9321                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9322                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
9323                 }
9324                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9325                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
9326                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
9327                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9328                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9329                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9330                 }
9331                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9332                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9333                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9334                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9335                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9336         }
9337         return NDR_ERR_SUCCESS;
9338 }
9339
9340 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
9341 {
9342         ndr_print_struct(ndr, name, "netr_DatabaseSync");
9343         ndr->depth++;
9344         if (flags & NDR_SET_VALUES) {
9345                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9346         }
9347         if (flags & NDR_IN) {
9348                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
9349                 ndr->depth++;
9350                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9351                 ndr_print_string(ndr, "computername", r->in.computername);
9352                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9353                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9354                 ndr->depth++;
9355                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9356                 ndr->depth--;
9357                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9358                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
9359                 ndr->depth++;
9360                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
9361                 ndr->depth--;
9362                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9363                 ndr->depth--;
9364         }
9365         if (flags & NDR_OUT) {
9366                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
9367                 ndr->depth++;
9368                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9369                 ndr->depth++;
9370                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9371                 ndr->depth--;
9372                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
9373                 ndr->depth++;
9374                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
9375                 ndr->depth--;
9376                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9377                 ndr->depth++;
9378                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
9379                 ndr->depth--;
9380                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9381                 ndr->depth--;
9382         }
9383         ndr->depth--;
9384 }
9385
9386 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
9387 {
9388         if (flags & NDR_IN) {
9389                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9390                 if (r->in.logon_server) {
9391                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, 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.logon_server, CH_UTF16)));
9394                         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));
9395                 }
9396                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9397                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9398                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9399                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9400                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9401                 if (r->in.return_authenticator == NULL) {
9402                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9403                 }
9404                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9405                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9406                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
9407                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9408                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9409         }
9410         if (flags & NDR_OUT) {
9411                 if (r->out.return_authenticator == NULL) {
9412                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9413                 }
9414                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9415                 if (r->out.buffer == NULL) {
9416                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9417                 }
9418                 {
9419                         struct ndr_push *_ndr_buffer;
9420                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9421                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9422                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9423                 }
9424                 if (r->out.count_returned == NULL) {
9425                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9426                 }
9427                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9428                 if (r->out.total_entries == NULL) {
9429                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9430                 }
9431                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9432                 if (r->out.recordid == NULL) {
9433                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9434                 }
9435                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9436                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9437         }
9438         return NDR_ERR_SUCCESS;
9439 }
9440
9441 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
9442 {
9443         uint32_t _ptr_logon_server;
9444         TALLOC_CTX *_mem_save_logon_server_0;
9445         TALLOC_CTX *_mem_save_return_authenticator_0;
9446         TALLOC_CTX *_mem_save_buffer_0;
9447         TALLOC_CTX *_mem_save_count_returned_0;
9448         TALLOC_CTX *_mem_save_total_entries_0;
9449         TALLOC_CTX *_mem_save_recordid_0;
9450         if (flags & NDR_IN) {
9451                 ZERO_STRUCT(r->out);
9452
9453                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9454                 if (_ptr_logon_server) {
9455                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9456                 } else {
9457                         r->in.logon_server = NULL;
9458                 }
9459                 if (r->in.logon_server) {
9460                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9461                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9462                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9463                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9464                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9465                                 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));
9466                         }
9467                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9468                         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));
9469                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9470                 }
9471                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9472                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9473                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9474                         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));
9475                 }
9476                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9477                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9478                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9479                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9480                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9481                 }
9482                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9483                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9484                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9485                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9486                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9487                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
9488                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9489                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9490                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9491                 *r->out.return_authenticator = *r->in.return_authenticator;
9492                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9493                 ZERO_STRUCTP(r->out.buffer);
9494                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9495                 ZERO_STRUCTP(r->out.count_returned);
9496                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9497                 ZERO_STRUCTP(r->out.total_entries);
9498                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9499                 ZERO_STRUCTP(r->out.recordid);
9500         }
9501         if (flags & NDR_OUT) {
9502                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9503                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9504                 }
9505                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9506                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9507                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9508                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9509                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9510                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9511                 }
9512                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9513                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9514                 {
9515                         struct ndr_pull *_ndr_buffer;
9516                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9517                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9518                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9519                 }
9520                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9521                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9522                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9523                 }
9524                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9525                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9526                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9527                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9528                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9529                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9530                 }
9531                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9532                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9533                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9534                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9535                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9536                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9537                 }
9538                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9539                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9540                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9541                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9542                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9543         }
9544         return NDR_ERR_SUCCESS;
9545 }
9546
9547 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
9548 {
9549         ndr_print_struct(ndr, name, "netr_AccountDeltas");
9550         ndr->depth++;
9551         if (flags & NDR_SET_VALUES) {
9552                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9553         }
9554         if (flags & NDR_IN) {
9555                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
9556                 ndr->depth++;
9557                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9558                 ndr->depth++;
9559                 if (r->in.logon_server) {
9560                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9561                 }
9562                 ndr->depth--;
9563                 ndr_print_string(ndr, "computername", r->in.computername);
9564                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9565                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9566                 ndr->depth++;
9567                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9568                 ndr->depth--;
9569                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
9570                 ndr_print_uint32(ndr, "count", r->in.count);
9571                 ndr_print_uint32(ndr, "level", r->in.level);
9572                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9573                 ndr->depth--;
9574         }
9575         if (flags & NDR_OUT) {
9576                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
9577                 ndr->depth++;
9578                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9579                 ndr->depth++;
9580                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9581                 ndr->depth--;
9582                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9583                 ndr->depth++;
9584                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9585                 ndr->depth--;
9586                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9587                 ndr->depth++;
9588                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9589                 ndr->depth--;
9590                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9591                 ndr->depth++;
9592                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9593                 ndr->depth--;
9594                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9595                 ndr->depth++;
9596                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9597                 ndr->depth--;
9598                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9599                 ndr->depth--;
9600         }
9601         ndr->depth--;
9602 }
9603
9604 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
9605 {
9606         if (flags & NDR_IN) {
9607                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9608                 if (r->in.logon_server) {
9609                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9610                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9611                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9612                         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));
9613                 }
9614                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9615                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9616                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9617                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9618                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9619                 if (r->in.return_authenticator == NULL) {
9620                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9621                 }
9622                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9623                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
9624                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9625                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9626                 if (r->in.recordid == NULL) {
9627                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9628                 }
9629                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9630         }
9631         if (flags & NDR_OUT) {
9632                 if (r->out.return_authenticator == NULL) {
9633                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9634                 }
9635                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9636                 if (r->out.buffer == NULL) {
9637                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9638                 }
9639                 {
9640                         struct ndr_push *_ndr_buffer;
9641                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9642                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9643                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9644                 }
9645                 if (r->out.count_returned == NULL) {
9646                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9647                 }
9648                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9649                 if (r->out.total_entries == NULL) {
9650                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9651                 }
9652                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9653                 if (r->out.next_reference == NULL) {
9654                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9655                 }
9656                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
9657                 if (r->out.recordid == NULL) {
9658                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9659                 }
9660                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9661                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9662         }
9663         return NDR_ERR_SUCCESS;
9664 }
9665
9666 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
9667 {
9668         uint32_t _ptr_logon_server;
9669         TALLOC_CTX *_mem_save_logon_server_0;
9670         TALLOC_CTX *_mem_save_return_authenticator_0;
9671         TALLOC_CTX *_mem_save_buffer_0;
9672         TALLOC_CTX *_mem_save_count_returned_0;
9673         TALLOC_CTX *_mem_save_total_entries_0;
9674         TALLOC_CTX *_mem_save_next_reference_0;
9675         TALLOC_CTX *_mem_save_recordid_0;
9676         if (flags & NDR_IN) {
9677                 ZERO_STRUCT(r->out);
9678
9679                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9680                 if (_ptr_logon_server) {
9681                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9682                 } else {
9683                         r->in.logon_server = NULL;
9684                 }
9685                 if (r->in.logon_server) {
9686                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9687                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9688                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9689                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9690                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
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.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9692                         }
9693                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9694                         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));
9695                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9696                 }
9697                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9698                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9699                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9700                         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));
9701                 }
9702                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9703                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9704                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9705                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9706                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9707                 }
9708                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9709                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9710                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9711                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9712                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
9713                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9714                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9715                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9716                         NDR_PULL_ALLOC(ndr, r->in.recordid);
9717                 }
9718                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9719                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
9720                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9721                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9722                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9723                 *r->out.return_authenticator = *r->in.return_authenticator;
9724                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9725                 ZERO_STRUCTP(r->out.buffer);
9726                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9727                 ZERO_STRUCTP(r->out.count_returned);
9728                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9729                 ZERO_STRUCTP(r->out.total_entries);
9730                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
9731                 ZERO_STRUCTP(r->out.next_reference);
9732                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9733                 *r->out.recordid = *r->in.recordid;
9734         }
9735         if (flags & NDR_OUT) {
9736                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9737                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9738                 }
9739                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9740                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9741                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9742                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9743                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9744                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9745                 }
9746                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9747                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9748                 {
9749                         struct ndr_pull *_ndr_buffer;
9750                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9751                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9752                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9753                 }
9754                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9755                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9756                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9757                 }
9758                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9759                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9760                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9761                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9762                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9763                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9764                 }
9765                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9766                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9767                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9768                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9769                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9770                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
9771                 }
9772                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
9773                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
9774                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
9775                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
9776                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9777                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9778                 }
9779                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9780                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9781                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9782                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9783                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9784         }
9785         return NDR_ERR_SUCCESS;
9786 }
9787
9788 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
9789 {
9790         ndr_print_struct(ndr, name, "netr_AccountSync");
9791         ndr->depth++;
9792         if (flags & NDR_SET_VALUES) {
9793                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9794         }
9795         if (flags & NDR_IN) {
9796                 ndr_print_struct(ndr, "in", "netr_AccountSync");
9797                 ndr->depth++;
9798                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9799                 ndr->depth++;
9800                 if (r->in.logon_server) {
9801                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9802                 }
9803                 ndr->depth--;
9804                 ndr_print_string(ndr, "computername", r->in.computername);
9805                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9806                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9807                 ndr->depth++;
9808                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9809                 ndr->depth--;
9810                 ndr_print_uint32(ndr, "reference", r->in.reference);
9811                 ndr_print_uint32(ndr, "level", r->in.level);
9812                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9813                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
9814                 ndr->depth++;
9815                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
9816                 ndr->depth--;
9817                 ndr->depth--;
9818         }
9819         if (flags & NDR_OUT) {
9820                 ndr_print_struct(ndr, "out", "netr_AccountSync");
9821                 ndr->depth++;
9822                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9823                 ndr->depth++;
9824                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9825                 ndr->depth--;
9826                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9827                 ndr->depth++;
9828                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9829                 ndr->depth--;
9830                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9831                 ndr->depth++;
9832                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9833                 ndr->depth--;
9834                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9835                 ndr->depth++;
9836                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9837                 ndr->depth--;
9838                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
9839                 ndr->depth++;
9840                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
9841                 ndr->depth--;
9842                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9843                 ndr->depth++;
9844                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9845                 ndr->depth--;
9846                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9847                 ndr->depth--;
9848         }
9849         ndr->depth--;
9850 }
9851
9852 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
9853 {
9854         if (flags & NDR_IN) {
9855                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9856                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9857                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9858                 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));
9859                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
9860                 if (r->in.domainname) {
9861                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9862                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9863                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9864                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9865                 }
9866         }
9867         if (flags & NDR_OUT) {
9868                 if (r->out.dcname == NULL) {
9869                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9870                 }
9871                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
9872                 if (*r->out.dcname) {
9873                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9874                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9875                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9876                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9877                 }
9878                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9879         }
9880         return NDR_ERR_SUCCESS;
9881 }
9882
9883 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
9884 {
9885         uint32_t _ptr_domainname;
9886         uint32_t _ptr_dcname;
9887         TALLOC_CTX *_mem_save_domainname_0;
9888         TALLOC_CTX *_mem_save_dcname_0;
9889         TALLOC_CTX *_mem_save_dcname_1;
9890         if (flags & NDR_IN) {
9891                 ZERO_STRUCT(r->out);
9892
9893                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9894                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9895                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9896                         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));
9897                 }
9898                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9899                 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));
9900                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
9901                 if (_ptr_domainname) {
9902                         NDR_PULL_ALLOC(ndr, r->in.domainname);
9903                 } else {
9904                         r->in.domainname = NULL;
9905                 }
9906                 if (r->in.domainname) {
9907                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9908                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
9909                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
9910                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
9911                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
9912                                 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));
9913                         }
9914                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
9915                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
9916                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
9917                 }
9918                 NDR_PULL_ALLOC(ndr, r->out.dcname);
9919                 ZERO_STRUCTP(r->out.dcname);
9920         }
9921         if (flags & NDR_OUT) {
9922                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9923                         NDR_PULL_ALLOC(ndr, r->out.dcname);
9924                 }
9925                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9926                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
9927                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
9928                 if (_ptr_dcname) {
9929                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
9930                 } else {
9931                         *r->out.dcname = NULL;
9932                 }
9933                 if (*r->out.dcname) {
9934                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
9935                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
9936                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
9937                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
9938                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
9939                                 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));
9940                         }
9941                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
9942                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
9943                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
9944                 }
9945                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
9946                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9947         }
9948         return NDR_ERR_SUCCESS;
9949 }
9950
9951 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
9952 {
9953         ndr_print_struct(ndr, name, "netr_GetDcName");
9954         ndr->depth++;
9955         if (flags & NDR_SET_VALUES) {
9956                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9957         }
9958         if (flags & NDR_IN) {
9959                 ndr_print_struct(ndr, "in", "netr_GetDcName");
9960                 ndr->depth++;
9961                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9962                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
9963                 ndr->depth++;
9964                 if (r->in.domainname) {
9965                         ndr_print_string(ndr, "domainname", r->in.domainname);
9966                 }
9967                 ndr->depth--;
9968                 ndr->depth--;
9969         }
9970         if (flags & NDR_OUT) {
9971                 ndr_print_struct(ndr, "out", "netr_GetDcName");
9972                 ndr->depth++;
9973                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
9974                 ndr->depth++;
9975                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
9976                 ndr->depth++;
9977                 if (*r->out.dcname) {
9978                         ndr_print_string(ndr, "dcname", *r->out.dcname);
9979                 }
9980                 ndr->depth--;
9981                 ndr->depth--;
9982                 ndr_print_WERROR(ndr, "result", r->out.result);
9983                 ndr->depth--;
9984         }
9985         ndr->depth--;
9986 }
9987
9988 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
9989 {
9990         if (flags & NDR_IN) {
9991                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9992                 if (r->in.logon_server) {
9993                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9994                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9995                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9996                         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));
9997                 }
9998                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
9999                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10000         }
10001         if (flags & NDR_OUT) {
10002                 if (r->out.info == NULL) {
10003                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10004                 }
10005                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
10006                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10007                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10008         }
10009         return NDR_ERR_SUCCESS;
10010 }
10011
10012 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
10013 {
10014         uint32_t _ptr_logon_server;
10015         TALLOC_CTX *_mem_save_logon_server_0;
10016         TALLOC_CTX *_mem_save_info_0;
10017         if (flags & NDR_IN) {
10018                 ZERO_STRUCT(r->out);
10019
10020                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10021                 if (_ptr_logon_server) {
10022                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10023                 } else {
10024                         r->in.logon_server = NULL;
10025                 }
10026                 if (r->in.logon_server) {
10027                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10028                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10029                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10030                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10031                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10032                                 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));
10033                         }
10034                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10035                         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));
10036                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10037                 }
10038                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10039                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10040                 NDR_PULL_ALLOC(ndr, r->out.info);
10041                 ZERO_STRUCTP(r->out.info);
10042         }
10043         if (flags & NDR_OUT) {
10044                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10045                         NDR_PULL_ALLOC(ndr, r->out.info);
10046                 }
10047                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10048                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10049                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
10050                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10051                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10052                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10053         }
10054         return NDR_ERR_SUCCESS;
10055 }
10056
10057 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
10058 {
10059         ndr_print_struct(ndr, name, "netr_LogonControl");
10060         ndr->depth++;
10061         if (flags & NDR_SET_VALUES) {
10062                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10063         }
10064         if (flags & NDR_IN) {
10065                 ndr_print_struct(ndr, "in", "netr_LogonControl");
10066                 ndr->depth++;
10067                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10068                 ndr->depth++;
10069                 if (r->in.logon_server) {
10070                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10071                 }
10072                 ndr->depth--;
10073                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10074                 ndr_print_uint32(ndr, "level", r->in.level);
10075                 ndr->depth--;
10076         }
10077         if (flags & NDR_OUT) {
10078                 ndr_print_struct(ndr, "out", "netr_LogonControl");
10079                 ndr->depth++;
10080                 ndr_print_ptr(ndr, "info", r->out.info);
10081                 ndr->depth++;
10082                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10083                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
10084                 ndr->depth--;
10085                 ndr_print_WERROR(ndr, "result", r->out.result);
10086                 ndr->depth--;
10087         }
10088         ndr->depth--;
10089 }
10090
10091 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
10092 {
10093         if (flags & NDR_IN) {
10094                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10095                 if (r->in.logon_server) {
10096                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10097                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10098                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10099                         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));
10100                 }
10101                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10102                 if (r->in.domainname) {
10103                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10104                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10105                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10106                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10107                 }
10108         }
10109         if (flags & NDR_OUT) {
10110                 if (r->out.dcname == NULL) {
10111                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10112                 }
10113                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10114                 if (*r->out.dcname) {
10115                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10116                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10117                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10118                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10119                 }
10120                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10121         }
10122         return NDR_ERR_SUCCESS;
10123 }
10124
10125 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
10126 {
10127         uint32_t _ptr_logon_server;
10128         uint32_t _ptr_domainname;
10129         uint32_t _ptr_dcname;
10130         TALLOC_CTX *_mem_save_logon_server_0;
10131         TALLOC_CTX *_mem_save_domainname_0;
10132         TALLOC_CTX *_mem_save_dcname_0;
10133         TALLOC_CTX *_mem_save_dcname_1;
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_generic_ptr(ndr, &_ptr_domainname));
10156                 if (_ptr_domainname) {
10157                         NDR_PULL_ALLOC(ndr, r->in.domainname);
10158                 } else {
10159                         r->in.domainname = NULL;
10160                 }
10161                 if (r->in.domainname) {
10162                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10163                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
10164                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
10165                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
10166                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
10167                                 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));
10168                         }
10169                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
10170                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
10171                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
10172                 }
10173                 NDR_PULL_ALLOC(ndr, r->out.dcname);
10174                 ZERO_STRUCTP(r->out.dcname);
10175         }
10176         if (flags & NDR_OUT) {
10177                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10178                         NDR_PULL_ALLOC(ndr, r->out.dcname);
10179                 }
10180                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10181                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
10182                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
10183                 if (_ptr_dcname) {
10184                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
10185                 } else {
10186                         *r->out.dcname = NULL;
10187                 }
10188                 if (*r->out.dcname) {
10189                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
10190                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
10191                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
10192                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
10193                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
10194                                 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));
10195                         }
10196                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
10197                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
10198                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
10199                 }
10200                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
10201                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10202         }
10203         return NDR_ERR_SUCCESS;
10204 }
10205
10206 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
10207 {
10208         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
10209         ndr->depth++;
10210         if (flags & NDR_SET_VALUES) {
10211                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10212         }
10213         if (flags & NDR_IN) {
10214                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
10215                 ndr->depth++;
10216                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10217                 ndr->depth++;
10218                 if (r->in.logon_server) {
10219                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10220                 }
10221                 ndr->depth--;
10222                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
10223                 ndr->depth++;
10224                 if (r->in.domainname) {
10225                         ndr_print_string(ndr, "domainname", r->in.domainname);
10226                 }
10227                 ndr->depth--;
10228                 ndr->depth--;
10229         }
10230         if (flags & NDR_OUT) {
10231                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
10232                 ndr->depth++;
10233                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
10234                 ndr->depth++;
10235                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
10236                 ndr->depth++;
10237                 if (*r->out.dcname) {
10238                         ndr_print_string(ndr, "dcname", *r->out.dcname);
10239                 }
10240                 ndr->depth--;
10241                 ndr->depth--;
10242                 ndr_print_WERROR(ndr, "result", r->out.result);
10243                 ndr->depth--;
10244         }
10245         ndr->depth--;
10246 }
10247
10248 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
10249 {
10250         if (flags & NDR_IN) {
10251                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10252                 if (r->in.logon_server) {
10253                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10254                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10255                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10256                         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));
10257                 }
10258                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
10259                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10260                 if (r->in.data == NULL) {
10261                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10262                 }
10263                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
10264                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10265         }
10266         if (flags & NDR_OUT) {
10267                 if (r->out.query == NULL) {
10268                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10269                 }
10270                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10271                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10272                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10273         }
10274         return NDR_ERR_SUCCESS;
10275 }
10276
10277 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
10278 {
10279         uint32_t _ptr_logon_server;
10280         TALLOC_CTX *_mem_save_logon_server_0;
10281         TALLOC_CTX *_mem_save_data_0;
10282         TALLOC_CTX *_mem_save_query_0;
10283         if (flags & NDR_IN) {
10284                 ZERO_STRUCT(r->out);
10285
10286                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10287                 if (_ptr_logon_server) {
10288                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10289                 } else {
10290                         r->in.logon_server = NULL;
10291                 }
10292                 if (r->in.logon_server) {
10293                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10294                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10295                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10296                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10297                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10298                                 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));
10299                         }
10300                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10301                         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));
10302                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10303                 }
10304                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10305                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10306                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10307                         NDR_PULL_ALLOC(ndr, r->in.data);
10308                 }
10309                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
10310                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
10311                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
10312                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10313                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
10314                 NDR_PULL_ALLOC(ndr, r->out.query);
10315                 ZERO_STRUCTP(r->out.query);
10316         }
10317         if (flags & NDR_OUT) {
10318                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10319                         NDR_PULL_ALLOC(ndr, r->out.query);
10320                 }
10321                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10322                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10323                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10324                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10325                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10326                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10327         }
10328         return NDR_ERR_SUCCESS;
10329 }
10330
10331 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
10332 {
10333         ndr_print_struct(ndr, name, "netr_LogonControl2");
10334         ndr->depth++;
10335         if (flags & NDR_SET_VALUES) {
10336                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10337         }
10338         if (flags & NDR_IN) {
10339                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
10340                 ndr->depth++;
10341                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10342                 ndr->depth++;
10343                 if (r->in.logon_server) {
10344                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10345                 }
10346                 ndr->depth--;
10347                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10348                 ndr_print_uint32(ndr, "level", r->in.level);
10349                 ndr_print_ptr(ndr, "data", r->in.data);
10350                 ndr->depth++;
10351                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
10352                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
10353                 ndr->depth--;
10354                 ndr->depth--;
10355         }
10356         if (flags & NDR_OUT) {
10357                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
10358                 ndr->depth++;
10359                 ndr_print_ptr(ndr, "query", r->out.query);
10360                 ndr->depth++;
10361                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10362                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10363                 ndr->depth--;
10364                 ndr_print_WERROR(ndr, "result", r->out.result);
10365                 ndr->depth--;
10366         }
10367         ndr->depth--;
10368 }
10369
10370 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
10371 {
10372         if (flags & NDR_IN) {
10373                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10374                 if (r->in.server_name) {
10375                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10376                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10377                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10378                         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));
10379                 }
10380                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10381                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10382                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10383                 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));
10384                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10385                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10386                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10387                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10388                 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));
10389                 if (r->in.credentials == NULL) {
10390                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10391                 }
10392                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10393                 if (r->in.negotiate_flags == NULL) {
10394                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10395                 }
10396                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
10397         }
10398         if (flags & NDR_OUT) {
10399                 if (r->out.return_credentials == NULL) {
10400                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10401                 }
10402                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10403                 if (r->out.negotiate_flags == NULL) {
10404                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10405                 }
10406                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
10407                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10408         }
10409         return NDR_ERR_SUCCESS;
10410 }
10411
10412 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
10413 {
10414         uint32_t _ptr_server_name;
10415         TALLOC_CTX *_mem_save_server_name_0;
10416         TALLOC_CTX *_mem_save_credentials_0;
10417         TALLOC_CTX *_mem_save_return_credentials_0;
10418         TALLOC_CTX *_mem_save_negotiate_flags_0;
10419         if (flags & NDR_IN) {
10420                 ZERO_STRUCT(r->out);
10421
10422                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10423                 if (_ptr_server_name) {
10424                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10425                 } else {
10426                         r->in.server_name = NULL;
10427                 }
10428                 if (r->in.server_name) {
10429                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10430                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10431                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10432                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10433                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10434                                 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));
10435                         }
10436                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10437                         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));
10438                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10439                 }
10440                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10441                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10442                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10443                         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));
10444                 }
10445                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10446                 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));
10447                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10448                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10449                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10450                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10451                         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));
10452                 }
10453                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10454                 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));
10455                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10456                         NDR_PULL_ALLOC(ndr, r->in.credentials);
10457                 }
10458                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10459                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10460                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10461                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10462                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10463                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
10464                 }
10465                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10466                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10467                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
10468                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10469                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10470                 ZERO_STRUCTP(r->out.return_credentials);
10471                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10472                 *r->out.negotiate_flags = *r->in.negotiate_flags;
10473         }
10474         if (flags & NDR_OUT) {
10475                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10476                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10477                 }
10478                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10479                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
10480                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10481                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10482                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10483                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10484                 }
10485                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10486                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10487                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
10488                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10489                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10490         }
10491         return NDR_ERR_SUCCESS;
10492 }
10493
10494 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
10495 {
10496         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
10497         ndr->depth++;
10498         if (flags & NDR_SET_VALUES) {
10499                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10500         }
10501         if (flags & NDR_IN) {
10502                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
10503                 ndr->depth++;
10504                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10505                 ndr->depth++;
10506                 if (r->in.server_name) {
10507                         ndr_print_string(ndr, "server_name", r->in.server_name);
10508                 }
10509                 ndr->depth--;
10510                 ndr_print_string(ndr, "account_name", r->in.account_name);
10511                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10512                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10513                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10514                 ndr->depth++;
10515                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10516                 ndr->depth--;
10517                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
10518                 ndr->depth++;
10519                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
10520                 ndr->depth--;
10521                 ndr->depth--;
10522         }
10523         if (flags & NDR_OUT) {
10524                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
10525                 ndr->depth++;
10526                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
10527                 ndr->depth++;
10528                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
10529                 ndr->depth--;
10530                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
10531                 ndr->depth++;
10532                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
10533                 ndr->depth--;
10534                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10535                 ndr->depth--;
10536         }
10537         ndr->depth--;
10538 }
10539
10540 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
10541 {
10542         if (flags & NDR_IN) {
10543                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10544                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10545                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10546                 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));
10547                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10548                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10549                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10550                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10551                 if (r->in.credential == NULL) {
10552                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10553                 }
10554                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10555                 if (r->in.return_authenticator == NULL) {
10556                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10557                 }
10558                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10559                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10560                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
10561                 if (r->in.sync_context == NULL) {
10562                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10563                 }
10564                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10565                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10566         }
10567         if (flags & NDR_OUT) {
10568                 if (r->out.return_authenticator == NULL) {
10569                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10570                 }
10571                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10572                 if (r->out.sync_context == NULL) {
10573                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10574                 }
10575                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10576                 if (r->out.delta_enum_array == NULL) {
10577                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10578                 }
10579                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10580                 if (*r->out.delta_enum_array) {
10581                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10582                 }
10583                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10584         }
10585         return NDR_ERR_SUCCESS;
10586 }
10587
10588 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
10589 {
10590         uint32_t _ptr_delta_enum_array;
10591         TALLOC_CTX *_mem_save_credential_0;
10592         TALLOC_CTX *_mem_save_return_authenticator_0;
10593         TALLOC_CTX *_mem_save_sync_context_0;
10594         TALLOC_CTX *_mem_save_delta_enum_array_0;
10595         TALLOC_CTX *_mem_save_delta_enum_array_1;
10596         if (flags & NDR_IN) {
10597                 ZERO_STRUCT(r->out);
10598
10599                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10600                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10601                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10602                         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));
10603                 }
10604                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10605                 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));
10606                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10607                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10608                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10609                         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));
10610                 }
10611                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10612                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10613                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10614                         NDR_PULL_ALLOC(ndr, r->in.credential);
10615                 }
10616                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10617                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10618                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10619                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10620                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10621                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10622                 }
10623                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10624                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10625                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10626                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10627                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10628                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
10629                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10630                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
10631                 }
10632                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10633                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10634                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10635                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10636                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10637                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10638                 *r->out.return_authenticator = *r->in.return_authenticator;
10639                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10640                 *r->out.sync_context = *r->in.sync_context;
10641                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10642                 ZERO_STRUCTP(r->out.delta_enum_array);
10643         }
10644         if (flags & NDR_OUT) {
10645                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10646                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10647                 }
10648                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10649                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10650                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10651                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10652                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10653                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
10654                 }
10655                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10656                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10657                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10658                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10659                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10660                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10661                 }
10662                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10663                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10664                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10665                 if (_ptr_delta_enum_array) {
10666                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10667                 } else {
10668                         *r->out.delta_enum_array = NULL;
10669                 }
10670                 if (*r->out.delta_enum_array) {
10671                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10672                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10673                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10674                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10675                 }
10676                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10677                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10678         }
10679         return NDR_ERR_SUCCESS;
10680 }
10681
10682 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
10683 {
10684         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
10685         ndr->depth++;
10686         if (flags & NDR_SET_VALUES) {
10687                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10688         }
10689         if (flags & NDR_IN) {
10690                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
10691                 ndr->depth++;
10692                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10693                 ndr_print_string(ndr, "computername", r->in.computername);
10694                 ndr_print_ptr(ndr, "credential", r->in.credential);
10695                 ndr->depth++;
10696                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10697                 ndr->depth--;
10698                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10699                 ndr->depth++;
10700                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10701                 ndr->depth--;
10702                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10703                 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
10704                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10705                 ndr->depth++;
10706                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10707                 ndr->depth--;
10708                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10709                 ndr->depth--;
10710         }
10711         if (flags & NDR_OUT) {
10712                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
10713                 ndr->depth++;
10714                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10715                 ndr->depth++;
10716                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10717                 ndr->depth--;
10718                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10719                 ndr->depth++;
10720                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10721                 ndr->depth--;
10722                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10723                 ndr->depth++;
10724                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10725                 ndr->depth++;
10726                 if (*r->out.delta_enum_array) {
10727                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10728                 }
10729                 ndr->depth--;
10730                 ndr->depth--;
10731                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10732                 ndr->depth--;
10733         }
10734         ndr->depth--;
10735 }
10736
10737 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
10738 {
10739         if (flags & NDR_IN) {
10740                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10741                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10742                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10743                 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));
10744                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10745                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10746                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10747                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10748                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10749                 if (r->in.return_authenticator == NULL) {
10750                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10751                 }
10752                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10753                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.change_log_entry));
10754                 if (r->in.change_log_entry) {
10755                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10756                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, r->in.change_log_entry_size));
10757                 }
10758                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10759         }
10760         if (flags & NDR_OUT) {
10761                 if (r->out.return_authenticator == NULL) {
10762                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10763                 }
10764                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10765                 if (r->out.delta_enum_array == NULL) {
10766                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10767                 }
10768                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10769                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10770         }
10771         return NDR_ERR_SUCCESS;
10772 }
10773
10774 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
10775 {
10776         uint32_t _ptr_change_log_entry;
10777         TALLOC_CTX *_mem_save_return_authenticator_0;
10778         TALLOC_CTX *_mem_save_change_log_entry_0;
10779         TALLOC_CTX *_mem_save_delta_enum_array_0;
10780         if (flags & NDR_IN) {
10781                 ZERO_STRUCT(r->out);
10782
10783                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10784                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10785                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10786                         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));
10787                 }
10788                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10789                 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));
10790                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10791                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10792                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10793                         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));
10794                 }
10795                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10796                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10797                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10798                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10799                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10800                 }
10801                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10802                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10803                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10804                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10805                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_change_log_entry));
10806                 if (_ptr_change_log_entry) {
10807                         NDR_PULL_ALLOC(ndr, r->in.change_log_entry);
10808                 } else {
10809                         r->in.change_log_entry = NULL;
10810                 }
10811                 if (r->in.change_log_entry) {
10812                         _mem_save_change_log_entry_0 = NDR_PULL_GET_MEM_CTX(ndr);
10813                         NDR_PULL_SET_MEM_CTX(ndr, r->in.change_log_entry, 0);
10814                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.change_log_entry));
10815                         NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry));
10816                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry)));
10817                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_change_log_entry_0, 0);
10818                 }
10819                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
10820                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10821                 *r->out.return_authenticator = *r->in.return_authenticator;
10822                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10823                 ZERO_STRUCTP(r->out.delta_enum_array);
10824                 if (r->in.change_log_entry) {
10825                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.change_log_entry, r->in.change_log_entry_size));
10826                 }
10827         }
10828         if (flags & NDR_OUT) {
10829                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10830                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10831                 }
10832                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10833                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10834                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10835                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10836                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10837                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10838                 }
10839                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10840                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10841                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10842                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10843                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10844         }
10845         return NDR_ERR_SUCCESS;
10846 }
10847
10848 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
10849 {
10850         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
10851         ndr->depth++;
10852         if (flags & NDR_SET_VALUES) {
10853                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10854         }
10855         if (flags & NDR_IN) {
10856                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
10857                 ndr->depth++;
10858                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10859                 ndr_print_string(ndr, "computername", r->in.computername);
10860                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10861                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10862                 ndr->depth++;
10863                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10864                 ndr->depth--;
10865                 ndr_print_ptr(ndr, "change_log_entry", r->in.change_log_entry);
10866                 ndr->depth++;
10867                 if (r->in.change_log_entry) {
10868                         ndr_print_array_uint8(ndr, "change_log_entry", r->in.change_log_entry, r->in.change_log_entry_size);
10869                 }
10870                 ndr->depth--;
10871                 ndr_print_uint32(ndr, "change_log_entry_size", r->in.change_log_entry_size);
10872                 ndr->depth--;
10873         }
10874         if (flags & NDR_OUT) {
10875                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
10876                 ndr->depth++;
10877                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10878                 ndr->depth++;
10879                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10880                 ndr->depth--;
10881                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10882                 ndr->depth++;
10883                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
10884                 ndr->depth--;
10885                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10886                 ndr->depth--;
10887         }
10888         ndr->depth--;
10889 }
10890
10891 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
10892 {
10893         if (flags & NDR_IN) {
10894                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10895                 if (r->in.logon_server) {
10896                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10897                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10898                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10899                         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));
10900                 }
10901                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10902                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10903                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
10904                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10905         }
10906         if (flags & NDR_OUT) {
10907                 if (r->out.query == NULL) {
10908                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10909                 }
10910                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10911                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10912                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10913         }
10914         return NDR_ERR_SUCCESS;
10915 }
10916
10917 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
10918 {
10919         uint32_t _ptr_logon_server;
10920         TALLOC_CTX *_mem_save_logon_server_0;
10921         TALLOC_CTX *_mem_save_query_0;
10922         if (flags & NDR_IN) {
10923                 ZERO_STRUCT(r->out);
10924
10925                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10926                 if (_ptr_logon_server) {
10927                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10928                 } else {
10929                         r->in.logon_server = NULL;
10930                 }
10931                 if (r->in.logon_server) {
10932                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10933                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10934                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10935                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10936                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10937                                 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));
10938                         }
10939                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10940                         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));
10941                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10942                 }
10943                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10944                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10945                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
10946                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10947                 NDR_PULL_ALLOC(ndr, r->out.query);
10948                 ZERO_STRUCTP(r->out.query);
10949         }
10950         if (flags & NDR_OUT) {
10951                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10952                         NDR_PULL_ALLOC(ndr, r->out.query);
10953                 }
10954                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10955                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10956                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10957                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10958                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10959                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10960         }
10961         return NDR_ERR_SUCCESS;
10962 }
10963
10964 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
10965 {
10966         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
10967         ndr->depth++;
10968         if (flags & NDR_SET_VALUES) {
10969                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10970         }
10971         if (flags & NDR_IN) {
10972                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
10973                 ndr->depth++;
10974                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10975                 ndr->depth++;
10976                 if (r->in.logon_server) {
10977                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10978                 }
10979                 ndr->depth--;
10980                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
10981                 ndr_print_uint32(ndr, "level", r->in.level);
10982                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
10983                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
10984                 ndr->depth--;
10985         }
10986         if (flags & NDR_OUT) {
10987                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
10988                 ndr->depth++;
10989                 ndr_print_ptr(ndr, "query", r->out.query);
10990                 ndr->depth++;
10991                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10992                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10993                 ndr->depth--;
10994                 ndr_print_WERROR(ndr, "result", r->out.result);
10995                 ndr->depth--;
10996         }
10997         ndr->depth--;
10998 }
10999
11000 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11001 {
11002         if (flags & NDR_IN) {
11003                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11004                 if (r->in.server_name) {
11005                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11006                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11007                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11008                         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));
11009                 }
11010         }
11011         if (flags & NDR_OUT) {
11012                 if (r->out.trusted_domains_blob == NULL) {
11013                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11014                 }
11015                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11016                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11017         }
11018         return NDR_ERR_SUCCESS;
11019 }
11020
11021 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
11022 {
11023         uint32_t _ptr_server_name;
11024         TALLOC_CTX *_mem_save_server_name_0;
11025         TALLOC_CTX *_mem_save_trusted_domains_blob_0;
11026         if (flags & NDR_IN) {
11027                 ZERO_STRUCT(r->out);
11028
11029                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11030                 if (_ptr_server_name) {
11031                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11032                 } else {
11033                         r->in.server_name = NULL;
11034                 }
11035                 if (r->in.server_name) {
11036                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11037                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11038                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11039                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11040                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11041                                 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));
11042                         }
11043                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11044                         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));
11045                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11046                 }
11047                 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11048                 ZERO_STRUCTP(r->out.trusted_domains_blob);
11049         }
11050         if (flags & NDR_OUT) {
11051                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11052                         NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11053                 }
11054                 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
11055                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
11056                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11057                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
11058                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11059         }
11060         return NDR_ERR_SUCCESS;
11061 }
11062
11063 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11064 {
11065         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
11066         ndr->depth++;
11067         if (flags & NDR_SET_VALUES) {
11068                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11069         }
11070         if (flags & NDR_IN) {
11071                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
11072                 ndr->depth++;
11073                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11074                 ndr->depth++;
11075                 if (r->in.server_name) {
11076                         ndr_print_string(ndr, "server_name", r->in.server_name);
11077                 }
11078                 ndr->depth--;
11079                 ndr->depth--;
11080         }
11081         if (flags & NDR_OUT) {
11082                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
11083                 ndr->depth++;
11084                 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11085                 ndr->depth++;
11086                 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11087                 ndr->depth--;
11088                 ndr_print_WERROR(ndr, "result", r->out.result);
11089                 ndr->depth--;
11090         }
11091         ndr->depth--;
11092 }
11093
11094 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
11095 {
11096         if (flags & NDR_IN) {
11097                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11098                 if (r->in.server_unc) {
11099                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11100                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11101                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11102                         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));
11103                 }
11104                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11105                 if (r->in.domain_name) {
11106                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11107                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11108                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11109                         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));
11110                 }
11111                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11112                 if (r->in.domain_guid) {
11113                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
11114                 }
11115                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
11116                 if (r->in.site_guid) {
11117                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.site_guid));
11118                 }
11119                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11120         }
11121         if (flags & NDR_OUT) {
11122                 if (r->out.info == NULL) {
11123                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11124                 }
11125                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11126                 if (*r->out.info) {
11127                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11128                 }
11129                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11130         }
11131         return NDR_ERR_SUCCESS;
11132 }
11133
11134 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
11135 {
11136         uint32_t _ptr_server_unc;
11137         uint32_t _ptr_domain_name;
11138         uint32_t _ptr_domain_guid;
11139         uint32_t _ptr_site_guid;
11140         uint32_t _ptr_info;
11141         TALLOC_CTX *_mem_save_server_unc_0;
11142         TALLOC_CTX *_mem_save_domain_name_0;
11143         TALLOC_CTX *_mem_save_domain_guid_0;
11144         TALLOC_CTX *_mem_save_site_guid_0;
11145         TALLOC_CTX *_mem_save_info_0;
11146         TALLOC_CTX *_mem_save_info_1;
11147         if (flags & NDR_IN) {
11148                 ZERO_STRUCT(r->out);
11149
11150                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11151                 if (_ptr_server_unc) {
11152                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11153                 } else {
11154                         r->in.server_unc = NULL;
11155                 }
11156                 if (r->in.server_unc) {
11157                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11158                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11159                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11160                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11161                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11162                                 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));
11163                         }
11164                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11165                         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));
11166                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11167                 }
11168                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11169                 if (_ptr_domain_name) {
11170                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11171                 } else {
11172                         r->in.domain_name = NULL;
11173                 }
11174                 if (r->in.domain_name) {
11175                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11176                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11177                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11178                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11179                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11180                                 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));
11181                         }
11182                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11183                         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));
11184                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11185                 }
11186                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11187                 if (_ptr_domain_guid) {
11188                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11189                 } else {
11190                         r->in.domain_guid = NULL;
11191                 }
11192                 if (r->in.domain_guid) {
11193                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11194                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11195                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
11196                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11197                 }
11198                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
11199                 if (_ptr_site_guid) {
11200                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
11201                 } else {
11202                         r->in.site_guid = NULL;
11203                 }
11204                 if (r->in.site_guid) {
11205                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11206                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
11207                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.site_guid));
11208                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
11209                 }
11210                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11211                 NDR_PULL_ALLOC(ndr, r->out.info);
11212                 ZERO_STRUCTP(r->out.info);
11213         }
11214         if (flags & NDR_OUT) {
11215                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11216                         NDR_PULL_ALLOC(ndr, r->out.info);
11217                 }
11218                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11219                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11220                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11221                 if (_ptr_info) {
11222                         NDR_PULL_ALLOC(ndr, *r->out.info);
11223                 } else {
11224                         *r->out.info = NULL;
11225                 }
11226                 if (*r->out.info) {
11227                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11228                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11229                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11230                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11231                 }
11232                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11233                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11234         }
11235         return NDR_ERR_SUCCESS;
11236 }
11237
11238 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
11239 {
11240         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
11241         ndr->depth++;
11242         if (flags & NDR_SET_VALUES) {
11243                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11244         }
11245         if (flags & NDR_IN) {
11246                 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
11247                 ndr->depth++;
11248                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11249                 ndr->depth++;
11250                 if (r->in.server_unc) {
11251                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11252                 }
11253                 ndr->depth--;
11254                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11255                 ndr->depth++;
11256                 if (r->in.domain_name) {
11257                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11258                 }
11259                 ndr->depth--;
11260                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11261                 ndr->depth++;
11262                 if (r->in.domain_guid) {
11263                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11264                 }
11265                 ndr->depth--;
11266                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
11267                 ndr->depth++;
11268                 if (r->in.site_guid) {
11269                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
11270                 }
11271                 ndr->depth--;
11272                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11273                 ndr->depth--;
11274         }
11275         if (flags & NDR_OUT) {
11276                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
11277                 ndr->depth++;
11278                 ndr_print_ptr(ndr, "info", r->out.info);
11279                 ndr->depth++;
11280                 ndr_print_ptr(ndr, "info", *r->out.info);
11281                 ndr->depth++;
11282                 if (*r->out.info) {
11283                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11284                 }
11285                 ndr->depth--;
11286                 ndr->depth--;
11287                 ndr_print_WERROR(ndr, "result", r->out.result);
11288                 ndr->depth--;
11289         }
11290         ndr->depth--;
11291 }
11292
11293 static enum ndr_err_code ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11294 {
11295         if (flags & NDR_IN) {
11296         }
11297         if (flags & NDR_OUT) {
11298                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11299         }
11300         return NDR_ERR_SUCCESS;
11301 }
11302
11303 static enum ndr_err_code ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
11304 {
11305         if (flags & NDR_IN) {
11306         }
11307         if (flags & NDR_OUT) {
11308                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11309         }
11310         return NDR_ERR_SUCCESS;
11311 }
11312
11313 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11314 {
11315         ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
11316         ndr->depth++;
11317         if (flags & NDR_SET_VALUES) {
11318                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11319         }
11320         if (flags & NDR_IN) {
11321                 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
11322                 ndr->depth++;
11323                 ndr->depth--;
11324         }
11325         if (flags & NDR_OUT) {
11326                 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
11327                 ndr->depth++;
11328                 ndr_print_WERROR(ndr, "result", r->out.result);
11329                 ndr->depth--;
11330         }
11331         ndr->depth--;
11332 }
11333
11334 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11335 {
11336         if (flags & NDR_IN) {
11337         }
11338         if (flags & NDR_OUT) {
11339                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11340         }
11341         return NDR_ERR_SUCCESS;
11342 }
11343
11344 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
11345 {
11346         if (flags & NDR_IN) {
11347         }
11348         if (flags & NDR_OUT) {
11349                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11350         }
11351         return NDR_ERR_SUCCESS;
11352 }
11353
11354 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11355 {
11356         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
11357         ndr->depth++;
11358         if (flags & NDR_SET_VALUES) {
11359                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11360         }
11361         if (flags & NDR_IN) {
11362                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
11363                 ndr->depth++;
11364                 ndr->depth--;
11365         }
11366         if (flags & NDR_OUT) {
11367                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
11368                 ndr->depth++;
11369                 ndr_print_WERROR(ndr, "result", r->out.result);
11370                 ndr->depth--;
11371         }
11372         ndr->depth--;
11373 }
11374
11375 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
11376 {
11377         if (flags & NDR_IN) {
11378                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11379                 if (r->in.server_name) {
11380                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11381                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11382                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11383                         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));
11384                 }
11385                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11386                 if (r->in.domain_name) {
11387                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11388                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11389                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11390                         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));
11391                 }
11392         }
11393         if (flags & NDR_OUT) {
11394                 if (r->out.rid == NULL) {
11395                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11396                 }
11397                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11398                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11399         }
11400         return NDR_ERR_SUCCESS;
11401 }
11402
11403 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
11404 {
11405         uint32_t _ptr_server_name;
11406         uint32_t _ptr_domain_name;
11407         TALLOC_CTX *_mem_save_server_name_0;
11408         TALLOC_CTX *_mem_save_domain_name_0;
11409         TALLOC_CTX *_mem_save_rid_0;
11410         if (flags & NDR_IN) {
11411                 ZERO_STRUCT(r->out);
11412
11413                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11414                 if (_ptr_server_name) {
11415                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11416                 } else {
11417                         r->in.server_name = NULL;
11418                 }
11419                 if (r->in.server_name) {
11420                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11421                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11422                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11423                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11424                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11425                                 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));
11426                         }
11427                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11428                         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));
11429                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11430                 }
11431                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11432                 if (_ptr_domain_name) {
11433                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11434                 } else {
11435                         r->in.domain_name = NULL;
11436                 }
11437                 if (r->in.domain_name) {
11438                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11439                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11440                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11441                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11442                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11443                                 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));
11444                         }
11445                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11446                         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));
11447                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11448                 }
11449                 NDR_PULL_ALLOC(ndr, r->out.rid);
11450                 ZERO_STRUCTP(r->out.rid);
11451         }
11452         if (flags & NDR_OUT) {
11453                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11454                         NDR_PULL_ALLOC(ndr, r->out.rid);
11455                 }
11456                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11457                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11458                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11459                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11460                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11461         }
11462         return NDR_ERR_SUCCESS;
11463 }
11464
11465 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
11466 {
11467         ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
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_LogonGetTrustRid");
11474                 ndr->depth++;
11475                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11476                 ndr->depth++;
11477                 if (r->in.server_name) {
11478                         ndr_print_string(ndr, "server_name", r->in.server_name);
11479                 }
11480                 ndr->depth--;
11481                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11482                 ndr->depth++;
11483                 if (r->in.domain_name) {
11484                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11485                 }
11486                 ndr->depth--;
11487                 ndr->depth--;
11488         }
11489         if (flags & NDR_OUT) {
11490                 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
11491                 ndr->depth++;
11492                 ndr_print_ptr(ndr, "rid", r->out.rid);
11493                 ndr->depth++;
11494                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11495                 ndr->depth--;
11496                 ndr_print_WERROR(ndr, "result", r->out.result);
11497                 ndr->depth--;
11498         }
11499         ndr->depth--;
11500 }
11501
11502 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11503 {
11504         if (flags & NDR_IN) {
11505         }
11506         if (flags & NDR_OUT) {
11507                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11508         }
11509         return NDR_ERR_SUCCESS;
11510 }
11511
11512 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11513 {
11514         if (flags & NDR_IN) {
11515         }
11516         if (flags & NDR_OUT) {
11517                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11518         }
11519         return NDR_ERR_SUCCESS;
11520 }
11521
11522 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11523 {
11524         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
11525         ndr->depth++;
11526         if (flags & NDR_SET_VALUES) {
11527                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11528         }
11529         if (flags & NDR_IN) {
11530                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11531                 ndr->depth++;
11532                 ndr->depth--;
11533         }
11534         if (flags & NDR_OUT) {
11535                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11536                 ndr->depth++;
11537                 ndr_print_WERROR(ndr, "result", r->out.result);
11538                 ndr->depth--;
11539         }
11540         ndr->depth--;
11541 }
11542
11543 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11544 {
11545         if (flags & NDR_IN) {
11546         }
11547         if (flags & NDR_OUT) {
11548                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11549         }
11550         return NDR_ERR_SUCCESS;
11551 }
11552
11553 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11554 {
11555         if (flags & NDR_IN) {
11556         }
11557         if (flags & NDR_OUT) {
11558                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11559         }
11560         return NDR_ERR_SUCCESS;
11561 }
11562
11563 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11564 {
11565         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11566         ndr->depth++;
11567         if (flags & NDR_SET_VALUES) {
11568                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11569         }
11570         if (flags & NDR_IN) {
11571                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11572                 ndr->depth++;
11573                 ndr->depth--;
11574         }
11575         if (flags & NDR_OUT) {
11576                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11577                 ndr->depth++;
11578                 ndr_print_WERROR(ndr, "result", r->out.result);
11579                 ndr->depth--;
11580         }
11581         ndr->depth--;
11582 }
11583
11584 static enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
11585 {
11586         if (flags & NDR_IN) {
11587                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11588                 if (r->in.server_name) {
11589                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11590                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11591                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11592                         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));
11593                 }
11594                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11595                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11596                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11597                 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));
11598                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11599                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11600                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11601                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11602                 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));
11603                 if (r->in.credentials == NULL) {
11604                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11605                 }
11606                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11607                 if (r->in.negotiate_flags == NULL) {
11608                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11609                 }
11610                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11611         }
11612         if (flags & NDR_OUT) {
11613                 if (r->out.credentials == NULL) {
11614                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11615                 }
11616                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11617                 if (r->out.negotiate_flags == NULL) {
11618                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11619                 }
11620                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11621                 if (r->out.rid == NULL) {
11622                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11623                 }
11624                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11625                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11626         }
11627         return NDR_ERR_SUCCESS;
11628 }
11629
11630 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
11631 {
11632         uint32_t _ptr_server_name;
11633         TALLOC_CTX *_mem_save_server_name_0;
11634         TALLOC_CTX *_mem_save_credentials_0;
11635         TALLOC_CTX *_mem_save_negotiate_flags_0;
11636         TALLOC_CTX *_mem_save_rid_0;
11637         if (flags & NDR_IN) {
11638                 ZERO_STRUCT(r->out);
11639
11640                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11641                 if (_ptr_server_name) {
11642                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11643                 } else {
11644                         r->in.server_name = NULL;
11645                 }
11646                 if (r->in.server_name) {
11647                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11648                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11649                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11650                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11651                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11652                                 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));
11653                         }
11654                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11655                         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));
11656                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11657                 }
11658                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11659                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11660                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11661                         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));
11662                 }
11663                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11664                 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));
11665                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11666                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11667                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11668                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11669                         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));
11670                 }
11671                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11672                 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));
11673                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11674                         NDR_PULL_ALLOC(ndr, r->in.credentials);
11675                 }
11676                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11677                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11678                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11679                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11680                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11681                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11682                 }
11683                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11684                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11685                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
11686                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11687                 NDR_PULL_ALLOC(ndr, r->out.credentials);
11688                 *r->out.credentials = *r->in.credentials;
11689                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11690                 *r->out.negotiate_flags = *r->in.negotiate_flags;
11691                 NDR_PULL_ALLOC(ndr, r->out.rid);
11692                 ZERO_STRUCTP(r->out.rid);
11693         }
11694         if (flags & NDR_OUT) {
11695                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11696                         NDR_PULL_ALLOC(ndr, r->out.credentials);
11697                 }
11698                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11699                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
11700                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11701                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11702                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11703                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11704                 }
11705                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11706                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11707                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
11708                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11709                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11710                         NDR_PULL_ALLOC(ndr, r->out.rid);
11711                 }
11712                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11713                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11714                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11715                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11716                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11717         }
11718         return NDR_ERR_SUCCESS;
11719 }
11720
11721 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
11722 {
11723         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
11724         ndr->depth++;
11725         if (flags & NDR_SET_VALUES) {
11726                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11727         }
11728         if (flags & NDR_IN) {
11729                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
11730                 ndr->depth++;
11731                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11732                 ndr->depth++;
11733                 if (r->in.server_name) {
11734                         ndr_print_string(ndr, "server_name", r->in.server_name);
11735                 }
11736                 ndr->depth--;
11737                 ndr_print_string(ndr, "account_name", r->in.account_name);
11738                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11739                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11740                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11741                 ndr->depth++;
11742                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11743                 ndr->depth--;
11744                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11745                 ndr->depth++;
11746                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
11747                 ndr->depth--;
11748                 ndr->depth--;
11749         }
11750         if (flags & NDR_OUT) {
11751                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
11752                 ndr->depth++;
11753                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
11754                 ndr->depth++;
11755                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
11756                 ndr->depth--;
11757                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11758                 ndr->depth++;
11759                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
11760                 ndr->depth--;
11761                 ndr_print_ptr(ndr, "rid", r->out.rid);
11762                 ndr->depth++;
11763                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11764                 ndr->depth--;
11765                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11766                 ndr->depth--;
11767         }
11768         ndr->depth--;
11769 }
11770
11771 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
11772 {
11773         if (flags & NDR_IN) {
11774                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11775                 if (r->in.server_unc) {
11776                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11777                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11778                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11779                         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));
11780                 }
11781                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11782                 if (r->in.domain_name) {
11783                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11784                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11785                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11786                         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));
11787                 }
11788                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11789                 if (r->in.domain_guid) {
11790                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
11791                 }
11792                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
11793                 if (r->in.site_name) {
11794                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11795                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11796                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11797                         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));
11798                 }
11799                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11800         }
11801         if (flags & NDR_OUT) {
11802                 if (r->out.info == NULL) {
11803                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11804                 }
11805                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11806                 if (*r->out.info) {
11807                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11808                 }
11809                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11810         }
11811         return NDR_ERR_SUCCESS;
11812 }
11813
11814 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
11815 {
11816         uint32_t _ptr_server_unc;
11817         uint32_t _ptr_domain_name;
11818         uint32_t _ptr_domain_guid;
11819         uint32_t _ptr_site_name;
11820         uint32_t _ptr_info;
11821         TALLOC_CTX *_mem_save_server_unc_0;
11822         TALLOC_CTX *_mem_save_domain_name_0;
11823         TALLOC_CTX *_mem_save_domain_guid_0;
11824         TALLOC_CTX *_mem_save_site_name_0;
11825         TALLOC_CTX *_mem_save_info_0;
11826         TALLOC_CTX *_mem_save_info_1;
11827         if (flags & NDR_IN) {
11828                 ZERO_STRUCT(r->out);
11829
11830                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11831                 if (_ptr_server_unc) {
11832                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11833                 } else {
11834                         r->in.server_unc = NULL;
11835                 }
11836                 if (r->in.server_unc) {
11837                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11838                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11839                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11840                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11841                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11842                                 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));
11843                         }
11844                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11845                         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));
11846                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11847                 }
11848                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11849                 if (_ptr_domain_name) {
11850                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11851                 } else {
11852                         r->in.domain_name = NULL;
11853                 }
11854                 if (r->in.domain_name) {
11855                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11856                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11857                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11858                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11859                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11860                                 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));
11861                         }
11862                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11863                         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));
11864                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11865                 }
11866                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11867                 if (_ptr_domain_guid) {
11868                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11869                 } else {
11870                         r->in.domain_guid = NULL;
11871                 }
11872                 if (r->in.domain_guid) {
11873                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11874                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11875                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
11876                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11877                 }
11878                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
11879                 if (_ptr_site_name) {
11880                         NDR_PULL_ALLOC(ndr, r->in.site_name);
11881                 } else {
11882                         r->in.site_name = NULL;
11883                 }
11884                 if (r->in.site_name) {
11885                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11886                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
11887                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
11888                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
11889                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
11890                                 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));
11891                         }
11892                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
11893                         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));
11894                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
11895                 }
11896                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11897                 NDR_PULL_ALLOC(ndr, r->out.info);
11898                 ZERO_STRUCTP(r->out.info);
11899         }
11900         if (flags & NDR_OUT) {
11901                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11902                         NDR_PULL_ALLOC(ndr, r->out.info);
11903                 }
11904                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11905                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11906                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11907                 if (_ptr_info) {
11908                         NDR_PULL_ALLOC(ndr, *r->out.info);
11909                 } else {
11910                         *r->out.info = NULL;
11911                 }
11912                 if (*r->out.info) {
11913                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11914                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11915                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11916                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11917                 }
11918                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11919                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11920         }
11921         return NDR_ERR_SUCCESS;
11922 }
11923
11924 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
11925 {
11926         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
11927         ndr->depth++;
11928         if (flags & NDR_SET_VALUES) {
11929                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11930         }
11931         if (flags & NDR_IN) {
11932                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
11933                 ndr->depth++;
11934                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11935                 ndr->depth++;
11936                 if (r->in.server_unc) {
11937                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11938                 }
11939                 ndr->depth--;
11940                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11941                 ndr->depth++;
11942                 if (r->in.domain_name) {
11943                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11944                 }
11945                 ndr->depth--;
11946                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11947                 ndr->depth++;
11948                 if (r->in.domain_guid) {
11949                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11950                 }
11951                 ndr->depth--;
11952                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
11953                 ndr->depth++;
11954                 if (r->in.site_name) {
11955                         ndr_print_string(ndr, "site_name", r->in.site_name);
11956                 }
11957                 ndr->depth--;
11958                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11959                 ndr->depth--;
11960         }
11961         if (flags & NDR_OUT) {
11962                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
11963                 ndr->depth++;
11964                 ndr_print_ptr(ndr, "info", r->out.info);
11965                 ndr->depth++;
11966                 ndr_print_ptr(ndr, "info", *r->out.info);
11967                 ndr->depth++;
11968                 if (*r->out.info) {
11969                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11970                 }
11971                 ndr->depth--;
11972                 ndr->depth--;
11973                 ndr_print_WERROR(ndr, "result", r->out.result);
11974                 ndr->depth--;
11975         }
11976         ndr->depth--;
11977 }
11978
11979 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
11980 {
11981         if (flags & NDR_IN) {
11982                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11983                 if (r->in.computer_name) {
11984                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11985                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11986                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11987                         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));
11988                 }
11989         }
11990         if (flags & NDR_OUT) {
11991                 if (r->out.site == NULL) {
11992                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11993                 }
11994                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
11995                 if (*r->out.site) {
11996                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11997                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11998                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11999                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12000                 }
12001                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12002         }
12003         return NDR_ERR_SUCCESS;
12004 }
12005
12006 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
12007 {
12008         uint32_t _ptr_computer_name;
12009         uint32_t _ptr_site;
12010         TALLOC_CTX *_mem_save_computer_name_0;
12011         TALLOC_CTX *_mem_save_site_0;
12012         TALLOC_CTX *_mem_save_site_1;
12013         if (flags & NDR_IN) {
12014                 ZERO_STRUCT(r->out);
12015
12016                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12017                 if (_ptr_computer_name) {
12018                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12019                 } else {
12020                         r->in.computer_name = NULL;
12021                 }
12022                 if (r->in.computer_name) {
12023                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12024                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12025                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12026                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12027                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12028                                 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));
12029                         }
12030                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12031                         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));
12032                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12033                 }
12034                 NDR_PULL_ALLOC(ndr, r->out.site);
12035                 ZERO_STRUCTP(r->out.site);
12036         }
12037         if (flags & NDR_OUT) {
12038                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12039                         NDR_PULL_ALLOC(ndr, r->out.site);
12040                 }
12041                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
12042                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
12043                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
12044                 if (_ptr_site) {
12045                         NDR_PULL_ALLOC(ndr, *r->out.site);
12046                 } else {
12047                         *r->out.site = NULL;
12048                 }
12049                 if (*r->out.site) {
12050                         _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
12051                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
12052                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
12053                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
12054                         if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
12055                                 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));
12056                         }
12057                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
12058                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
12059                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
12060                 }
12061                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
12062                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12063         }
12064         return NDR_ERR_SUCCESS;
12065 }
12066
12067 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
12068 {
12069         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
12070         ndr->depth++;
12071         if (flags & NDR_SET_VALUES) {
12072                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12073         }
12074         if (flags & NDR_IN) {
12075                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
12076                 ndr->depth++;
12077                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12078                 ndr->depth++;
12079                 if (r->in.computer_name) {
12080                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12081                 }
12082                 ndr->depth--;
12083                 ndr->depth--;
12084         }
12085         if (flags & NDR_OUT) {
12086                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
12087                 ndr->depth++;
12088                 ndr_print_ptr(ndr, "site", r->out.site);
12089                 ndr->depth++;
12090                 ndr_print_ptr(ndr, "site", *r->out.site);
12091                 ndr->depth++;
12092                 if (*r->out.site) {
12093                         ndr_print_string(ndr, "site", *r->out.site);
12094                 }
12095                 ndr->depth--;
12096                 ndr->depth--;
12097                 ndr_print_WERROR(ndr, "result", r->out.result);
12098                 ndr->depth--;
12099         }
12100         ndr->depth--;
12101 }
12102
12103 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
12104 {
12105         if (flags & NDR_IN) {
12106                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12107                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12108                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12109                 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));
12110                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12111                 if (r->in.computer_name) {
12112                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12113                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12114                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12115                         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));
12116                 }
12117                 if (r->in.credential == NULL) {
12118                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12119                 }
12120                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12121                 if (r->in.return_authenticator == NULL) {
12122                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12123                 }
12124                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12125                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12126                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
12127                 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12128         }
12129         if (flags & NDR_OUT) {
12130                 if (r->out.return_authenticator == NULL) {
12131                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12132                 }
12133                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12134                 if (r->out.info == NULL) {
12135                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12136                 }
12137                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
12138                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12139                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12140         }
12141         return NDR_ERR_SUCCESS;
12142 }
12143
12144 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
12145 {
12146         uint32_t _ptr_computer_name;
12147         TALLOC_CTX *_mem_save_computer_name_0;
12148         TALLOC_CTX *_mem_save_credential_0;
12149         TALLOC_CTX *_mem_save_return_authenticator_0;
12150         TALLOC_CTX *_mem_save_info_0;
12151         if (flags & NDR_IN) {
12152                 ZERO_STRUCT(r->out);
12153
12154                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12155                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12156                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12157                         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));
12158                 }
12159                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12160                 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));
12161                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12162                 if (_ptr_computer_name) {
12163                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12164                 } else {
12165                         r->in.computer_name = NULL;
12166                 }
12167                 if (r->in.computer_name) {
12168                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12169                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12170                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12171                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12172                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12173                                 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));
12174                         }
12175                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12176                         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));
12177                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12178                 }
12179                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12180                         NDR_PULL_ALLOC(ndr, r->in.credential);
12181                 }
12182                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12183                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12184                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12185                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12186                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12187                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12188                 }
12189                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12190                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12191                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12192                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12193                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12194                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
12195                 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12196                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12197                 *r->out.return_authenticator = *r->in.return_authenticator;
12198                 NDR_PULL_ALLOC(ndr, r->out.info);
12199                 ZERO_STRUCTP(r->out.info);
12200         }
12201         if (flags & NDR_OUT) {
12202                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12203                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12204                 }
12205                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12206                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12207                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12208                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12209                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12210                         NDR_PULL_ALLOC(ndr, r->out.info);
12211                 }
12212                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12213                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12214                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
12215                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12216                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12217                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12218         }
12219         return NDR_ERR_SUCCESS;
12220 }
12221
12222 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
12223 {
12224         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
12225         ndr->depth++;
12226         if (flags & NDR_SET_VALUES) {
12227                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12228         }
12229         if (flags & NDR_IN) {
12230                 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
12231                 ndr->depth++;
12232                 ndr_print_string(ndr, "server_name", r->in.server_name);
12233                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12234                 ndr->depth++;
12235                 if (r->in.computer_name) {
12236                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12237                 }
12238                 ndr->depth--;
12239                 ndr_print_ptr(ndr, "credential", r->in.credential);
12240                 ndr->depth++;
12241                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12242                 ndr->depth--;
12243                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12244                 ndr->depth++;
12245                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12246                 ndr->depth--;
12247                 ndr_print_uint32(ndr, "level", r->in.level);
12248                 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
12249                 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
12250                 ndr->depth--;
12251         }
12252         if (flags & NDR_OUT) {
12253                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
12254                 ndr->depth++;
12255                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12256                 ndr->depth++;
12257                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12258                 ndr->depth--;
12259                 ndr_print_ptr(ndr, "info", r->out.info);
12260                 ndr->depth++;
12261                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
12262                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
12263                 ndr->depth--;
12264                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12265                 ndr->depth--;
12266         }
12267         ndr->depth--;
12268 }
12269
12270 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
12271 {
12272         if (flags & NDR_IN) {
12273                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12274                 if (r->in.server_name) {
12275                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12276                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12277                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12278                         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));
12279                 }
12280                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12281                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12282                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12283                 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));
12284                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12285                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12286                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12287                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12288                 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));
12289                 if (r->in.credential == NULL) {
12290                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12291                 }
12292                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12293                 if (r->in.new_password == NULL) {
12294                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12295                 }
12296                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
12297         }
12298         if (flags & NDR_OUT) {
12299                 if (r->out.return_authenticator == NULL) {
12300                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12301                 }
12302                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12303                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12304         }
12305         return NDR_ERR_SUCCESS;
12306 }
12307
12308 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
12309 {
12310         uint32_t _ptr_server_name;
12311         TALLOC_CTX *_mem_save_server_name_0;
12312         TALLOC_CTX *_mem_save_credential_0;
12313         TALLOC_CTX *_mem_save_return_authenticator_0;
12314         TALLOC_CTX *_mem_save_new_password_0;
12315         if (flags & NDR_IN) {
12316                 ZERO_STRUCT(r->out);
12317
12318                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12319                 if (_ptr_server_name) {
12320                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12321                 } else {
12322                         r->in.server_name = NULL;
12323                 }
12324                 if (r->in.server_name) {
12325                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12326                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12327                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12328                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12329                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12330                                 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));
12331                         }
12332                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12333                         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));
12334                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12335                 }
12336                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12337                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12338                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12339                         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));
12340                 }
12341                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12342                 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));
12343                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12344                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12345                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12346                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12347                         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));
12348                 }
12349                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12350                 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));
12351                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12352                         NDR_PULL_ALLOC(ndr, r->in.credential);
12353                 }
12354                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12355                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12356                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12357                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12358                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12359                         NDR_PULL_ALLOC(ndr, r->in.new_password);
12360                 }
12361                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
12362                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
12363                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
12364                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
12365                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12366                 ZERO_STRUCTP(r->out.return_authenticator);
12367         }
12368         if (flags & NDR_OUT) {
12369                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12370                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12371                 }
12372                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12373                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12374                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12375                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12376                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12377         }
12378         return NDR_ERR_SUCCESS;
12379 }
12380
12381 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
12382 {
12383         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
12384         ndr->depth++;
12385         if (flags & NDR_SET_VALUES) {
12386                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12387         }
12388         if (flags & NDR_IN) {
12389                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
12390                 ndr->depth++;
12391                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12392                 ndr->depth++;
12393                 if (r->in.server_name) {
12394                         ndr_print_string(ndr, "server_name", r->in.server_name);
12395                 }
12396                 ndr->depth--;
12397                 ndr_print_string(ndr, "account_name", r->in.account_name);
12398                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12399                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12400                 ndr_print_ptr(ndr, "credential", r->in.credential);
12401                 ndr->depth++;
12402                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12403                 ndr->depth--;
12404                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
12405                 ndr->depth++;
12406                 ndr_print_netr_CryptPassword(ndr, "new_password", r->in.new_password);
12407                 ndr->depth--;
12408                 ndr->depth--;
12409         }
12410         if (flags & NDR_OUT) {
12411                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
12412                 ndr->depth++;
12413                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12414                 ndr->depth++;
12415                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12416                 ndr->depth--;
12417                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12418                 ndr->depth--;
12419         }
12420         ndr->depth--;
12421 }
12422
12423 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
12424 {
12425         if (flags & NDR_IN) {
12426                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12427                 if (r->in.server_name) {
12428                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12429                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12430                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12431                         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));
12432                 }
12433                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12434                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12435                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12436                 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));
12437                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12438                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12439                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12440                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12441                 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));
12442                 if (r->in.credential == NULL) {
12443                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12444                 }
12445                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12446         }
12447         if (flags & NDR_OUT) {
12448                 if (r->out.return_authenticator == NULL) {
12449                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12450                 }
12451                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12452                 if (r->out.password == NULL) {
12453                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12454                 }
12455                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
12456                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12457         }
12458         return NDR_ERR_SUCCESS;
12459 }
12460
12461 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
12462 {
12463         uint32_t _ptr_server_name;
12464         TALLOC_CTX *_mem_save_server_name_0;
12465         TALLOC_CTX *_mem_save_credential_0;
12466         TALLOC_CTX *_mem_save_return_authenticator_0;
12467         TALLOC_CTX *_mem_save_password_0;
12468         if (flags & NDR_IN) {
12469                 ZERO_STRUCT(r->out);
12470
12471                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12472                 if (_ptr_server_name) {
12473                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12474                 } else {
12475                         r->in.server_name = NULL;
12476                 }
12477                 if (r->in.server_name) {
12478                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12479                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12480                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12481                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12482                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12483                                 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));
12484                         }
12485                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12486                         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));
12487                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12488                 }
12489                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12490                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12491                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12492                         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));
12493                 }
12494                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12495                 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));
12496                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12497                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12498                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12499                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12500                         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));
12501                 }
12502                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12503                 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));
12504                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12505                         NDR_PULL_ALLOC(ndr, r->in.credential);
12506                 }
12507                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12508                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12509                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12510                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12511                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12512                 ZERO_STRUCTP(r->out.return_authenticator);
12513                 NDR_PULL_ALLOC(ndr, r->out.password);
12514                 ZERO_STRUCTP(r->out.password);
12515         }
12516         if (flags & NDR_OUT) {
12517                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12518                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12519                 }
12520                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12521                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12522                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12523                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12524                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12525                         NDR_PULL_ALLOC(ndr, r->out.password);
12526                 }
12527                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
12528                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
12529                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
12530                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
12531                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12532         }
12533         return NDR_ERR_SUCCESS;
12534 }
12535
12536 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
12537 {
12538         ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
12539         ndr->depth++;
12540         if (flags & NDR_SET_VALUES) {
12541                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12542         }
12543         if (flags & NDR_IN) {
12544                 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
12545                 ndr->depth++;
12546                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12547                 ndr->depth++;
12548                 if (r->in.server_name) {
12549                         ndr_print_string(ndr, "server_name", r->in.server_name);
12550                 }
12551                 ndr->depth--;
12552                 ndr_print_string(ndr, "account_name", r->in.account_name);
12553                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12554                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12555                 ndr_print_ptr(ndr, "credential", r->in.credential);
12556                 ndr->depth++;
12557                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12558                 ndr->depth--;
12559                 ndr->depth--;
12560         }
12561         if (flags & NDR_OUT) {
12562                 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
12563                 ndr->depth++;
12564                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12565                 ndr->depth++;
12566                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12567                 ndr->depth--;
12568                 ndr_print_ptr(ndr, "password", r->out.password);
12569                 ndr->depth++;
12570                 ndr_print_samr_Password(ndr, "password", r->out.password);
12571                 ndr->depth--;
12572                 ndr_print_WERROR(ndr, "result", r->out.result);
12573                 ndr->depth--;
12574         }
12575         ndr->depth--;
12576 }
12577
12578 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12579 {
12580         if (flags & NDR_IN) {
12581         }
12582         if (flags & NDR_OUT) {
12583                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12584         }
12585         return NDR_ERR_SUCCESS;
12586 }
12587
12588 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
12589 {
12590         if (flags & NDR_IN) {
12591         }
12592         if (flags & NDR_OUT) {
12593                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12594         }
12595         return NDR_ERR_SUCCESS;
12596 }
12597
12598 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12599 {
12600         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
12601         ndr->depth++;
12602         if (flags & NDR_SET_VALUES) {
12603                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12604         }
12605         if (flags & NDR_IN) {
12606                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
12607                 ndr->depth++;
12608                 ndr->depth--;
12609         }
12610         if (flags & NDR_OUT) {
12611                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
12612                 ndr->depth++;
12613                 ndr_print_WERROR(ndr, "result", r->out.result);
12614                 ndr->depth--;
12615         }
12616         ndr->depth--;
12617 }
12618
12619 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
12620 {
12621         uint32_t cntr_addresses_1;
12622         if (flags & NDR_IN) {
12623                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12624                 if (r->in.server_name) {
12625                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12626                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12627                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12628                         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));
12629                 }
12630                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12631                 if (r->in.addresses == NULL) {
12632                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12633                 }
12634                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12635                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12636                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12637                 }
12638                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12639                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12640                 }
12641         }
12642         if (flags & NDR_OUT) {
12643                 if (r->out.ctr == NULL) {
12644                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12645                 }
12646                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
12647                 if (*r->out.ctr) {
12648                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12649                 }
12650                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12651         }
12652         return NDR_ERR_SUCCESS;
12653 }
12654
12655 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
12656 {
12657         uint32_t _ptr_server_name;
12658         uint32_t cntr_addresses_1;
12659         uint32_t _ptr_ctr;
12660         TALLOC_CTX *_mem_save_server_name_0;
12661         TALLOC_CTX *_mem_save_addresses_1;
12662         TALLOC_CTX *_mem_save_ctr_0;
12663         TALLOC_CTX *_mem_save_ctr_1;
12664         if (flags & NDR_IN) {
12665                 ZERO_STRUCT(r->out);
12666
12667                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12668                 if (_ptr_server_name) {
12669                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12670                 } else {
12671                         r->in.server_name = NULL;
12672                 }
12673                 if (r->in.server_name) {
12674                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12675                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12676                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12677                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12678                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12679                                 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));
12680                         }
12681                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12682                         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));
12683                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12684                 }
12685                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12686                 if (r->in.count < 0 || r->in.count > 32000) {
12687                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12688                 }
12689                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
12690                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12691                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
12692                 }
12693                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
12694                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
12695                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12696                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12697                 }
12698                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12699                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12700                 }
12701                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
12702                 NDR_PULL_ALLOC(ndr, r->out.ctr);
12703                 ZERO_STRUCTP(r->out.ctr);
12704                 if (r->in.addresses) {
12705                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
12706                 }
12707         }
12708         if (flags & NDR_OUT) {
12709                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12710                         NDR_PULL_ALLOC(ndr, r->out.ctr);
12711                 }
12712                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12713                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12714                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
12715                 if (_ptr_ctr) {
12716                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
12717                 } else {
12718                         *r->out.ctr = NULL;
12719                 }
12720                 if (*r->out.ctr) {
12721                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
12722                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
12723                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12724                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
12725                 }
12726                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
12727                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12728         }
12729         return NDR_ERR_SUCCESS;
12730 }
12731
12732 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
12733 {
12734         uint32_t cntr_addresses_1;
12735         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
12736         ndr->depth++;
12737         if (flags & NDR_SET_VALUES) {
12738                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12739         }
12740         if (flags & NDR_IN) {
12741                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
12742                 ndr->depth++;
12743                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12744                 ndr->depth++;
12745                 if (r->in.server_name) {
12746                         ndr_print_string(ndr, "server_name", r->in.server_name);
12747                 }
12748                 ndr->depth--;
12749                 ndr_print_uint32(ndr, "count", r->in.count);
12750                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
12751                 ndr->depth++;
12752                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
12753                 ndr->depth++;
12754                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
12755                         char *idx_1=NULL;
12756                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
12757                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
12758                                 free(idx_1);
12759                         }
12760                 }
12761                 ndr->depth--;
12762                 ndr->depth--;
12763                 ndr->depth--;
12764         }
12765         if (flags & NDR_OUT) {
12766                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
12767                 ndr->depth++;
12768                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
12769                 ndr->depth++;
12770                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
12771                 ndr->depth++;
12772                 if (*r->out.ctr) {
12773                         ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
12774                 }
12775                 ndr->depth--;
12776                 ndr->depth--;
12777                 ndr_print_WERROR(ndr, "result", r->out.result);
12778                 ndr->depth--;
12779         }
12780         ndr->depth--;
12781 }
12782
12783 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
12784 {
12785         if (flags & NDR_IN) {
12786                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12787                 if (r->in.server_unc) {
12788                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12789                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12790                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12791                         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));
12792                 }
12793                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
12794                 if (r->in.client_account) {
12795                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12796                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12797                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12798                         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));
12799                 }
12800                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
12801                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12802                 if (r->in.domain_name) {
12803                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12804                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12805                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12806                         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));
12807                 }
12808                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12809                 if (r->in.domain_guid) {
12810                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12811                 }
12812                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
12813                 if (r->in.site_name) {
12814                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12815                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12816                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12817                         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));
12818                 }
12819                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12820         }
12821         if (flags & NDR_OUT) {
12822                 if (r->out.info == NULL) {
12823                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12824                 }
12825                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12826                 if (*r->out.info) {
12827                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12828                 }
12829                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12830         }
12831         return NDR_ERR_SUCCESS;
12832 }
12833
12834 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
12835 {
12836         uint32_t _ptr_server_unc;
12837         uint32_t _ptr_client_account;
12838         uint32_t _ptr_domain_name;
12839         uint32_t _ptr_domain_guid;
12840         uint32_t _ptr_site_name;
12841         uint32_t _ptr_info;
12842         TALLOC_CTX *_mem_save_server_unc_0;
12843         TALLOC_CTX *_mem_save_client_account_0;
12844         TALLOC_CTX *_mem_save_domain_name_0;
12845         TALLOC_CTX *_mem_save_domain_guid_0;
12846         TALLOC_CTX *_mem_save_site_name_0;
12847         TALLOC_CTX *_mem_save_info_0;
12848         TALLOC_CTX *_mem_save_info_1;
12849         if (flags & NDR_IN) {
12850                 ZERO_STRUCT(r->out);
12851
12852                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12853                 if (_ptr_server_unc) {
12854                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12855                 } else {
12856                         r->in.server_unc = NULL;
12857                 }
12858                 if (r->in.server_unc) {
12859                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12860                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12861                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12862                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12863                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12864                                 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));
12865                         }
12866                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12867                         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));
12868                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12869                 }
12870                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
12871                 if (_ptr_client_account) {
12872                         NDR_PULL_ALLOC(ndr, r->in.client_account);
12873                 } else {
12874                         r->in.client_account = NULL;
12875                 }
12876                 if (r->in.client_account) {
12877                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
12878                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
12879                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
12880                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
12881                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
12882                                 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));
12883                         }
12884                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
12885                         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));
12886                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
12887                 }
12888                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
12889                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12890                 if (_ptr_domain_name) {
12891                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12892                 } else {
12893                         r->in.domain_name = NULL;
12894                 }
12895                 if (r->in.domain_name) {
12896                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12897                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12898                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12899                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12900                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12901                                 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));
12902                         }
12903                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12904                         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));
12905                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12906                 }
12907                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12908                 if (_ptr_domain_guid) {
12909                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12910                 } else {
12911                         r->in.domain_guid = NULL;
12912                 }
12913                 if (r->in.domain_guid) {
12914                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12915                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12916                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12917                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12918                 }
12919                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
12920                 if (_ptr_site_name) {
12921                         NDR_PULL_ALLOC(ndr, r->in.site_name);
12922                 } else {
12923                         r->in.site_name = NULL;
12924                 }
12925                 if (r->in.site_name) {
12926                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12927                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
12928                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
12929                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
12930                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
12931                                 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));
12932                         }
12933                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
12934                         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));
12935                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
12936                 }
12937                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12938                 NDR_PULL_ALLOC(ndr, r->out.info);
12939                 ZERO_STRUCTP(r->out.info);
12940         }
12941         if (flags & NDR_OUT) {
12942                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12943                         NDR_PULL_ALLOC(ndr, r->out.info);
12944                 }
12945                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12946                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12947                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12948                 if (_ptr_info) {
12949                         NDR_PULL_ALLOC(ndr, *r->out.info);
12950                 } else {
12951                         *r->out.info = NULL;
12952                 }
12953                 if (*r->out.info) {
12954                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12955                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12956                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12957                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12958                 }
12959                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12960                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12961         }
12962         return NDR_ERR_SUCCESS;
12963 }
12964
12965 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
12966 {
12967         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
12968         ndr->depth++;
12969         if (flags & NDR_SET_VALUES) {
12970                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12971         }
12972         if (flags & NDR_IN) {
12973                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
12974                 ndr->depth++;
12975                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12976                 ndr->depth++;
12977                 if (r->in.server_unc) {
12978                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12979                 }
12980                 ndr->depth--;
12981                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
12982                 ndr->depth++;
12983                 if (r->in.client_account) {
12984                         ndr_print_string(ndr, "client_account", r->in.client_account);
12985                 }
12986                 ndr->depth--;
12987                 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
12988                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12989                 ndr->depth++;
12990                 if (r->in.domain_name) {
12991                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12992                 }
12993                 ndr->depth--;
12994                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12995                 ndr->depth++;
12996                 if (r->in.domain_guid) {
12997                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12998                 }
12999                 ndr->depth--;
13000                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
13001                 ndr->depth++;
13002                 if (r->in.site_name) {
13003                         ndr_print_string(ndr, "site_name", r->in.site_name);
13004                 }
13005                 ndr->depth--;
13006                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
13007                 ndr->depth--;
13008         }
13009         if (flags & NDR_OUT) {
13010                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
13011                 ndr->depth++;
13012                 ndr_print_ptr(ndr, "info", r->out.info);
13013                 ndr->depth++;
13014                 ndr_print_ptr(ndr, "info", *r->out.info);
13015                 ndr->depth++;
13016                 if (*r->out.info) {
13017                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
13018                 }
13019                 ndr->depth--;
13020                 ndr->depth--;
13021                 ndr_print_WERROR(ndr, "result", r->out.result);
13022                 ndr->depth--;
13023         }
13024         ndr->depth--;
13025 }
13026
13027 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13028 {
13029         if (flags & NDR_IN) {
13030         }
13031         if (flags & NDR_OUT) {
13032                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13033         }
13034         return NDR_ERR_SUCCESS;
13035 }
13036
13037 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13038 {
13039         if (flags & NDR_IN) {
13040         }
13041         if (flags & NDR_OUT) {
13042                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13043         }
13044         return NDR_ERR_SUCCESS;
13045 }
13046
13047 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13048 {
13049         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13050         ndr->depth++;
13051         if (flags & NDR_SET_VALUES) {
13052                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13053         }
13054         if (flags & NDR_IN) {
13055                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13056                 ndr->depth++;
13057                 ndr->depth--;
13058         }
13059         if (flags & NDR_OUT) {
13060                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13061                 ndr->depth++;
13062                 ndr_print_WERROR(ndr, "result", r->out.result);
13063                 ndr->depth--;
13064         }
13065         ndr->depth--;
13066 }
13067
13068 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13069 {
13070         if (flags & NDR_IN) {
13071                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13072                 if (r->in.server_name) {
13073                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13074                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13075                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13076                         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));
13077                 }
13078         }
13079         if (flags & NDR_OUT) {
13080                 if (r->out.dom_trust_list == NULL) {
13081                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13082                 }
13083                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13084                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13085         }
13086         return NDR_ERR_SUCCESS;
13087 }
13088
13089 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
13090 {
13091         uint32_t _ptr_server_name;
13092         TALLOC_CTX *_mem_save_server_name_0;
13093         TALLOC_CTX *_mem_save_dom_trust_list_0;
13094         if (flags & NDR_IN) {
13095                 ZERO_STRUCT(r->out);
13096
13097                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13098                 if (_ptr_server_name) {
13099                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13100                 } else {
13101                         r->in.server_name = NULL;
13102                 }
13103                 if (r->in.server_name) {
13104                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13105                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13106                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13107                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13108                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13109                                 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));
13110                         }
13111                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13112                         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));
13113                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13114                 }
13115                 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13116                 ZERO_STRUCTP(r->out.dom_trust_list);
13117         }
13118         if (flags & NDR_OUT) {
13119                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13120                         NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13121                 }
13122                 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
13123                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
13124                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13125                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
13126                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13127         }
13128         return NDR_ERR_SUCCESS;
13129 }
13130
13131 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13132 {
13133         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
13134         ndr->depth++;
13135         if (flags & NDR_SET_VALUES) {
13136                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13137         }
13138         if (flags & NDR_IN) {
13139                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
13140                 ndr->depth++;
13141                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13142                 ndr->depth++;
13143                 if (r->in.server_name) {
13144                         ndr_print_string(ndr, "server_name", r->in.server_name);
13145                 }
13146                 ndr->depth--;
13147                 ndr->depth--;
13148         }
13149         if (flags & NDR_OUT) {
13150                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
13151                 ndr->depth++;
13152                 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
13153                 ndr->depth++;
13154                 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
13155                 ndr->depth--;
13156                 ndr_print_WERROR(ndr, "result", r->out.result);
13157                 ndr->depth--;
13158         }
13159         ndr->depth--;
13160 }
13161
13162 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13163 {
13164         uint32_t cntr_addresses_1;
13165         if (flags & NDR_IN) {
13166                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13167                 if (r->in.server_name) {
13168                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13169                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13170                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13171                         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));
13172                 }
13173                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13174                 if (r->in.addresses == NULL) {
13175                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13176                 }
13177                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13178                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13179                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13180                 }
13181                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13182                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13183                 }
13184         }
13185         if (flags & NDR_OUT) {
13186                 if (r->out.ctr == NULL) {
13187                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13188                 }
13189                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
13190                 if (*r->out.ctr) {
13191                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13192                 }
13193                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13194         }
13195         return NDR_ERR_SUCCESS;
13196 }
13197
13198 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
13199 {
13200         uint32_t _ptr_server_name;
13201         uint32_t cntr_addresses_1;
13202         uint32_t _ptr_ctr;
13203         TALLOC_CTX *_mem_save_server_name_0;
13204         TALLOC_CTX *_mem_save_addresses_1;
13205         TALLOC_CTX *_mem_save_ctr_0;
13206         TALLOC_CTX *_mem_save_ctr_1;
13207         if (flags & NDR_IN) {
13208                 ZERO_STRUCT(r->out);
13209
13210                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13211                 if (_ptr_server_name) {
13212                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13213                 } else {
13214                         r->in.server_name = NULL;
13215                 }
13216                 if (r->in.server_name) {
13217                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13218                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13219                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13220                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13221                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13222                                 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));
13223                         }
13224                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13225                         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));
13226                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13227                 }
13228                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13229                 if (r->in.count < 0 || r->in.count > 32000) {
13230                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13231                 }
13232                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
13233                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13234                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
13235                 }
13236                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
13237                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
13238                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13239                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13240                 }
13241                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13242                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13243                 }
13244                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
13245                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13246                 ZERO_STRUCTP(r->out.ctr);
13247                 if (r->in.addresses) {
13248                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
13249                 }
13250         }
13251         if (flags & NDR_OUT) {
13252                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13253                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13254                 }
13255                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13256                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13257                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
13258                 if (_ptr_ctr) {
13259                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
13260                 } else {
13261                         *r->out.ctr = NULL;
13262                 }
13263                 if (*r->out.ctr) {
13264                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
13265                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
13266                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13267                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
13268                 }
13269                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13270                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13271         }
13272         return NDR_ERR_SUCCESS;
13273 }
13274
13275 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13276 {
13277         uint32_t cntr_addresses_1;
13278         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
13279         ndr->depth++;
13280         if (flags & NDR_SET_VALUES) {
13281                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13282         }
13283         if (flags & NDR_IN) {
13284                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
13285                 ndr->depth++;
13286                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13287                 ndr->depth++;
13288                 if (r->in.server_name) {
13289                         ndr_print_string(ndr, "server_name", r->in.server_name);
13290                 }
13291                 ndr->depth--;
13292                 ndr_print_uint32(ndr, "count", r->in.count);
13293                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
13294                 ndr->depth++;
13295                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
13296                 ndr->depth++;
13297                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
13298                         char *idx_1=NULL;
13299                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
13300                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
13301                                 free(idx_1);
13302                         }
13303                 }
13304                 ndr->depth--;
13305                 ndr->depth--;
13306                 ndr->depth--;
13307         }
13308         if (flags & NDR_OUT) {
13309                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
13310                 ndr->depth++;
13311                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13312                 ndr->depth++;
13313                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
13314                 ndr->depth++;
13315                 if (*r->out.ctr) {
13316                         ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
13317                 }
13318                 ndr->depth--;
13319                 ndr->depth--;
13320                 ndr_print_WERROR(ndr, "result", r->out.result);
13321                 ndr->depth--;
13322         }
13323         ndr->depth--;
13324 }
13325
13326 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13327 {
13328         if (flags & NDR_IN) {
13329                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13330                 if (r->in.server_name) {
13331                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13332                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13333                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13334                         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));
13335                 }
13336         }
13337         if (flags & NDR_OUT) {
13338                 if (r->out.ctr == NULL) {
13339                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13340                 }
13341                 NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13342                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13343         }
13344         return NDR_ERR_SUCCESS;
13345 }
13346
13347 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
13348 {
13349         uint32_t _ptr_server_name;
13350         TALLOC_CTX *_mem_save_server_name_0;
13351         TALLOC_CTX *_mem_save_ctr_0;
13352         if (flags & NDR_IN) {
13353                 ZERO_STRUCT(r->out);
13354
13355                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13356                 if (_ptr_server_name) {
13357                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13358                 } else {
13359                         r->in.server_name = NULL;
13360                 }
13361                 if (r->in.server_name) {
13362                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13363                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13364                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13365                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13366                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13367                                 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));
13368                         }
13369                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13370                         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));
13371                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13372                 }
13373                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13374                 ZERO_STRUCTP(r->out.ctr);
13375         }
13376         if (flags & NDR_OUT) {
13377                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13378                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13379                 }
13380                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13381                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13382                 NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13383                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13384                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13385         }
13386         return NDR_ERR_SUCCESS;
13387 }
13388
13389 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13390 {
13391         ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
13392         ndr->depth++;
13393         if (flags & NDR_SET_VALUES) {
13394                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13395         }
13396         if (flags & NDR_IN) {
13397                 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
13398                 ndr->depth++;
13399                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13400                 ndr->depth++;
13401                 if (r->in.server_name) {
13402                         ndr_print_string(ndr, "server_name", r->in.server_name);
13403                 }
13404                 ndr->depth--;
13405                 ndr->depth--;
13406         }
13407         if (flags & NDR_OUT) {
13408                 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
13409                 ndr->depth++;
13410                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13411                 ndr->depth++;
13412                 ndr_print_DcSitesCtr(ndr, "ctr", r->out.ctr);
13413                 ndr->depth--;
13414                 ndr_print_WERROR(ndr, "result", r->out.result);
13415                 ndr->depth--;
13416         }
13417         ndr->depth--;
13418 }
13419
13420 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
13421 {
13422         if (flags & NDR_IN) {
13423                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13424                 if (r->in.server_name) {
13425                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13426                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13427                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13428                         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));
13429                 }
13430                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13431                 if (r->in.computer_name) {
13432                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13433                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13434                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13435                         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));
13436                 }
13437                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
13438                 if (r->in.logon == NULL) {
13439                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13440                 }
13441                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
13442                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
13443                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
13444                 if (r->in.flags == NULL) {
13445                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13446                 }
13447                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
13448         }
13449         if (flags & NDR_OUT) {
13450                 if (r->out.validation == NULL) {
13451                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13452                 }
13453                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13454                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13455                 if (r->out.authoritative == NULL) {
13456                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13457                 }
13458                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
13459                 if (r->out.flags == NULL) {
13460                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13461                 }
13462                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
13463                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13464         }
13465         return NDR_ERR_SUCCESS;
13466 }
13467
13468 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
13469 {
13470         uint32_t _ptr_server_name;
13471         uint32_t _ptr_computer_name;
13472         TALLOC_CTX *_mem_save_server_name_0;
13473         TALLOC_CTX *_mem_save_computer_name_0;
13474         TALLOC_CTX *_mem_save_logon_0;
13475         TALLOC_CTX *_mem_save_validation_0;
13476         TALLOC_CTX *_mem_save_authoritative_0;
13477         TALLOC_CTX *_mem_save_flags_0;
13478         if (flags & NDR_IN) {
13479                 ZERO_STRUCT(r->out);
13480
13481                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13482                 if (_ptr_server_name) {
13483                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13484                 } else {
13485                         r->in.server_name = NULL;
13486                 }
13487                 if (r->in.server_name) {
13488                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13489                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13490                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13491                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13492                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13493                                 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));
13494                         }
13495                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13496                         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));
13497                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13498                 }
13499                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13500                 if (_ptr_computer_name) {
13501                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13502                 } else {
13503                         r->in.computer_name = NULL;
13504                 }
13505                 if (r->in.computer_name) {
13506                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13507                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13508                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13509                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13510                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13511                                 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));
13512                         }
13513                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13514                         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));
13515                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13516                 }
13517                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
13518                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13519                         NDR_PULL_ALLOC(ndr, r->in.logon);
13520                 }
13521                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
13522                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
13523                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
13524                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
13525                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
13526                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
13527                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13528                         NDR_PULL_ALLOC(ndr, r->in.flags);
13529                 }
13530                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13531                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
13532                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
13533                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13534                 NDR_PULL_ALLOC(ndr, r->out.validation);
13535                 ZERO_STRUCTP(r->out.validation);
13536                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
13537                 ZERO_STRUCTP(r->out.authoritative);
13538                 NDR_PULL_ALLOC(ndr, r->out.flags);
13539                 *r->out.flags = *r->in.flags;
13540         }
13541         if (flags & NDR_OUT) {
13542                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13543                         NDR_PULL_ALLOC(ndr, r->out.validation);
13544                 }
13545                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
13546                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
13547                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13548                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13549                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
13550                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13551                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
13552                 }
13553                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
13554                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
13555                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
13556                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
13557                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13558                         NDR_PULL_ALLOC(ndr, r->out.flags);
13559                 }
13560                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13561                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
13562                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
13563                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13564                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13565         }
13566         return NDR_ERR_SUCCESS;
13567 }
13568
13569 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
13570 {
13571         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
13572         ndr->depth++;
13573         if (flags & NDR_SET_VALUES) {
13574                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13575         }
13576         if (flags & NDR_IN) {
13577                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
13578                 ndr->depth++;
13579                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13580                 ndr->depth++;
13581                 if (r->in.server_name) {
13582                         ndr_print_string(ndr, "server_name", r->in.server_name);
13583                 }
13584                 ndr->depth--;
13585                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13586                 ndr->depth++;
13587                 if (r->in.computer_name) {
13588                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13589                 }
13590                 ndr->depth--;
13591                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
13592                 ndr_print_ptr(ndr, "logon", r->in.logon);
13593                 ndr->depth++;
13594                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
13595                 ndr_print_netr_LogonInfo(ndr, "logon", r->in.logon);
13596                 ndr->depth--;
13597                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
13598                 ndr_print_ptr(ndr, "flags", r->in.flags);
13599                 ndr->depth++;
13600                 ndr_print_uint32(ndr, "flags", *r->in.flags);
13601                 ndr->depth--;
13602                 ndr->depth--;
13603         }
13604         if (flags & NDR_OUT) {
13605                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
13606                 ndr->depth++;
13607                 ndr_print_ptr(ndr, "validation", r->out.validation);
13608                 ndr->depth++;
13609                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
13610                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
13611                 ndr->depth--;
13612                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
13613                 ndr->depth++;
13614                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
13615                 ndr->depth--;
13616                 ndr_print_ptr(ndr, "flags", r->out.flags);
13617                 ndr->depth++;
13618                 ndr_print_uint32(ndr, "flags", *r->out.flags);
13619                 ndr->depth--;
13620                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13621                 ndr->depth--;
13622         }
13623         ndr->depth--;
13624 }
13625
13626 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13627 {
13628         if (flags & NDR_IN) {
13629                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13630                 if (r->in.server_name) {
13631                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13632                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13633                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13634                         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));
13635                 }
13636                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
13637         }
13638         if (flags & NDR_OUT) {
13639                 if (r->out.trusts == NULL) {
13640                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13641                 }
13642                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13643                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13644         }
13645         return NDR_ERR_SUCCESS;
13646 }
13647
13648 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
13649 {
13650         uint32_t _ptr_server_name;
13651         TALLOC_CTX *_mem_save_server_name_0;
13652         TALLOC_CTX *_mem_save_trusts_0;
13653         if (flags & NDR_IN) {
13654                 ZERO_STRUCT(r->out);
13655
13656                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13657                 if (_ptr_server_name) {
13658                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13659                 } else {
13660                         r->in.server_name = NULL;
13661                 }
13662                 if (r->in.server_name) {
13663                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13664                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13665                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13666                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13667                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13668                                 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));
13669                         }
13670                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13671                         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));
13672                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13673                 }
13674                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
13675                 NDR_PULL_ALLOC(ndr, r->out.trusts);
13676                 ZERO_STRUCTP(r->out.trusts);
13677         }
13678         if (flags & NDR_OUT) {
13679                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13680                         NDR_PULL_ALLOC(ndr, r->out.trusts);
13681                 }
13682                 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
13683                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
13684                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13685                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
13686                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13687         }
13688         return NDR_ERR_SUCCESS;
13689 }
13690
13691 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13692 {
13693         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
13694         ndr->depth++;
13695         if (flags & NDR_SET_VALUES) {
13696                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13697         }
13698         if (flags & NDR_IN) {
13699                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
13700                 ndr->depth++;
13701                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13702                 ndr->depth++;
13703                 if (r->in.server_name) {
13704                         ndr_print_string(ndr, "server_name", r->in.server_name);
13705                 }
13706                 ndr->depth--;
13707                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
13708                 ndr->depth--;
13709         }
13710         if (flags & NDR_OUT) {
13711                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
13712                 ndr->depth++;
13713                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
13714                 ndr->depth++;
13715                 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
13716                 ndr->depth--;
13717                 ndr_print_WERROR(ndr, "result", r->out.result);
13718                 ndr->depth--;
13719         }
13720         ndr->depth--;
13721 }
13722
13723 static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13724 {
13725         if (flags & NDR_IN) {
13726                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13727                 if (r->in.server_name) {
13728                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13729                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13730                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13731                         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));
13732                 }
13733                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
13734                 if (r->in.domain) {
13735                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13736                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13737                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13738                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13739                 }
13740                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13741                 if (r->in.domain_guid) {
13742                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13743                 }
13744                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
13745                 if (r->in.dsa_guid) {
13746                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
13747                 }
13748                 if (r->in.dns_host == NULL) {
13749                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13750                 }
13751                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
13752                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13753                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
13754                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.dns_host, ndr_charset_length(r->in.dns_host, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13755         }
13756         if (flags & NDR_OUT) {
13757                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13758         }
13759         return NDR_ERR_SUCCESS;
13760 }
13761
13762 static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
13763 {
13764         uint32_t _ptr_server_name;
13765         uint32_t _ptr_domain;
13766         uint32_t _ptr_domain_guid;
13767         uint32_t _ptr_dsa_guid;
13768         TALLOC_CTX *_mem_save_server_name_0;
13769         TALLOC_CTX *_mem_save_domain_0;
13770         TALLOC_CTX *_mem_save_domain_guid_0;
13771         TALLOC_CTX *_mem_save_dsa_guid_0;
13772         if (flags & NDR_IN) {
13773                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13774                 if (_ptr_server_name) {
13775                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13776                 } else {
13777                         r->in.server_name = NULL;
13778                 }
13779                 if (r->in.server_name) {
13780                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13781                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13782                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13783                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13784                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13785                                 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));
13786                         }
13787                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13788                         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));
13789                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13790                 }
13791                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
13792                 if (_ptr_domain) {
13793                         NDR_PULL_ALLOC(ndr, r->in.domain);
13794                 } else {
13795                         r->in.domain = NULL;
13796                 }
13797                 if (r->in.domain) {
13798                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
13799                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
13800                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
13801                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
13802                         if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
13803                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain), ndr_get_array_length(ndr, &r->in.domain));
13804                         }
13805                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
13806                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
13807                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
13808                 }
13809                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
13810                 if (_ptr_domain_guid) {
13811                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
13812                 } else {
13813                         r->in.domain_guid = NULL;
13814                 }
13815                 if (r->in.domain_guid) {
13816                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13817                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
13818                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13819                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
13820                 }
13821                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
13822                 if (_ptr_dsa_guid) {
13823                         NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
13824                 } else {
13825                         r->in.dsa_guid = NULL;
13826                 }
13827                 if (r->in.dsa_guid) {
13828                         _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13829                         NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
13830                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
13831                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
13832                 }
13833                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
13834                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
13835                 if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
13836                         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.dns_host), ndr_get_array_length(ndr, &r->in.dns_host));
13837                 }
13838                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
13839                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dns_host, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t), CH_UTF16));
13840         }
13841         if (flags & NDR_OUT) {
13842                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13843         }
13844         return NDR_ERR_SUCCESS;
13845 }
13846
13847 _PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13848 {
13849         ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
13850         ndr->depth++;
13851         if (flags & NDR_SET_VALUES) {
13852                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13853         }
13854         if (flags & NDR_IN) {
13855                 ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
13856                 ndr->depth++;
13857                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13858                 ndr->depth++;
13859                 if (r->in.server_name) {
13860                         ndr_print_string(ndr, "server_name", r->in.server_name);
13861                 }
13862                 ndr->depth--;
13863                 ndr_print_ptr(ndr, "domain", r->in.domain);
13864                 ndr->depth++;
13865                 if (r->in.domain) {
13866                         ndr_print_string(ndr, "domain", r->in.domain);
13867                 }
13868                 ndr->depth--;
13869                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13870                 ndr->depth++;
13871                 if (r->in.domain_guid) {
13872                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13873                 }
13874                 ndr->depth--;
13875                 ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
13876                 ndr->depth++;
13877                 if (r->in.dsa_guid) {
13878                         ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
13879                 }
13880                 ndr->depth--;
13881                 ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
13882                 ndr->depth++;
13883                 ndr_print_string(ndr, "dns_host", r->in.dns_host);
13884                 ndr->depth--;
13885                 ndr->depth--;
13886         }
13887         if (flags & NDR_OUT) {
13888                 ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
13889                 ndr->depth++;
13890                 ndr_print_WERROR(ndr, "result", r->out.result);
13891                 ndr->depth--;
13892         }
13893         ndr->depth--;
13894 }
13895
13896 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
13897 {
13898         if (flags & NDR_IN) {
13899                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13900                 if (r->in.server_name) {
13901                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13902                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13903                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13904                         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));
13905                 }
13906                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13907                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13908                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13909                 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));
13910                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13911                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13912                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13913                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13914                 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));
13915                 if (r->in.credential == NULL) {
13916                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13917                 }
13918                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13919         }
13920         if (flags & NDR_OUT) {
13921                 if (r->out.return_authenticator == NULL) {
13922                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13923                 }
13924                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13925                 if (r->out.password == NULL) {
13926                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13927                 }
13928                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
13929                 if (r->out.password2 == NULL) {
13930                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13931                 }
13932                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password2));
13933                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13934         }
13935         return NDR_ERR_SUCCESS;
13936 }
13937
13938 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
13939 {
13940         uint32_t _ptr_server_name;
13941         TALLOC_CTX *_mem_save_server_name_0;
13942         TALLOC_CTX *_mem_save_credential_0;
13943         TALLOC_CTX *_mem_save_return_authenticator_0;
13944         TALLOC_CTX *_mem_save_password_0;
13945         TALLOC_CTX *_mem_save_password2_0;
13946         if (flags & NDR_IN) {
13947                 ZERO_STRUCT(r->out);
13948
13949                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13950                 if (_ptr_server_name) {
13951                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13952                 } else {
13953                         r->in.server_name = NULL;
13954                 }
13955                 if (r->in.server_name) {
13956                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13957                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13958                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13959                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13960                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13961                                 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));
13962                         }
13963                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13964                         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));
13965                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13966                 }
13967                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13968                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13969                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13970                         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));
13971                 }
13972                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13973                 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));
13974                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13975                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13976                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13977                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13978                         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));
13979                 }
13980                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13981                 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));
13982                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13983                         NDR_PULL_ALLOC(ndr, r->in.credential);
13984                 }
13985                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13986                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13987                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13988                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13989                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13990                 ZERO_STRUCTP(r->out.return_authenticator);
13991                 NDR_PULL_ALLOC(ndr, r->out.password);
13992                 ZERO_STRUCTP(r->out.password);
13993                 NDR_PULL_ALLOC(ndr, r->out.password2);
13994                 ZERO_STRUCTP(r->out.password2);
13995         }
13996         if (flags & NDR_OUT) {
13997                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13998                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13999                 }
14000                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14001                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14002                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14003                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14004                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14005                         NDR_PULL_ALLOC(ndr, r->out.password);
14006                 }
14007                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
14008                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
14009                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
14010                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
14011                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14012                         NDR_PULL_ALLOC(ndr, r->out.password2);
14013                 }
14014                 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
14015                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
14016                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password2));
14017                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
14018                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14019         }
14020         return NDR_ERR_SUCCESS;
14021 }
14022
14023 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
14024 {
14025         ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
14026         ndr->depth++;
14027         if (flags & NDR_SET_VALUES) {
14028                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14029         }
14030         if (flags & NDR_IN) {
14031                 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
14032                 ndr->depth++;
14033                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14034                 ndr->depth++;
14035                 if (r->in.server_name) {
14036                         ndr_print_string(ndr, "server_name", r->in.server_name);
14037                 }
14038                 ndr->depth--;
14039                 ndr_print_string(ndr, "account_name", r->in.account_name);
14040                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
14041                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
14042                 ndr_print_ptr(ndr, "credential", r->in.credential);
14043                 ndr->depth++;
14044                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14045                 ndr->depth--;
14046                 ndr->depth--;
14047         }
14048         if (flags & NDR_OUT) {
14049                 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
14050                 ndr->depth++;
14051                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14052                 ndr->depth++;
14053                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14054                 ndr->depth--;
14055                 ndr_print_ptr(ndr, "password", r->out.password);
14056                 ndr->depth++;
14057                 ndr_print_samr_Password(ndr, "password", r->out.password);
14058                 ndr->depth--;
14059                 ndr_print_ptr(ndr, "password2", r->out.password2);
14060                 ndr->depth++;
14061                 ndr_print_samr_Password(ndr, "password2", r->out.password2);
14062                 ndr->depth--;
14063                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14064                 ndr->depth--;
14065         }
14066         ndr->depth--;
14067 }
14068
14069 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
14070 {
14071         if (flags & NDR_IN) {
14072                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14073                 if (r->in.server_name) {
14074                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14075                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14076                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14077                         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));
14078                 }
14079                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
14080                 if (r->in.trusted_domain_name) {
14081                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14082                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14083                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14084                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.trusted_domain_name, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14085                 }
14086                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14087         }
14088         if (flags & NDR_OUT) {
14089                 if (r->out.forest_trust_info == NULL) {
14090                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14091                 }
14092                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14093                 if (*r->out.forest_trust_info) {
14094                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14095                 }
14096                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14097         }
14098         return NDR_ERR_SUCCESS;
14099 }
14100
14101 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
14102 {
14103         uint32_t _ptr_server_name;
14104         uint32_t _ptr_trusted_domain_name;
14105         uint32_t _ptr_forest_trust_info;
14106         TALLOC_CTX *_mem_save_server_name_0;
14107         TALLOC_CTX *_mem_save_trusted_domain_name_0;
14108         TALLOC_CTX *_mem_save_forest_trust_info_0;
14109         TALLOC_CTX *_mem_save_forest_trust_info_1;
14110         if (flags & NDR_IN) {
14111                 ZERO_STRUCT(r->out);
14112
14113                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14114                 if (_ptr_server_name) {
14115                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14116                 } else {
14117                         r->in.server_name = NULL;
14118                 }
14119                 if (r->in.server_name) {
14120                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14121                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14122                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14123                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14124                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14125                                 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));
14126                         }
14127                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14128                         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));
14129                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14130                 }
14131                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
14132                 if (_ptr_trusted_domain_name) {
14133                         NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
14134                 } else {
14135                         r->in.trusted_domain_name = NULL;
14136                 }
14137                 if (r->in.trusted_domain_name) {
14138                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14139                         NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
14140                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14141                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14142                         if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14143                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.trusted_domain_name), ndr_get_array_length(ndr, &r->in.trusted_domain_name));
14144                         }
14145                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14146                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.trusted_domain_name, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t), CH_UTF16));
14147                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
14148                 }
14149                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14150                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14151                 ZERO_STRUCTP(r->out.forest_trust_info);
14152         }
14153         if (flags & NDR_OUT) {
14154                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14155                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14156                 }
14157                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14158                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14159                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14160                 if (_ptr_forest_trust_info) {
14161                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14162                 } else {
14163                         *r->out.forest_trust_info = NULL;
14164                 }
14165                 if (*r->out.forest_trust_info) {
14166                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14167                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14168                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14169                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14170                 }
14171                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14172                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14173         }
14174         return NDR_ERR_SUCCESS;
14175 }
14176
14177 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
14178 {
14179         ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
14180         ndr->depth++;
14181         if (flags & NDR_SET_VALUES) {
14182                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14183         }
14184         if (flags & NDR_IN) {
14185                 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
14186                 ndr->depth++;
14187                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14188                 ndr->depth++;
14189                 if (r->in.server_name) {
14190                         ndr_print_string(ndr, "server_name", r->in.server_name);
14191                 }
14192                 ndr->depth--;
14193                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14194                 ndr->depth++;
14195                 if (r->in.trusted_domain_name) {
14196                         ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14197                 }
14198                 ndr->depth--;
14199                 ndr_print_uint32(ndr, "flags", r->in.flags);
14200                 ndr->depth--;
14201         }
14202         if (flags & NDR_OUT) {
14203                 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
14204                 ndr->depth++;
14205                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14206                 ndr->depth++;
14207                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14208                 ndr->depth++;
14209                 if (*r->out.forest_trust_info) {
14210                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14211                 }
14212                 ndr->depth--;
14213                 ndr->depth--;
14214                 ndr_print_WERROR(ndr, "result", r->out.result);
14215                 ndr->depth--;
14216         }
14217         ndr->depth--;
14218 }
14219
14220 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
14221 {
14222         if (flags & NDR_IN) {
14223                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14224                 if (r->in.server_name) {
14225                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14226                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14227                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14228                         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));
14229                 }
14230                 if (r->in.trusted_domain_name == NULL) {
14231                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14232                 }
14233                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14234                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14235                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14236                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.trusted_domain_name, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14237                 if (r->in.credential == NULL) {
14238                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14239                 }
14240                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14241                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14242         }
14243         if (flags & NDR_OUT) {
14244                 if (r->out.return_authenticator == NULL) {
14245                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14246                 }
14247                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14248                 if (r->out.forest_trust_info == NULL) {
14249                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14250                 }
14251                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14252                 if (*r->out.forest_trust_info) {
14253                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14254                 }
14255                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14256         }
14257         return NDR_ERR_SUCCESS;
14258 }
14259
14260 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
14261 {
14262         uint32_t _ptr_server_name;
14263         uint32_t _ptr_forest_trust_info;
14264         TALLOC_CTX *_mem_save_server_name_0;
14265         TALLOC_CTX *_mem_save_credential_0;
14266         TALLOC_CTX *_mem_save_return_authenticator_0;
14267         TALLOC_CTX *_mem_save_forest_trust_info_0;
14268         TALLOC_CTX *_mem_save_forest_trust_info_1;
14269         if (flags & NDR_IN) {
14270                 ZERO_STRUCT(r->out);
14271
14272                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14273                 if (_ptr_server_name) {
14274                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14275                 } else {
14276                         r->in.server_name = NULL;
14277                 }
14278                 if (r->in.server_name) {
14279                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14280                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14281                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14282                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14283                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14284                                 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));
14285                         }
14286                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14287                         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));
14288                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14289                 }
14290                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14291                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14292                 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14293                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.trusted_domain_name), ndr_get_array_length(ndr, &r->in.trusted_domain_name));
14294                 }
14295                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14296                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.trusted_domain_name, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t), CH_UTF16));
14297                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14298                         NDR_PULL_ALLOC(ndr, r->in.credential);
14299                 }
14300                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14301                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14302                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14303                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14304                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14305                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14306                 ZERO_STRUCTP(r->out.return_authenticator);
14307                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14308                 ZERO_STRUCTP(r->out.forest_trust_info);
14309         }
14310         if (flags & NDR_OUT) {
14311                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14312                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14313                 }
14314                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14315                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14316                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14317                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14318                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14319                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14320                 }
14321                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14322                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14323                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14324                 if (_ptr_forest_trust_info) {
14325                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14326                 } else {
14327                         *r->out.forest_trust_info = NULL;
14328                 }
14329                 if (*r->out.forest_trust_info) {
14330                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14331                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14332                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14333                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14334                 }
14335                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14336                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14337         }
14338         return NDR_ERR_SUCCESS;
14339 }
14340
14341 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
14342 {
14343         ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
14344         ndr->depth++;
14345         if (flags & NDR_SET_VALUES) {
14346                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14347         }
14348         if (flags & NDR_IN) {
14349                 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
14350                 ndr->depth++;
14351                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14352                 ndr->depth++;
14353                 if (r->in.server_name) {
14354                         ndr_print_string(ndr, "server_name", r->in.server_name);
14355                 }
14356                 ndr->depth--;
14357                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14358                 ndr->depth++;
14359                 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14360                 ndr->depth--;
14361                 ndr_print_ptr(ndr, "credential", r->in.credential);
14362                 ndr->depth++;
14363                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14364                 ndr->depth--;
14365                 ndr_print_uint32(ndr, "flags", r->in.flags);
14366                 ndr->depth--;
14367         }
14368         if (flags & NDR_OUT) {
14369                 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
14370                 ndr->depth++;
14371                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14372                 ndr->depth++;
14373                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14374                 ndr->depth--;
14375                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14376                 ndr->depth++;
14377                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14378                 ndr->depth++;
14379                 if (*r->out.forest_trust_info) {
14380                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14381                 }
14382                 ndr->depth--;
14383                 ndr->depth--;
14384                 ndr_print_WERROR(ndr, "result", r->out.result);
14385                 ndr->depth--;
14386         }
14387         ndr->depth--;
14388 }
14389
14390 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
14391 {
14392         if (flags & NDR_IN) {
14393                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14394                 if (r->in.server_name) {
14395                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14396                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14397                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14398                         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));
14399                 }
14400                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
14401                 if (r->in.computer_name) {
14402                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14403                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14404                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14405                         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));
14406                 }
14407                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
14408                 if (r->in.credential) {
14409                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14410                 }
14411                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
14412                 if (r->in.return_authenticator) {
14413                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14414                 }
14415                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
14416                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14417                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14418                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
14419                 if (r->in.flags == NULL) {
14420                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14421                 }
14422                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
14423         }
14424         if (flags & NDR_OUT) {
14425                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
14426                 if (r->out.return_authenticator) {
14427                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14428                 }
14429                 if (r->out.validation == NULL) {
14430                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14431                 }
14432                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14433                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14434                 if (r->out.authoritative == NULL) {
14435                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14436                 }
14437                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
14438                 if (r->out.flags == NULL) {
14439                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14440                 }
14441                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
14442                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14443         }
14444         return NDR_ERR_SUCCESS;
14445 }
14446
14447 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
14448 {
14449         uint32_t _ptr_server_name;
14450         uint32_t _ptr_computer_name;
14451         uint32_t _ptr_credential;
14452         uint32_t _ptr_return_authenticator;
14453         TALLOC_CTX *_mem_save_server_name_0;
14454         TALLOC_CTX *_mem_save_computer_name_0;
14455         TALLOC_CTX *_mem_save_credential_0;
14456         TALLOC_CTX *_mem_save_return_authenticator_0;
14457         TALLOC_CTX *_mem_save_validation_0;
14458         TALLOC_CTX *_mem_save_authoritative_0;
14459         TALLOC_CTX *_mem_save_flags_0;
14460         if (flags & NDR_IN) {
14461                 ZERO_STRUCT(r->out);
14462
14463                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14464                 if (_ptr_server_name) {
14465                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14466                 } else {
14467                         r->in.server_name = NULL;
14468                 }
14469                 if (r->in.server_name) {
14470                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14471                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14472                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14473                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14474                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14475                                 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));
14476                         }
14477                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14478                         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));
14479                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14480                 }
14481                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
14482                 if (_ptr_computer_name) {
14483                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
14484                 } else {
14485                         r->in.computer_name = NULL;
14486                 }
14487                 if (r->in.computer_name) {
14488                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14489                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
14490                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14491                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14492                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14493                                 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));
14494                         }
14495                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14496                         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));
14497                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
14498                 }
14499                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
14500                 if (_ptr_credential) {
14501                         NDR_PULL_ALLOC(ndr, r->in.credential);
14502                 } else {
14503                         r->in.credential = NULL;
14504                 }
14505                 if (r->in.credential) {
14506                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14507                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
14508                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14509                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
14510                 }
14511                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14512                 if (_ptr_return_authenticator) {
14513                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
14514                 } else {
14515                         r->in.return_authenticator = NULL;
14516                 }
14517                 if (r->in.return_authenticator) {
14518                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14519                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
14520                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14521                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14522                 }
14523                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
14524                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14525                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14526                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
14527                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14528                         NDR_PULL_ALLOC(ndr, r->in.flags);
14529                 }
14530                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14531                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
14532                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
14533                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14534                 NDR_PULL_ALLOC(ndr, r->out.validation);
14535                 ZERO_STRUCTP(r->out.validation);
14536                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14537                 ZERO_STRUCTP(r->out.authoritative);
14538                 NDR_PULL_ALLOC(ndr, r->out.flags);
14539                 *r->out.flags = *r->in.flags;
14540         }
14541         if (flags & NDR_OUT) {
14542                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14543                 if (_ptr_return_authenticator) {
14544                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14545                 } else {
14546                         r->out.return_authenticator = NULL;
14547                 }
14548                 if (r->out.return_authenticator) {
14549                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14550                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
14551                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14552                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14553                 }
14554                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14555                         NDR_PULL_ALLOC(ndr, r->out.validation);
14556                 }
14557                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
14558                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
14559                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14560                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14561                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
14562                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14563                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
14564                 }
14565                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
14566                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
14567                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
14568                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
14569                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14570                         NDR_PULL_ALLOC(ndr, r->out.flags);
14571                 }
14572                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14573                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
14574                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
14575                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14576                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14577         }
14578         return NDR_ERR_SUCCESS;
14579 }
14580
14581 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
14582 {
14583         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
14584         ndr->depth++;
14585         if (flags & NDR_SET_VALUES) {
14586                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14587         }
14588         if (flags & NDR_IN) {
14589                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
14590                 ndr->depth++;
14591                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14592                 ndr->depth++;
14593                 if (r->in.server_name) {
14594                         ndr_print_string(ndr, "server_name", r->in.server_name);
14595                 }
14596                 ndr->depth--;
14597                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14598                 ndr->depth++;
14599                 if (r->in.computer_name) {
14600                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
14601                 }
14602                 ndr->depth--;
14603                 ndr_print_ptr(ndr, "credential", r->in.credential);
14604                 ndr->depth++;
14605                 if (r->in.credential) {
14606                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14607                 }
14608                 ndr->depth--;
14609                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
14610                 ndr->depth++;
14611                 if (r->in.return_authenticator) {
14612                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
14613                 }
14614                 ndr->depth--;
14615                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
14616                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
14617                 ndr_print_netr_LogonInfo(ndr, "logon", &r->in.logon);
14618                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
14619                 ndr_print_ptr(ndr, "flags", r->in.flags);
14620                 ndr->depth++;
14621                 ndr_print_uint32(ndr, "flags", *r->in.flags);
14622                 ndr->depth--;
14623                 ndr->depth--;
14624         }
14625         if (flags & NDR_OUT) {
14626                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
14627                 ndr->depth++;
14628                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14629                 ndr->depth++;
14630                 if (r->out.return_authenticator) {
14631                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14632                 }
14633                 ndr->depth--;
14634                 ndr_print_ptr(ndr, "validation", r->out.validation);
14635                 ndr->depth++;
14636                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
14637                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
14638                 ndr->depth--;
14639                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
14640                 ndr->depth++;
14641                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
14642                 ndr->depth--;
14643                 ndr_print_ptr(ndr, "flags", r->out.flags);
14644                 ndr->depth++;
14645                 ndr_print_uint32(ndr, "flags", *r->out.flags);
14646                 ndr->depth--;
14647                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14648                 ndr->depth--;
14649         }
14650         ndr->depth--;
14651 }
14652
14653 static enum ndr_err_code ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14654 {
14655         if (flags & NDR_IN) {
14656         }
14657         if (flags & NDR_OUT) {
14658                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14659         }
14660         return NDR_ERR_SUCCESS;
14661 }
14662
14663 static enum ndr_err_code ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERGETTRUSTINFO *r)
14664 {
14665         if (flags & NDR_IN) {
14666         }
14667         if (flags & NDR_OUT) {
14668                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14669         }
14670         return NDR_ERR_SUCCESS;
14671 }
14672
14673 _PUBLIC_ void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14674 {
14675         ndr_print_struct(ndr, name, "netr_NETRSERVERGETTRUSTINFO");
14676         ndr->depth++;
14677         if (flags & NDR_SET_VALUES) {
14678                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14679         }
14680         if (flags & NDR_IN) {
14681                 ndr_print_struct(ndr, "in", "netr_NETRSERVERGETTRUSTINFO");
14682                 ndr->depth++;
14683                 ndr->depth--;
14684         }
14685         if (flags & NDR_OUT) {
14686                 ndr_print_struct(ndr, "out", "netr_NETRSERVERGETTRUSTINFO");
14687                 ndr->depth++;
14688                 ndr_print_WERROR(ndr, "result", r->out.result);
14689                 ndr->depth--;
14690         }
14691         ndr->depth--;
14692 }
14693
14694 static const struct ndr_interface_call netlogon_calls[] = {
14695         {
14696                 "netr_LogonUasLogon",
14697                 sizeof(struct netr_LogonUasLogon),
14698                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
14699                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
14700                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
14701                 false,
14702         },
14703         {
14704                 "netr_LogonUasLogoff",
14705                 sizeof(struct netr_LogonUasLogoff),
14706                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
14707                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
14708                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
14709                 false,
14710         },
14711         {
14712                 "netr_LogonSamLogon",
14713                 sizeof(struct netr_LogonSamLogon),
14714                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
14715                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
14716                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
14717                 false,
14718         },
14719         {
14720                 "netr_LogonSamLogoff",
14721                 sizeof(struct netr_LogonSamLogoff),
14722                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
14723                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
14724                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
14725                 false,
14726         },
14727         {
14728                 "netr_ServerReqChallenge",
14729                 sizeof(struct netr_ServerReqChallenge),
14730                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
14731                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
14732                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
14733                 false,
14734         },
14735         {
14736                 "netr_ServerAuthenticate",
14737                 sizeof(struct netr_ServerAuthenticate),
14738                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
14739                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
14740                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
14741                 false,
14742         },
14743         {
14744                 "netr_ServerPasswordSet",
14745                 sizeof(struct netr_ServerPasswordSet),
14746                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
14747                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
14748                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
14749                 false,
14750         },
14751         {
14752                 "netr_DatabaseDeltas",
14753                 sizeof(struct netr_DatabaseDeltas),
14754                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
14755                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
14756                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
14757                 false,
14758         },
14759         {
14760                 "netr_DatabaseSync",
14761                 sizeof(struct netr_DatabaseSync),
14762                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
14763                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
14764                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
14765                 false,
14766         },
14767         {
14768                 "netr_AccountDeltas",
14769                 sizeof(struct netr_AccountDeltas),
14770                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
14771                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
14772                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
14773                 false,
14774         },
14775         {
14776                 "netr_AccountSync",
14777                 sizeof(struct netr_AccountSync),
14778                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
14779                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
14780                 (ndr_print_function_t) ndr_print_netr_AccountSync,
14781                 false,
14782         },
14783         {
14784                 "netr_GetDcName",
14785                 sizeof(struct netr_GetDcName),
14786                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
14787                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
14788                 (ndr_print_function_t) ndr_print_netr_GetDcName,
14789                 false,
14790         },
14791         {
14792                 "netr_LogonControl",
14793                 sizeof(struct netr_LogonControl),
14794                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
14795                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
14796                 (ndr_print_function_t) ndr_print_netr_LogonControl,
14797                 false,
14798         },
14799         {
14800                 "netr_GetAnyDCName",
14801                 sizeof(struct netr_GetAnyDCName),
14802                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
14803                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
14804                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
14805                 false,
14806         },
14807         {
14808                 "netr_LogonControl2",
14809                 sizeof(struct netr_LogonControl2),
14810                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
14811                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
14812                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
14813                 false,
14814         },
14815         {
14816                 "netr_ServerAuthenticate2",
14817                 sizeof(struct netr_ServerAuthenticate2),
14818                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
14819                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
14820                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
14821                 false,
14822         },
14823         {
14824                 "netr_DatabaseSync2",
14825                 sizeof(struct netr_DatabaseSync2),
14826                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
14827                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
14828                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
14829                 false,
14830         },
14831         {
14832                 "netr_DatabaseRedo",
14833                 sizeof(struct netr_DatabaseRedo),
14834                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
14835                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
14836                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
14837                 false,
14838         },
14839         {
14840                 "netr_LogonControl2Ex",
14841                 sizeof(struct netr_LogonControl2Ex),
14842                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
14843                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
14844                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
14845                 false,
14846         },
14847         {
14848                 "netr_NetrEnumerateTrustedDomains",
14849                 sizeof(struct netr_NetrEnumerateTrustedDomains),
14850                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
14851                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
14852                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
14853                 false,
14854         },
14855         {
14856                 "netr_DsRGetDCName",
14857                 sizeof(struct netr_DsRGetDCName),
14858                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
14859                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
14860                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
14861                 false,
14862         },
14863         {
14864                 "netr_NETRLOGONDUMMYROUTINE1",
14865                 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
14866                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
14867                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
14868                 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
14869                 false,
14870         },
14871         {
14872                 "netr_NETRLOGONSETSERVICEBITS",
14873                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
14874                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
14875                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
14876                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
14877                 false,
14878         },
14879         {
14880                 "netr_LogonGetTrustRid",
14881                 sizeof(struct netr_LogonGetTrustRid),
14882                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
14883                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
14884                 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
14885                 false,
14886         },
14887         {
14888                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
14889                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
14890                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
14891                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
14892                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
14893                 false,
14894         },
14895         {
14896                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
14897                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
14898                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14899                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14900                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14901                 false,
14902         },
14903         {
14904                 "netr_ServerAuthenticate3",
14905                 sizeof(struct netr_ServerAuthenticate3),
14906                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
14907                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
14908                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
14909                 false,
14910         },
14911         {
14912                 "netr_DsRGetDCNameEx",
14913                 sizeof(struct netr_DsRGetDCNameEx),
14914                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
14915                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
14916                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
14917                 false,
14918         },
14919         {
14920                 "netr_DsRGetSiteName",
14921                 sizeof(struct netr_DsRGetSiteName),
14922                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
14923                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
14924                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
14925                 false,
14926         },
14927         {
14928                 "netr_LogonGetDomainInfo",
14929                 sizeof(struct netr_LogonGetDomainInfo),
14930                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
14931                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
14932                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
14933                 false,
14934         },
14935         {
14936                 "netr_ServerPasswordSet2",
14937                 sizeof(struct netr_ServerPasswordSet2),
14938                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
14939                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
14940                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
14941                 false,
14942         },
14943         {
14944                 "netr_ServerPasswordGet",
14945                 sizeof(struct netr_ServerPasswordGet),
14946                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
14947                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
14948                 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
14949                 false,
14950         },
14951         {
14952                 "netr_NETRLOGONSENDTOSAM",
14953                 sizeof(struct netr_NETRLOGONSENDTOSAM),
14954                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
14955                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
14956                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
14957                 false,
14958         },
14959         {
14960                 "netr_DsRAddressToSitenamesW",
14961                 sizeof(struct netr_DsRAddressToSitenamesW),
14962                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
14963                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
14964                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
14965                 false,
14966         },
14967         {
14968                 "netr_DsRGetDCNameEx2",
14969                 sizeof(struct netr_DsRGetDCNameEx2),
14970                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
14971                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
14972                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
14973                 false,
14974         },
14975         {
14976                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
14977                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
14978                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14979                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14980                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14981                 false,
14982         },
14983         {
14984                 "netr_NetrEnumerateTrustedDomainsEx",
14985                 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
14986                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
14987                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
14988                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
14989                 false,
14990         },
14991         {
14992                 "netr_DsRAddressToSitenamesExW",
14993                 sizeof(struct netr_DsRAddressToSitenamesExW),
14994                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
14995                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
14996                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
14997                 false,
14998         },
14999         {
15000                 "netr_DsrGetDcSiteCoverageW",
15001                 sizeof(struct netr_DsrGetDcSiteCoverageW),
15002                 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
15003                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
15004                 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
15005                 false,
15006         },
15007         {
15008                 "netr_LogonSamLogonEx",
15009                 sizeof(struct netr_LogonSamLogonEx),
15010                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
15011                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
15012                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
15013                 false,
15014         },
15015         {
15016                 "netr_DsrEnumerateDomainTrusts",
15017                 sizeof(struct netr_DsrEnumerateDomainTrusts),
15018                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
15019                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
15020                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
15021                 false,
15022         },
15023         {
15024                 "netr_DsrDeregisterDNSHostRecords",
15025                 sizeof(struct netr_DsrDeregisterDNSHostRecords),
15026                 (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
15027                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
15028                 (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
15029                 false,
15030         },
15031         {
15032                 "netr_ServerTrustPasswordsGet",
15033                 sizeof(struct netr_ServerTrustPasswordsGet),
15034                 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
15035                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
15036                 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
15037                 false,
15038         },
15039         {
15040                 "netr_DsRGetForestTrustInformation",
15041                 sizeof(struct netr_DsRGetForestTrustInformation),
15042                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
15043                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
15044                 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
15045                 false,
15046         },
15047         {
15048                 "netr_GetForestTrustInformation",
15049                 sizeof(struct netr_GetForestTrustInformation),
15050                 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
15051                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
15052                 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
15053                 false,
15054         },
15055         {
15056                 "netr_LogonSamLogonWithFlags",
15057                 sizeof(struct netr_LogonSamLogonWithFlags),
15058                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
15059                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
15060                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
15061                 false,
15062         },
15063         {
15064                 "netr_NETRSERVERGETTRUSTINFO",
15065                 sizeof(struct netr_NETRSERVERGETTRUSTINFO),
15066                 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERGETTRUSTINFO,
15067                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERGETTRUSTINFO,
15068                 (ndr_print_function_t) ndr_print_netr_NETRSERVERGETTRUSTINFO,
15069                 false,
15070         },
15071         { NULL, 0, NULL, NULL, NULL, false }
15072 };
15073
15074 static const char * const netlogon_endpoint_strings[] = {
15075         "ncacn_np:[\\pipe\\netlogon]", 
15076         "ncacn_ip_tcp:", 
15077         "ncalrpc:", 
15078 };
15079
15080 static const struct ndr_interface_string_array netlogon_endpoints = {
15081         .count  = 3,
15082         .names  = netlogon_endpoint_strings
15083 };
15084
15085 static const char * const netlogon_authservice_strings[] = {
15086         "host", 
15087 };
15088
15089 static const struct ndr_interface_string_array netlogon_authservices = {
15090         .count  = 1,
15091         .names  = netlogon_authservice_strings
15092 };
15093
15094
15095 const struct ndr_interface_table ndr_table_netlogon = {
15096         .name           = "netlogon",
15097         .syntax_id      = {
15098                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
15099                 NDR_NETLOGON_VERSION
15100         },
15101         .helpstring     = NDR_NETLOGON_HELPSTRING,
15102         .num_calls      = 47,
15103         .calls          = netlogon_calls,
15104         .endpoints      = &netlogon_endpoints,
15105         .authservices   = &netlogon_authservices
15106 };
15107