s3/s4: Add new autogenerated files from "make idl_full"
[ira/wip.git] / 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_misc.h"
7 #include "librpc/gen_ndr/ndr_lsa.h"
8 #include "librpc/gen_ndr/ndr_samr.h"
9 #include "librpc/gen_ndr/ndr_security.h"
10 #include "librpc/gen_ndr/ndr_nbt.h"
11 static enum ndr_err_code ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r)
12 {
13         if (ndr_flags & NDR_SCALARS) {
14                 NDR_CHECK(ndr_push_align(ndr, 4));
15                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
16                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv));
17                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags));
18                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count));
19                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count));
20                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon));
21                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff));
22                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time));
23                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time));
24                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age));
25                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change));
26                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change));
27                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer));
28                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
29                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path));
30                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
31         }
32         if (ndr_flags & NDR_BUFFERS) {
33                 if (r->account_name) {
34                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
35                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
36                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
37                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
38                 }
39                 if (r->computer) {
40                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
41                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
42                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
43                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
44                 }
45                 if (r->domain) {
46                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
47                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
48                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
49                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
50                 }
51                 if (r->script_path) {
52                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
53                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
54                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
55                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
56                 }
57         }
58         return NDR_ERR_SUCCESS;
59 }
60
61 static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r)
62 {
63         uint32_t _ptr_account_name;
64         TALLOC_CTX *_mem_save_account_name_0;
65         uint32_t _ptr_computer;
66         TALLOC_CTX *_mem_save_computer_0;
67         uint32_t _ptr_domain;
68         TALLOC_CTX *_mem_save_domain_0;
69         uint32_t _ptr_script_path;
70         TALLOC_CTX *_mem_save_script_path_0;
71         if (ndr_flags & NDR_SCALARS) {
72                 NDR_CHECK(ndr_pull_align(ndr, 4));
73                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
74                 if (_ptr_account_name) {
75                         NDR_PULL_ALLOC(ndr, r->account_name);
76                 } else {
77                         r->account_name = NULL;
78                 }
79                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv));
80                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags));
81                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count));
82                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count));
83                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon));
84                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff));
85                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time));
86                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time));
87                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age));
88                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change));
89                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change));
90                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer));
91                 if (_ptr_computer) {
92                         NDR_PULL_ALLOC(ndr, r->computer);
93                 } else {
94                         r->computer = NULL;
95                 }
96                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
97                 if (_ptr_domain) {
98                         NDR_PULL_ALLOC(ndr, r->domain);
99                 } else {
100                         r->domain = NULL;
101                 }
102                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path));
103                 if (_ptr_script_path) {
104                         NDR_PULL_ALLOC(ndr, r->script_path);
105                 } else {
106                         r->script_path = NULL;
107                 }
108                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
109         }
110         if (ndr_flags & NDR_BUFFERS) {
111                 if (r->account_name) {
112                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
113                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
114                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
115                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
116                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
117                                 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));
118                         }
119                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
120                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
121                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
122                 }
123                 if (r->computer) {
124                         _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr);
125                         NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0);
126                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer));
127                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer));
128                         if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) {
129                                 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));
130                         }
131                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t)));
132                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16));
133                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0);
134                 }
135                 if (r->domain) {
136                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
137                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
138                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
139                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
140                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
141                                 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));
142                         }
143                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
144                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
145                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
146                 }
147                 if (r->script_path) {
148                         _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
149                         NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0);
150                         NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path));
151                         NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path));
152                         if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) {
153                                 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));
154                         }
155                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t)));
156                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16));
157                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0);
158                 }
159         }
160         return NDR_ERR_SUCCESS;
161 }
162
163 _PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r)
164 {
165         ndr_print_struct(ndr, name, "netr_UasInfo");
166         ndr->depth++;
167         ndr_print_ptr(ndr, "account_name", r->account_name);
168         ndr->depth++;
169         if (r->account_name) {
170                 ndr_print_string(ndr, "account_name", r->account_name);
171         }
172         ndr->depth--;
173         ndr_print_uint32(ndr, "priv", r->priv);
174         ndr_print_uint32(ndr, "auth_flags", r->auth_flags);
175         ndr_print_uint32(ndr, "logon_count", r->logon_count);
176         ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count);
177         ndr_print_time_t(ndr, "last_logon", r->last_logon);
178         ndr_print_time_t(ndr, "last_logoff", r->last_logoff);
179         ndr_print_time_t(ndr, "logoff_time", r->logoff_time);
180         ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time);
181         ndr_print_uint32(ndr, "password_age", r->password_age);
182         ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change);
183         ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change);
184         ndr_print_ptr(ndr, "computer", r->computer);
185         ndr->depth++;
186         if (r->computer) {
187                 ndr_print_string(ndr, "computer", r->computer);
188         }
189         ndr->depth--;
190         ndr_print_ptr(ndr, "domain", r->domain);
191         ndr->depth++;
192         if (r->domain) {
193                 ndr_print_string(ndr, "domain", r->domain);
194         }
195         ndr->depth--;
196         ndr_print_ptr(ndr, "script_path", r->script_path);
197         ndr->depth++;
198         if (r->script_path) {
199                 ndr_print_string(ndr, "script_path", r->script_path);
200         }
201         ndr->depth--;
202         ndr_print_uint32(ndr, "unknown", r->unknown);
203         ndr->depth--;
204 }
205
206 static enum ndr_err_code ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r)
207 {
208         if (ndr_flags & NDR_SCALARS) {
209                 NDR_CHECK(ndr_push_align(ndr, 4));
210                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration));
211                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
212         }
213         if (ndr_flags & NDR_BUFFERS) {
214         }
215         return NDR_ERR_SUCCESS;
216 }
217
218 static enum ndr_err_code ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r)
219 {
220         if (ndr_flags & NDR_SCALARS) {
221                 NDR_CHECK(ndr_pull_align(ndr, 4));
222                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration));
223                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
224         }
225         if (ndr_flags & NDR_BUFFERS) {
226         }
227         return NDR_ERR_SUCCESS;
228 }
229
230 _PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r)
231 {
232         ndr_print_struct(ndr, name, "netr_UasLogoffInfo");
233         ndr->depth++;
234         ndr_print_uint32(ndr, "duration", r->duration);
235         ndr_print_uint16(ndr, "logon_count", r->logon_count);
236         ndr->depth--;
237 }
238
239 _PUBLIC_ enum ndr_err_code ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r)
240 {
241         if (ndr_flags & NDR_SCALARS) {
242                 NDR_CHECK(ndr_push_align(ndr, 4));
243                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->lockout_duration));
244                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reset_count));
245                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_attempt_lockout));
246                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy));
247         }
248         if (ndr_flags & NDR_BUFFERS) {
249         }
250         return NDR_ERR_SUCCESS;
251 }
252
253 _PUBLIC_ enum ndr_err_code ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r)
254 {
255         if (ndr_flags & NDR_SCALARS) {
256                 NDR_CHECK(ndr_pull_align(ndr, 4));
257                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->lockout_duration));
258                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reset_count));
259                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_attempt_lockout));
260                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
261         }
262         if (ndr_flags & NDR_BUFFERS) {
263         }
264         return NDR_ERR_SUCCESS;
265 }
266
267 _PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r)
268 {
269         ndr_print_struct(ndr, name, "netr_AcctLockStr");
270         ndr->depth++;
271         ndr_print_dlong(ndr, "lockout_duration", r->lockout_duration);
272         ndr_print_udlong(ndr, "reset_count", r->reset_count);
273         ndr_print_uint32(ndr, "bad_attempt_lockout", r->bad_attempt_lockout);
274         ndr_print_uint32(ndr, "dummy", r->dummy);
275         ndr->depth--;
276 }
277
278 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonParameterControl(struct ndr_push *ndr, int ndr_flags, uint32_t r)
279 {
280         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
281         return NDR_ERR_SUCCESS;
282 }
283
284 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonParameterControl(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
285 {
286         uint32_t v;
287         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
288         *r = v;
289         return NDR_ERR_SUCCESS;
290 }
291
292 _PUBLIC_ void ndr_print_netr_LogonParameterControl(struct ndr_print *ndr, const char *name, uint32_t r)
293 {
294         ndr_print_uint32(ndr, name, r);
295         ndr->depth++;
296         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED, r);
297         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS, r);
298         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS, r);
299         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT, r);
300         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH, r);
301         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, r);
302         ndr->depth--;
303 }
304
305 static enum ndr_err_code ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
306 {
307         if (ndr_flags & NDR_SCALARS) {
308                 NDR_CHECK(ndr_push_align(ndr, 4));
309                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
310                 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr, NDR_SCALARS, r->parameter_control));
311                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
312                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
313                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
314                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
315         }
316         if (ndr_flags & NDR_BUFFERS) {
317                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
318                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
319                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
320         }
321         return NDR_ERR_SUCCESS;
322 }
323
324 static enum ndr_err_code ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
325 {
326         if (ndr_flags & NDR_SCALARS) {
327                 NDR_CHECK(ndr_pull_align(ndr, 4));
328                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
329                 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr, NDR_SCALARS, &r->parameter_control));
330                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
331                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
332                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
333                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
334         }
335         if (ndr_flags & NDR_BUFFERS) {
336                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
337                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
338                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
339         }
340         return NDR_ERR_SUCCESS;
341 }
342
343 _PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
344 {
345         ndr_print_struct(ndr, name, "netr_IdentityInfo");
346         ndr->depth++;
347         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
348         ndr_print_netr_LogonParameterControl(ndr, "parameter_control", r->parameter_control);
349         ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
350         ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
351         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
352         ndr_print_lsa_String(ndr, "workstation", &r->workstation);
353         ndr->depth--;
354 }
355
356 static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
357 {
358         if (ndr_flags & NDR_SCALARS) {
359                 NDR_CHECK(ndr_push_align(ndr, 4));
360                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
361                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
362                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
363         }
364         if (ndr_flags & NDR_BUFFERS) {
365                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
366         }
367         return NDR_ERR_SUCCESS;
368 }
369
370 static enum ndr_err_code ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r)
371 {
372         if (ndr_flags & NDR_SCALARS) {
373                 NDR_CHECK(ndr_pull_align(ndr, 4));
374                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
375                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
376                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
377         }
378         if (ndr_flags & NDR_BUFFERS) {
379                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
380         }
381         return NDR_ERR_SUCCESS;
382 }
383
384 _PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
385 {
386         ndr_print_struct(ndr, name, "netr_PasswordInfo");
387         ndr->depth++;
388         ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
389         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
390         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
391         ndr->depth--;
392 }
393
394 static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
395 {
396         {
397                 uint32_t _flags_save_STRUCT = ndr->flags;
398                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
399                 if (ndr_flags & NDR_SCALARS) {
400                         NDR_CHECK(ndr_push_align(ndr, 4));
401                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
402                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
403                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
404                 }
405                 if (ndr_flags & NDR_BUFFERS) {
406                         if (r->data) {
407                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
408                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
409                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
410                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
411                         }
412                 }
413                 ndr->flags = _flags_save_STRUCT;
414         }
415         return NDR_ERR_SUCCESS;
416 }
417
418 static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
419 {
420         uint32_t _ptr_data;
421         TALLOC_CTX *_mem_save_data_0;
422         {
423                 uint32_t _flags_save_STRUCT = ndr->flags;
424                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
425                 if (ndr_flags & NDR_SCALARS) {
426                         NDR_CHECK(ndr_pull_align(ndr, 4));
427                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
428                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
429                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
430                         if (_ptr_data) {
431                                 NDR_PULL_ALLOC(ndr, r->data);
432                         } else {
433                                 r->data = NULL;
434                         }
435                 }
436                 if (ndr_flags & NDR_BUFFERS) {
437                         if (r->data) {
438                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
439                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
440                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
441                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
442                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
443                                         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));
444                                 }
445                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
446                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
447                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
448                         }
449                         if (r->data) {
450                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
451                         }
452                         if (r->data) {
453                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
454                         }
455                 }
456                 ndr->flags = _flags_save_STRUCT;
457         }
458         return NDR_ERR_SUCCESS;
459 }
460
461 _PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
462 {
463         ndr_print_struct(ndr, name, "netr_ChallengeResponse");
464         {
465                 uint32_t _flags_save_STRUCT = ndr->flags;
466                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
467                 ndr->depth++;
468                 ndr_print_uint16(ndr, "length", r->length);
469                 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
470                 ndr_print_ptr(ndr, "data", r->data);
471                 ndr->depth++;
472                 if (r->data) {
473                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
474                 }
475                 ndr->depth--;
476                 ndr->depth--;
477                 ndr->flags = _flags_save_STRUCT;
478         }
479 }
480
481 static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
482 {
483         {
484                 uint32_t _flags_save_STRUCT = ndr->flags;
485                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
486                 if (ndr_flags & NDR_SCALARS) {
487                         NDR_CHECK(ndr_push_align(ndr, 4));
488                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
489                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
490                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
491                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
492                 }
493                 if (ndr_flags & NDR_BUFFERS) {
494                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
495                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
496                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
497                 }
498                 ndr->flags = _flags_save_STRUCT;
499         }
500         return NDR_ERR_SUCCESS;
501 }
502
503 static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
504 {
505         {
506                 uint32_t _flags_save_STRUCT = ndr->flags;
507                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
508                 if (ndr_flags & NDR_SCALARS) {
509                         NDR_CHECK(ndr_pull_align(ndr, 4));
510                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
511                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
512                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
513                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
514                 }
515                 if (ndr_flags & NDR_BUFFERS) {
516                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
517                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
518                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
519                 }
520                 ndr->flags = _flags_save_STRUCT;
521         }
522         return NDR_ERR_SUCCESS;
523 }
524
525 _PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
526 {
527         ndr_print_struct(ndr, name, "netr_NetworkInfo");
528         {
529                 uint32_t _flags_save_STRUCT = ndr->flags;
530                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
531                 ndr->depth++;
532                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
533                 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
534                 ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
535                 ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
536                 ndr->depth--;
537                 ndr->flags = _flags_save_STRUCT;
538         }
539 }
540
541 static enum ndr_err_code ndr_push_netr_GenericInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_GenericInfo *r)
542 {
543         {
544                 uint32_t _flags_save_STRUCT = ndr->flags;
545                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
546                 if (ndr_flags & NDR_SCALARS) {
547                         NDR_CHECK(ndr_push_align(ndr, 4));
548                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
549                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->package_name));
550                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
551                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
552                 }
553                 if (ndr_flags & NDR_BUFFERS) {
554                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
555                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
556                         if (r->data) {
557                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
558                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
559                         }
560                 }
561                 ndr->flags = _flags_save_STRUCT;
562         }
563         return NDR_ERR_SUCCESS;
564 }
565
566 static enum ndr_err_code ndr_pull_netr_GenericInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_GenericInfo *r)
567 {
568         uint32_t _ptr_data;
569         TALLOC_CTX *_mem_save_data_0;
570         {
571                 uint32_t _flags_save_STRUCT = ndr->flags;
572                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
573                 if (ndr_flags & NDR_SCALARS) {
574                         NDR_CHECK(ndr_pull_align(ndr, 4));
575                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
576                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->package_name));
577                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
578                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
579                         if (_ptr_data) {
580                                 NDR_PULL_ALLOC(ndr, r->data);
581                         } else {
582                                 r->data = NULL;
583                         }
584                 }
585                 if (ndr_flags & NDR_BUFFERS) {
586                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
587                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
588                         if (r->data) {
589                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
590                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
591                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
592                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
593                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
594                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
595                         }
596                         if (r->data) {
597                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
598                         }
599                 }
600                 ndr->flags = _flags_save_STRUCT;
601         }
602         return NDR_ERR_SUCCESS;
603 }
604
605 _PUBLIC_ void ndr_print_netr_GenericInfo(struct ndr_print *ndr, const char *name, const struct netr_GenericInfo *r)
606 {
607         ndr_print_struct(ndr, name, "netr_GenericInfo");
608         {
609                 uint32_t _flags_save_STRUCT = ndr->flags;
610                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
611                 ndr->depth++;
612                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
613                 ndr_print_lsa_String(ndr, "package_name", &r->package_name);
614                 ndr_print_uint32(ndr, "length", r->length);
615                 ndr_print_ptr(ndr, "data", r->data);
616                 ndr->depth++;
617                 if (r->data) {
618                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
619                 }
620                 ndr->depth--;
621                 ndr->depth--;
622                 ndr->flags = _flags_save_STRUCT;
623         }
624 }
625
626 static enum ndr_err_code ndr_push_netr_LogonInfoClass(struct ndr_push *ndr, int ndr_flags, enum netr_LogonInfoClass r)
627 {
628         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
629         return NDR_ERR_SUCCESS;
630 }
631
632 static enum ndr_err_code ndr_pull_netr_LogonInfoClass(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonInfoClass *r)
633 {
634         uint16_t v;
635         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
636         *r = v;
637         return NDR_ERR_SUCCESS;
638 }
639
640 _PUBLIC_ void ndr_print_netr_LogonInfoClass(struct ndr_print *ndr, const char *name, enum netr_LogonInfoClass r)
641 {
642         const char *val = NULL;
643
644         switch (r) {
645                 case NetlogonInteractiveInformation: val = "NetlogonInteractiveInformation"; break;
646                 case NetlogonNetworkInformation: val = "NetlogonNetworkInformation"; break;
647                 case NetlogonServiceInformation: val = "NetlogonServiceInformation"; break;
648                 case NetlogonGenericInformation: val = "NetlogonGenericInformation"; break;
649                 case NetlogonInteractiveTransitiveInformation: val = "NetlogonInteractiveTransitiveInformation"; break;
650                 case NetlogonNetworkTransitiveInformation: val = "NetlogonNetworkTransitiveInformation"; break;
651                 case NetlogonServiceTransitiveInformation: val = "NetlogonServiceTransitiveInformation"; break;
652         }
653         ndr_print_enum(ndr, name, "ENUM", val, r);
654 }
655
656 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, const union netr_LogonLevel *r)
657 {
658         if (ndr_flags & NDR_SCALARS) {
659                 int level = ndr_push_get_switch_value(ndr, r);
660                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, level));
661                 switch (level) {
662                         case NetlogonInteractiveInformation: {
663                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
664                         break; }
665
666                         case NetlogonNetworkInformation: {
667                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
668                         break; }
669
670                         case NetlogonServiceInformation: {
671                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
672                         break; }
673
674                         case NetlogonGenericInformation: {
675                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->generic));
676                         break; }
677
678                         case NetlogonInteractiveTransitiveInformation: {
679                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
680                         break; }
681
682                         case NetlogonNetworkTransitiveInformation: {
683                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
684                         break; }
685
686                         case NetlogonServiceTransitiveInformation: {
687                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
688                         break; }
689
690                         default:
691                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
692                 }
693         }
694         if (ndr_flags & NDR_BUFFERS) {
695                 int level = ndr_push_get_switch_value(ndr, r);
696                 switch (level) {
697                         case NetlogonInteractiveInformation:
698                                 if (r->password) {
699                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
700                                 }
701                         break;
702
703                         case NetlogonNetworkInformation:
704                                 if (r->network) {
705                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
706                                 }
707                         break;
708
709                         case NetlogonServiceInformation:
710                                 if (r->password) {
711                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
712                                 }
713                         break;
714
715                         case NetlogonGenericInformation:
716                                 if (r->generic) {
717                                         NDR_CHECK(ndr_push_netr_GenericInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
718                                 }
719                         break;
720
721                         case NetlogonInteractiveTransitiveInformation:
722                                 if (r->password) {
723                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
724                                 }
725                         break;
726
727                         case NetlogonNetworkTransitiveInformation:
728                                 if (r->network) {
729                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
730                                 }
731                         break;
732
733                         case NetlogonServiceTransitiveInformation:
734                                 if (r->password) {
735                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
736                                 }
737                         break;
738
739                         default:
740                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
741                 }
742         }
743         return NDR_ERR_SUCCESS;
744 }
745
746 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, union netr_LogonLevel *r)
747 {
748         int level;
749         uint16_t _level;
750         TALLOC_CTX *_mem_save_password_0;
751         TALLOC_CTX *_mem_save_network_0;
752         TALLOC_CTX *_mem_save_generic_0;
753         level = ndr_pull_get_switch_value(ndr, r);
754         if (ndr_flags & NDR_SCALARS) {
755                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
756                 if (_level != level) {
757                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
758                 }
759                 switch (level) {
760                         case NetlogonInteractiveInformation: {
761                                 uint32_t _ptr_password;
762                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
763                                 if (_ptr_password) {
764                                         NDR_PULL_ALLOC(ndr, r->password);
765                                 } else {
766                                         r->password = NULL;
767                                 }
768                         break; }
769
770                         case NetlogonNetworkInformation: {
771                                 uint32_t _ptr_network;
772                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
773                                 if (_ptr_network) {
774                                         NDR_PULL_ALLOC(ndr, r->network);
775                                 } else {
776                                         r->network = NULL;
777                                 }
778                         break; }
779
780                         case NetlogonServiceInformation: {
781                                 uint32_t _ptr_password;
782                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
783                                 if (_ptr_password) {
784                                         NDR_PULL_ALLOC(ndr, r->password);
785                                 } else {
786                                         r->password = NULL;
787                                 }
788                         break; }
789
790                         case NetlogonGenericInformation: {
791                                 uint32_t _ptr_generic;
792                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_generic));
793                                 if (_ptr_generic) {
794                                         NDR_PULL_ALLOC(ndr, r->generic);
795                                 } else {
796                                         r->generic = NULL;
797                                 }
798                         break; }
799
800                         case NetlogonInteractiveTransitiveInformation: {
801                                 uint32_t _ptr_password;
802                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
803                                 if (_ptr_password) {
804                                         NDR_PULL_ALLOC(ndr, r->password);
805                                 } else {
806                                         r->password = NULL;
807                                 }
808                         break; }
809
810                         case NetlogonNetworkTransitiveInformation: {
811                                 uint32_t _ptr_network;
812                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
813                                 if (_ptr_network) {
814                                         NDR_PULL_ALLOC(ndr, r->network);
815                                 } else {
816                                         r->network = NULL;
817                                 }
818                         break; }
819
820                         case NetlogonServiceTransitiveInformation: {
821                                 uint32_t _ptr_password;
822                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
823                                 if (_ptr_password) {
824                                         NDR_PULL_ALLOC(ndr, r->password);
825                                 } else {
826                                         r->password = NULL;
827                                 }
828                         break; }
829
830                         default:
831                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
832                 }
833         }
834         if (ndr_flags & NDR_BUFFERS) {
835                 switch (level) {
836                         case NetlogonInteractiveInformation:
837                                 if (r->password) {
838                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
839                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
840                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
841                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
842                                 }
843                         break;
844
845                         case NetlogonNetworkInformation:
846                                 if (r->network) {
847                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
848                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
849                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
850                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
851                                 }
852                         break;
853
854                         case NetlogonServiceInformation:
855                                 if (r->password) {
856                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
857                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
858                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
859                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
860                                 }
861                         break;
862
863                         case NetlogonGenericInformation:
864                                 if (r->generic) {
865                                         _mem_save_generic_0 = NDR_PULL_GET_MEM_CTX(ndr);
866                                         NDR_PULL_SET_MEM_CTX(ndr, r->generic, 0);
867                                         NDR_CHECK(ndr_pull_netr_GenericInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
868                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_generic_0, 0);
869                                 }
870                         break;
871
872                         case NetlogonInteractiveTransitiveInformation:
873                                 if (r->password) {
874                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
875                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
876                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
877                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
878                                 }
879                         break;
880
881                         case NetlogonNetworkTransitiveInformation:
882                                 if (r->network) {
883                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
884                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
885                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
886                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
887                                 }
888                         break;
889
890                         case NetlogonServiceTransitiveInformation:
891                                 if (r->password) {
892                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
893                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
894                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
895                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
896                                 }
897                         break;
898
899                         default:
900                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
901                 }
902         }
903         return NDR_ERR_SUCCESS;
904 }
905
906 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, const union netr_LogonLevel *r)
907 {
908         int level;
909         level = ndr_print_get_switch_value(ndr, r);
910         ndr_print_union(ndr, name, level, "netr_LogonLevel");
911         switch (level) {
912                 case NetlogonInteractiveInformation:
913                         ndr_print_ptr(ndr, "password", r->password);
914                         ndr->depth++;
915                         if (r->password) {
916                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
917                         }
918                         ndr->depth--;
919                 break;
920
921                 case NetlogonNetworkInformation:
922                         ndr_print_ptr(ndr, "network", r->network);
923                         ndr->depth++;
924                         if (r->network) {
925                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
926                         }
927                         ndr->depth--;
928                 break;
929
930                 case NetlogonServiceInformation:
931                         ndr_print_ptr(ndr, "password", r->password);
932                         ndr->depth++;
933                         if (r->password) {
934                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
935                         }
936                         ndr->depth--;
937                 break;
938
939                 case NetlogonGenericInformation:
940                         ndr_print_ptr(ndr, "generic", r->generic);
941                         ndr->depth++;
942                         if (r->generic) {
943                                 ndr_print_netr_GenericInfo(ndr, "generic", r->generic);
944                         }
945                         ndr->depth--;
946                 break;
947
948                 case NetlogonInteractiveTransitiveInformation:
949                         ndr_print_ptr(ndr, "password", r->password);
950                         ndr->depth++;
951                         if (r->password) {
952                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
953                         }
954                         ndr->depth--;
955                 break;
956
957                 case NetlogonNetworkTransitiveInformation:
958                         ndr_print_ptr(ndr, "network", r->network);
959                         ndr->depth++;
960                         if (r->network) {
961                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
962                         }
963                         ndr->depth--;
964                 break;
965
966                 case NetlogonServiceTransitiveInformation:
967                         ndr_print_ptr(ndr, "password", r->password);
968                         ndr->depth++;
969                         if (r->password) {
970                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
971                         }
972                         ndr->depth--;
973                 break;
974
975                 default:
976                         ndr_print_bad_level(ndr, name, level);
977         }
978 }
979
980 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
981 {
982         {
983                 uint32_t _flags_save_STRUCT = ndr->flags;
984                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
985                 if (ndr_flags & NDR_SCALARS) {
986                         NDR_CHECK(ndr_push_align(ndr, 1));
987                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
988                 }
989                 if (ndr_flags & NDR_BUFFERS) {
990                 }
991                 ndr->flags = _flags_save_STRUCT;
992         }
993         return NDR_ERR_SUCCESS;
994 }
995
996 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
997 {
998         {
999                 uint32_t _flags_save_STRUCT = ndr->flags;
1000                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1001                 if (ndr_flags & NDR_SCALARS) {
1002                         NDR_CHECK(ndr_pull_align(ndr, 1));
1003                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
1004                 }
1005                 if (ndr_flags & NDR_BUFFERS) {
1006                 }
1007                 ndr->flags = _flags_save_STRUCT;
1008         }
1009         return NDR_ERR_SUCCESS;
1010 }
1011
1012 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
1013 {
1014         ndr_print_struct(ndr, name, "netr_UserSessionKey");
1015         {
1016                 uint32_t _flags_save_STRUCT = ndr->flags;
1017                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1018                 ndr->depth++;
1019                 ndr_print_array_uint8(ndr, "key", r->key, 16);
1020                 ndr->depth--;
1021                 ndr->flags = _flags_save_STRUCT;
1022         }
1023 }
1024
1025 _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
1026 {
1027         {
1028                 uint32_t _flags_save_STRUCT = ndr->flags;
1029                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1030                 if (ndr_flags & NDR_SCALARS) {
1031                         NDR_CHECK(ndr_push_align(ndr, 1));
1032                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
1033                 }
1034                 if (ndr_flags & NDR_BUFFERS) {
1035                 }
1036                 ndr->flags = _flags_save_STRUCT;
1037         }
1038         return NDR_ERR_SUCCESS;
1039 }
1040
1041 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
1042 {
1043         {
1044                 uint32_t _flags_save_STRUCT = ndr->flags;
1045                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1046                 if (ndr_flags & NDR_SCALARS) {
1047                         NDR_CHECK(ndr_pull_align(ndr, 1));
1048                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
1049                 }
1050                 if (ndr_flags & NDR_BUFFERS) {
1051                 }
1052                 ndr->flags = _flags_save_STRUCT;
1053         }
1054         return NDR_ERR_SUCCESS;
1055 }
1056
1057 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
1058 {
1059         ndr_print_struct(ndr, name, "netr_LMSessionKey");
1060         {
1061                 uint32_t _flags_save_STRUCT = ndr->flags;
1062                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1063                 ndr->depth++;
1064                 ndr_print_array_uint8(ndr, "key", r->key, 8);
1065                 ndr->depth--;
1066                 ndr->flags = _flags_save_STRUCT;
1067         }
1068 }
1069
1070 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1071 {
1072         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1073         return NDR_ERR_SUCCESS;
1074 }
1075
1076 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1077 {
1078         uint32_t v;
1079         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1080         *r = v;
1081         return NDR_ERR_SUCCESS;
1082 }
1083
1084 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1085 {
1086         ndr_print_uint32(ndr, name, r);
1087         ndr->depth++;
1088         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
1089         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
1090         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
1091         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
1092         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
1093         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
1094         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
1095         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
1096         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
1097         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
1098         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON, r);
1099         ndr->depth--;
1100 }
1101
1102 static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
1103 {
1104         uint32_t cntr_unknown_0;
1105         if (ndr_flags & NDR_SCALARS) {
1106                 NDR_CHECK(ndr_push_align(ndr, 4));
1107                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
1108                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
1109                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
1110                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
1111                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
1112                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
1113                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1114                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1115                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1116                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1117                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1118                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1119                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
1120                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
1121                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
1122                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
1123                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1124                 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
1125                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1126                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1127                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1128                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
1129                 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1130                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
1131                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1132                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
1133                 }
1134         }
1135         if (ndr_flags & NDR_BUFFERS) {
1136                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1137                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1138                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1139                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1140                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1141                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1142                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1143                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1144                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1145                 if (r->domain_sid) {
1146                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1147                 }
1148         }
1149         return NDR_ERR_SUCCESS;
1150 }
1151
1152 static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
1153 {
1154         uint32_t _ptr_domain_sid;
1155         TALLOC_CTX *_mem_save_domain_sid_0;
1156         uint32_t cntr_unknown_0;
1157         if (ndr_flags & NDR_SCALARS) {
1158                 NDR_CHECK(ndr_pull_align(ndr, 4));
1159                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
1160                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
1161                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
1162                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
1163                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
1164                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
1165                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1166                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1167                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1168                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1169                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1170                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1171                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
1172                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
1173                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
1174                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1175                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1176                 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
1177                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1178                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1179                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1180                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
1181                 if (_ptr_domain_sid) {
1182                         NDR_PULL_ALLOC(ndr, r->domain_sid);
1183                 } else {
1184                         r->domain_sid = NULL;
1185                 }
1186                 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1187                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
1188                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1189                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
1190                 }
1191         }
1192         if (ndr_flags & NDR_BUFFERS) {
1193                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1194                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1195                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1196                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1197                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1198                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1199                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1200                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1201                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1202                 if (r->domain_sid) {
1203                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1204                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1205                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1206                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1207                 }
1208         }
1209         return NDR_ERR_SUCCESS;
1210 }
1211
1212 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
1213 {
1214         uint32_t cntr_unknown_0;
1215         ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1216         ndr->depth++;
1217         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1218         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1219         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1220         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1221         ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1222         ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1223         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1224         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1225         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1226         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1227         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1228         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1229         ndr_print_uint16(ndr, "logon_count", r->logon_count);
1230         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1231         ndr_print_uint32(ndr, "rid", r->rid);
1232         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1233         ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1234         ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1235         ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1236         ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1237         ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1238         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1239         ndr->depth++;
1240         if (r->domain_sid) {
1241                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1242         }
1243         ndr->depth--;
1244         ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1245         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1246         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)7);
1247         ndr->depth++;
1248         for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1249                 char *idx_0=NULL;
1250                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
1251                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1252                         free(idx_0);
1253                 }
1254         }
1255         ndr->depth--;
1256         ndr->depth--;
1257 }
1258
1259 static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
1260 {
1261         if (ndr_flags & NDR_SCALARS) {
1262                 NDR_CHECK(ndr_push_align(ndr, 4));
1263                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1264         }
1265         if (ndr_flags & NDR_BUFFERS) {
1266                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1267         }
1268         return NDR_ERR_SUCCESS;
1269 }
1270
1271 static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
1272 {
1273         if (ndr_flags & NDR_SCALARS) {
1274                 NDR_CHECK(ndr_pull_align(ndr, 4));
1275                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1276         }
1277         if (ndr_flags & NDR_BUFFERS) {
1278                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1279         }
1280         return NDR_ERR_SUCCESS;
1281 }
1282
1283 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
1284 {
1285         ndr_print_struct(ndr, name, "netr_SamInfo2");
1286         ndr->depth++;
1287         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1288         ndr->depth--;
1289 }
1290
1291 static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
1292 {
1293         if (ndr_flags & NDR_SCALARS) {
1294                 NDR_CHECK(ndr_push_align(ndr, 4));
1295                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1296                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1297         }
1298         if (ndr_flags & NDR_BUFFERS) {
1299                 if (r->sid) {
1300                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1301                 }
1302         }
1303         return NDR_ERR_SUCCESS;
1304 }
1305
1306 static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
1307 {
1308         uint32_t _ptr_sid;
1309         TALLOC_CTX *_mem_save_sid_0;
1310         if (ndr_flags & NDR_SCALARS) {
1311                 NDR_CHECK(ndr_pull_align(ndr, 4));
1312                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1313                 if (_ptr_sid) {
1314                         NDR_PULL_ALLOC(ndr, r->sid);
1315                 } else {
1316                         r->sid = NULL;
1317                 }
1318                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1319         }
1320         if (ndr_flags & NDR_BUFFERS) {
1321                 if (r->sid) {
1322                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1323                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1324                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1325                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1326                 }
1327         }
1328         return NDR_ERR_SUCCESS;
1329 }
1330
1331 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
1332 {
1333         ndr_print_struct(ndr, name, "netr_SidAttr");
1334         ndr->depth++;
1335         ndr_print_ptr(ndr, "sid", r->sid);
1336         ndr->depth++;
1337         if (r->sid) {
1338                 ndr_print_dom_sid2(ndr, "sid", r->sid);
1339         }
1340         ndr->depth--;
1341         ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1342         ndr->depth--;
1343 }
1344
1345 _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
1346 {
1347         uint32_t cntr_sids_1;
1348         if (ndr_flags & NDR_SCALARS) {
1349                 NDR_CHECK(ndr_push_align(ndr, 4));
1350                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1351                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1352                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1353         }
1354         if (ndr_flags & NDR_BUFFERS) {
1355                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1356                 if (r->sids) {
1357                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1358                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1359                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1360                         }
1361                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1362                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1363                         }
1364                 }
1365         }
1366         return NDR_ERR_SUCCESS;
1367 }
1368
1369 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
1370 {
1371         uint32_t _ptr_sids;
1372         uint32_t cntr_sids_1;
1373         TALLOC_CTX *_mem_save_sids_0;
1374         TALLOC_CTX *_mem_save_sids_1;
1375         if (ndr_flags & NDR_SCALARS) {
1376                 NDR_CHECK(ndr_pull_align(ndr, 4));
1377                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1378                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1379                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1380                 if (_ptr_sids) {
1381                         NDR_PULL_ALLOC(ndr, r->sids);
1382                 } else {
1383                         r->sids = NULL;
1384                 }
1385         }
1386         if (ndr_flags & NDR_BUFFERS) {
1387                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1388                 if (r->sids) {
1389                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1390                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1391                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1392                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1393                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1394                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1395                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1396                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1397                         }
1398                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1399                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1400                         }
1401                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1402                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1403                 }
1404                 if (r->sids) {
1405                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1406                 }
1407         }
1408         return NDR_ERR_SUCCESS;
1409 }
1410
1411 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
1412 {
1413         uint32_t cntr_sids_1;
1414         ndr_print_struct(ndr, name, "netr_SamInfo3");
1415         ndr->depth++;
1416         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1417         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1418         ndr_print_ptr(ndr, "sids", r->sids);
1419         ndr->depth++;
1420         if (r->sids) {
1421                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1422                 ndr->depth++;
1423                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1424                         char *idx_1=NULL;
1425                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1426                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1427                                 free(idx_1);
1428                         }
1429                 }
1430                 ndr->depth--;
1431         }
1432         ndr->depth--;
1433         ndr->depth--;
1434 }
1435
1436 static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
1437 {
1438         uint32_t cntr_sids_1;
1439         uint32_t cntr_unknown4_0;
1440         if (ndr_flags & NDR_SCALARS) {
1441                 NDR_CHECK(ndr_push_align(ndr, 4));
1442                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1443                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1444                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1445                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1446                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1447                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1448                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1449                 }
1450         }
1451         if (ndr_flags & NDR_BUFFERS) {
1452                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1453                 if (r->sids) {
1454                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1455                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1456                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1457                         }
1458                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1459                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1460                         }
1461                 }
1462                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1463                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1464         }
1465         return NDR_ERR_SUCCESS;
1466 }
1467
1468 static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
1469 {
1470         uint32_t _ptr_sids;
1471         uint32_t cntr_sids_1;
1472         TALLOC_CTX *_mem_save_sids_0;
1473         TALLOC_CTX *_mem_save_sids_1;
1474         uint32_t cntr_unknown4_0;
1475         if (ndr_flags & NDR_SCALARS) {
1476                 NDR_CHECK(ndr_pull_align(ndr, 4));
1477                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1478                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1479                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1480                 if (_ptr_sids) {
1481                         NDR_PULL_ALLOC(ndr, r->sids);
1482                 } else {
1483                         r->sids = NULL;
1484                 }
1485                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1486                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1487                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1488                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1489                 }
1490         }
1491         if (ndr_flags & NDR_BUFFERS) {
1492                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1493                 if (r->sids) {
1494                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1495                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1496                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1497                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1498                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1499                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1500                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1501                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1502                         }
1503                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1504                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1505                         }
1506                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1507                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1508                 }
1509                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1510                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1511                 if (r->sids) {
1512                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1513                 }
1514         }
1515         return NDR_ERR_SUCCESS;
1516 }
1517
1518 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
1519 {
1520         uint32_t cntr_sids_1;
1521         uint32_t cntr_unknown4_0;
1522         ndr_print_struct(ndr, name, "netr_SamInfo6");
1523         ndr->depth++;
1524         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1525         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1526         ndr_print_ptr(ndr, "sids", r->sids);
1527         ndr->depth++;
1528         if (r->sids) {
1529                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1530                 ndr->depth++;
1531                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1532                         char *idx_1=NULL;
1533                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1534                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1535                                 free(idx_1);
1536                         }
1537                 }
1538                 ndr->depth--;
1539         }
1540         ndr->depth--;
1541         ndr_print_lsa_String(ndr, "forest", &r->forest);
1542         ndr_print_lsa_String(ndr, "principle", &r->principle);
1543         ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", (int)20);
1544         ndr->depth++;
1545         for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1546                 char *idx_0=NULL;
1547                 if (asprintf(&idx_0, "[%d]", cntr_unknown4_0) != -1) {
1548                         ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1549                         free(idx_0);
1550                 }
1551         }
1552         ndr->depth--;
1553         ndr->depth--;
1554 }
1555
1556 static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
1557 {
1558         uint32_t cntr_expansionroom_0;
1559         if (ndr_flags & NDR_SCALARS) {
1560                 NDR_CHECK(ndr_push_align(ndr, 4));
1561                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1562                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1563                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1564                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1565                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1566                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1567                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1568                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1569                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1570                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1571                 }
1572                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1573                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1574                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1575                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1576         }
1577         if (ndr_flags & NDR_BUFFERS) {
1578                 if (r->pac) {
1579                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1580                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1581                 }
1582                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1583                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1584                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1585                 if (r->auth) {
1586                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1587                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1588                 }
1589                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1590                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1591                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1592                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1593         }
1594         return NDR_ERR_SUCCESS;
1595 }
1596
1597 static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
1598 {
1599         uint32_t _ptr_pac;
1600         TALLOC_CTX *_mem_save_pac_0;
1601         uint32_t _ptr_auth;
1602         TALLOC_CTX *_mem_save_auth_0;
1603         uint32_t cntr_expansionroom_0;
1604         if (ndr_flags & NDR_SCALARS) {
1605                 NDR_CHECK(ndr_pull_align(ndr, 4));
1606                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1607                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1608                 if (_ptr_pac) {
1609                         NDR_PULL_ALLOC(ndr, r->pac);
1610                 } else {
1611                         r->pac = NULL;
1612                 }
1613                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1614                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1615                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1616                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1617                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1618                 if (_ptr_auth) {
1619                         NDR_PULL_ALLOC(ndr, r->auth);
1620                 } else {
1621                         r->auth = NULL;
1622                 }
1623                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1624                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1625                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1626                 }
1627                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1628                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1629                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1630                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1631         }
1632         if (ndr_flags & NDR_BUFFERS) {
1633                 if (r->pac) {
1634                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1635                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1636                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1637                         NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1638                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1639                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1640                 }
1641                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1642                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1643                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1644                 if (r->auth) {
1645                         _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1646                         NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1647                         NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1648                         NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1649                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1650                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1651                 }
1652                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1653                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1654                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1655                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1656                 if (r->pac) {
1657                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1658                 }
1659                 if (r->auth) {
1660                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1661                 }
1662         }
1663         return NDR_ERR_SUCCESS;
1664 }
1665
1666 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
1667 {
1668         uint32_t cntr_expansionroom_0;
1669         ndr_print_struct(ndr, name, "netr_PacInfo");
1670         ndr->depth++;
1671         ndr_print_uint32(ndr, "pac_size", r->pac_size);
1672         ndr_print_ptr(ndr, "pac", r->pac);
1673         ndr->depth++;
1674         if (r->pac) {
1675                 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1676         }
1677         ndr->depth--;
1678         ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1679         ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1680         ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1681         ndr_print_uint32(ndr, "auth_size", r->auth_size);
1682         ndr_print_ptr(ndr, "auth", r->auth);
1683         ndr->depth++;
1684         if (r->auth) {
1685                 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1686         }
1687         ndr->depth--;
1688         ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1689         ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", (int)10);
1690         ndr->depth++;
1691         for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1692                 char *idx_0=NULL;
1693                 if (asprintf(&idx_0, "[%d]", cntr_expansionroom_0) != -1) {
1694                         ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1695                         free(idx_0);
1696                 }
1697         }
1698         ndr->depth--;
1699         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1700         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1701         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1702         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1703         ndr->depth--;
1704 }
1705
1706 static enum ndr_err_code ndr_push_netr_GenericInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_GenericInfo2 *r)
1707 {
1708         {
1709                 uint32_t _flags_save_STRUCT = ndr->flags;
1710                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1711                 if (ndr_flags & NDR_SCALARS) {
1712                         NDR_CHECK(ndr_push_align(ndr, 4));
1713                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
1714                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
1715                 }
1716                 if (ndr_flags & NDR_BUFFERS) {
1717                         if (r->data) {
1718                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
1719                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
1720                         }
1721                 }
1722                 ndr->flags = _flags_save_STRUCT;
1723         }
1724         return NDR_ERR_SUCCESS;
1725 }
1726
1727 static enum ndr_err_code ndr_pull_netr_GenericInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_GenericInfo2 *r)
1728 {
1729         uint32_t _ptr_data;
1730         TALLOC_CTX *_mem_save_data_0;
1731         {
1732                 uint32_t _flags_save_STRUCT = ndr->flags;
1733                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1734                 if (ndr_flags & NDR_SCALARS) {
1735                         NDR_CHECK(ndr_pull_align(ndr, 4));
1736                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
1737                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
1738                         if (_ptr_data) {
1739                                 NDR_PULL_ALLOC(ndr, r->data);
1740                         } else {
1741                                 r->data = NULL;
1742                         }
1743                 }
1744                 if (ndr_flags & NDR_BUFFERS) {
1745                         if (r->data) {
1746                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1747                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
1748                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
1749                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
1750                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
1751                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
1752                         }
1753                         if (r->data) {
1754                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
1755                         }
1756                 }
1757                 ndr->flags = _flags_save_STRUCT;
1758         }
1759         return NDR_ERR_SUCCESS;
1760 }
1761
1762 _PUBLIC_ void ndr_print_netr_GenericInfo2(struct ndr_print *ndr, const char *name, const struct netr_GenericInfo2 *r)
1763 {
1764         ndr_print_struct(ndr, name, "netr_GenericInfo2");
1765         {
1766                 uint32_t _flags_save_STRUCT = ndr->flags;
1767                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1768                 ndr->depth++;
1769                 ndr_print_uint32(ndr, "length", r->length);
1770                 ndr_print_ptr(ndr, "data", r->data);
1771                 ndr->depth++;
1772                 if (r->data) {
1773                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
1774                 }
1775                 ndr->depth--;
1776                 ndr->depth--;
1777                 ndr->flags = _flags_save_STRUCT;
1778         }
1779 }
1780
1781 _PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
1782 {
1783         if (ndr_flags & NDR_SCALARS) {
1784                 int level = ndr_push_get_switch_value(ndr, r);
1785                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1786                 switch (level) {
1787                         case NetlogonValidationSamInfo: {
1788                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1789                         break; }
1790
1791                         case NetlogonValidationSamInfo2: {
1792                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1793                         break; }
1794
1795                         case 4: {
1796                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1797                         break; }
1798
1799                         case NetlogonValidationGenericInfo2: {
1800                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->generic));
1801                         break; }
1802
1803                         case NetlogonValidationSamInfo4: {
1804                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1805                         break; }
1806
1807                         default:
1808                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1809                 }
1810         }
1811         if (ndr_flags & NDR_BUFFERS) {
1812                 int level = ndr_push_get_switch_value(ndr, r);
1813                 switch (level) {
1814                         case NetlogonValidationSamInfo:
1815                                 if (r->sam2) {
1816                                         NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1817                                 }
1818                         break;
1819
1820                         case NetlogonValidationSamInfo2:
1821                                 if (r->sam3) {
1822                                         NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1823                                 }
1824                         break;
1825
1826                         case 4:
1827                                 if (r->pac) {
1828                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1829                                 }
1830                         break;
1831
1832                         case NetlogonValidationGenericInfo2:
1833                                 if (r->generic) {
1834                                         NDR_CHECK(ndr_push_netr_GenericInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
1835                                 }
1836                         break;
1837
1838                         case NetlogonValidationSamInfo4:
1839                                 if (r->sam6) {
1840                                         NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1841                                 }
1842                         break;
1843
1844                         default:
1845                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1846                 }
1847         }
1848         return NDR_ERR_SUCCESS;
1849 }
1850
1851 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
1852 {
1853         int level;
1854         uint16_t _level;
1855         TALLOC_CTX *_mem_save_sam2_0;
1856         TALLOC_CTX *_mem_save_sam3_0;
1857         TALLOC_CTX *_mem_save_pac_0;
1858         TALLOC_CTX *_mem_save_generic_0;
1859         TALLOC_CTX *_mem_save_sam6_0;
1860         level = ndr_pull_get_switch_value(ndr, r);
1861         if (ndr_flags & NDR_SCALARS) {
1862                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1863                 if (_level != level) {
1864                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1865                 }
1866                 switch (level) {
1867                         case NetlogonValidationSamInfo: {
1868                                 uint32_t _ptr_sam2;
1869                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1870                                 if (_ptr_sam2) {
1871                                         NDR_PULL_ALLOC(ndr, r->sam2);
1872                                 } else {
1873                                         r->sam2 = NULL;
1874                                 }
1875                         break; }
1876
1877                         case NetlogonValidationSamInfo2: {
1878                                 uint32_t _ptr_sam3;
1879                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1880                                 if (_ptr_sam3) {
1881                                         NDR_PULL_ALLOC(ndr, r->sam3);
1882                                 } else {
1883                                         r->sam3 = NULL;
1884                                 }
1885                         break; }
1886
1887                         case 4: {
1888                                 uint32_t _ptr_pac;
1889                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1890                                 if (_ptr_pac) {
1891                                         NDR_PULL_ALLOC(ndr, r->pac);
1892                                 } else {
1893                                         r->pac = NULL;
1894                                 }
1895                         break; }
1896
1897                         case NetlogonValidationGenericInfo2: {
1898                                 uint32_t _ptr_generic;
1899                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_generic));
1900                                 if (_ptr_generic) {
1901                                         NDR_PULL_ALLOC(ndr, r->generic);
1902                                 } else {
1903                                         r->generic = NULL;
1904                                 }
1905                         break; }
1906
1907                         case NetlogonValidationSamInfo4: {
1908                                 uint32_t _ptr_sam6;
1909                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1910                                 if (_ptr_sam6) {
1911                                         NDR_PULL_ALLOC(ndr, r->sam6);
1912                                 } else {
1913                                         r->sam6 = NULL;
1914                                 }
1915                         break; }
1916
1917                         default:
1918                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1919                 }
1920         }
1921         if (ndr_flags & NDR_BUFFERS) {
1922                 switch (level) {
1923                         case NetlogonValidationSamInfo:
1924                                 if (r->sam2) {
1925                                         _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1926                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1927                                         NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1928                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1929                                 }
1930                         break;
1931
1932                         case NetlogonValidationSamInfo2:
1933                                 if (r->sam3) {
1934                                         _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1935                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1936                                         NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1937                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1938                                 }
1939                         break;
1940
1941                         case 4:
1942                                 if (r->pac) {
1943                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1944                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1945                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1946                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1947                                 }
1948                         break;
1949
1950                         case NetlogonValidationGenericInfo2:
1951                                 if (r->generic) {
1952                                         _mem_save_generic_0 = NDR_PULL_GET_MEM_CTX(ndr);
1953                                         NDR_PULL_SET_MEM_CTX(ndr, r->generic, 0);
1954                                         NDR_CHECK(ndr_pull_netr_GenericInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
1955                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_generic_0, 0);
1956                                 }
1957                         break;
1958
1959                         case NetlogonValidationSamInfo4:
1960                                 if (r->sam6) {
1961                                         _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1962                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1963                                         NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1964                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1965                                 }
1966                         break;
1967
1968                         default:
1969                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1970                 }
1971         }
1972         return NDR_ERR_SUCCESS;
1973 }
1974
1975 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
1976 {
1977         int level;
1978         level = ndr_print_get_switch_value(ndr, r);
1979         ndr_print_union(ndr, name, level, "netr_Validation");
1980         switch (level) {
1981                 case NetlogonValidationSamInfo:
1982                         ndr_print_ptr(ndr, "sam2", r->sam2);
1983                         ndr->depth++;
1984                         if (r->sam2) {
1985                                 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
1986                         }
1987                         ndr->depth--;
1988                 break;
1989
1990                 case NetlogonValidationSamInfo2:
1991                         ndr_print_ptr(ndr, "sam3", r->sam3);
1992                         ndr->depth++;
1993                         if (r->sam3) {
1994                                 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
1995                         }
1996                         ndr->depth--;
1997                 break;
1998
1999                 case 4:
2000                         ndr_print_ptr(ndr, "pac", r->pac);
2001                         ndr->depth++;
2002                         if (r->pac) {
2003                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
2004                         }
2005                         ndr->depth--;
2006                 break;
2007
2008                 case NetlogonValidationGenericInfo2:
2009                         ndr_print_ptr(ndr, "generic", r->generic);
2010                         ndr->depth++;
2011                         if (r->generic) {
2012                                 ndr_print_netr_GenericInfo2(ndr, "generic", r->generic);
2013                         }
2014                         ndr->depth--;
2015                 break;
2016
2017                 case NetlogonValidationSamInfo4:
2018                         ndr_print_ptr(ndr, "sam6", r->sam6);
2019                         ndr->depth++;
2020                         if (r->sam6) {
2021                                 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
2022                         }
2023                         ndr->depth--;
2024                 break;
2025
2026                 default:
2027                         ndr_print_bad_level(ndr, name, level);
2028         }
2029 }
2030
2031 _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
2032 {
2033         {
2034                 uint32_t _flags_save_STRUCT = ndr->flags;
2035                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2036                 if (ndr_flags & NDR_SCALARS) {
2037                         NDR_CHECK(ndr_push_align(ndr, 1));
2038                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
2039                 }
2040                 if (ndr_flags & NDR_BUFFERS) {
2041                 }
2042                 ndr->flags = _flags_save_STRUCT;
2043         }
2044         return NDR_ERR_SUCCESS;
2045 }
2046
2047 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
2048 {
2049         {
2050                 uint32_t _flags_save_STRUCT = ndr->flags;
2051                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2052                 if (ndr_flags & NDR_SCALARS) {
2053                         NDR_CHECK(ndr_pull_align(ndr, 1));
2054                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
2055                 }
2056                 if (ndr_flags & NDR_BUFFERS) {
2057                 }
2058                 ndr->flags = _flags_save_STRUCT;
2059         }
2060         return NDR_ERR_SUCCESS;
2061 }
2062
2063 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
2064 {
2065         ndr_print_struct(ndr, name, "netr_Credential");
2066         {
2067                 uint32_t _flags_save_STRUCT = ndr->flags;
2068                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2069                 ndr->depth++;
2070                 ndr_print_array_uint8(ndr, "data", r->data, 8);
2071                 ndr->depth--;
2072                 ndr->flags = _flags_save_STRUCT;
2073         }
2074 }
2075
2076 _PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
2077 {
2078         if (ndr_flags & NDR_SCALARS) {
2079                 NDR_CHECK(ndr_push_align(ndr, 4));
2080                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
2081                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
2082         }
2083         if (ndr_flags & NDR_BUFFERS) {
2084         }
2085         return NDR_ERR_SUCCESS;
2086 }
2087
2088 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
2089 {
2090         if (ndr_flags & NDR_SCALARS) {
2091                 NDR_CHECK(ndr_pull_align(ndr, 4));
2092                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
2093                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
2094         }
2095         if (ndr_flags & NDR_BUFFERS) {
2096         }
2097         return NDR_ERR_SUCCESS;
2098 }
2099
2100 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
2101 {
2102         ndr_print_struct(ndr, name, "netr_Authenticator");
2103         ndr->depth++;
2104         ndr_print_netr_Credential(ndr, "cred", &r->cred);
2105         ndr_print_time_t(ndr, "timestamp", r->timestamp);
2106         ndr->depth--;
2107 }
2108
2109 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)
2110 {
2111         if (ndr_flags & NDR_SCALARS) {
2112                 NDR_CHECK(ndr_push_align(ndr, 4));
2113                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
2114                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2115                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2116                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2117                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2118                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2119                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2120                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2121                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2122         }
2123         if (ndr_flags & NDR_BUFFERS) {
2124                 if (r->account_name) {
2125                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
2126                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2127                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
2128                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
2129                 }
2130                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2131                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2132                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2133                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2134         }
2135         return NDR_ERR_SUCCESS;
2136 }
2137
2138 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
2139 {
2140         uint32_t _ptr_account_name;
2141         TALLOC_CTX *_mem_save_account_name_0;
2142         if (ndr_flags & NDR_SCALARS) {
2143                 NDR_CHECK(ndr_pull_align(ndr, 4));
2144                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
2145                 if (_ptr_account_name) {
2146                         NDR_PULL_ALLOC(ndr, r->account_name);
2147                 } else {
2148                         r->account_name = NULL;
2149                 }
2150                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2151                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2152                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2153                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2154                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2155                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2156                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2157                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2158         }
2159         if (ndr_flags & NDR_BUFFERS) {
2160                 if (r->account_name) {
2161                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2162                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
2163                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
2164                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
2165                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
2166                                 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));
2167                         }
2168                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
2169                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
2170                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
2171                 }
2172                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2173                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2174                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2175                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2176         }
2177         return NDR_ERR_SUCCESS;
2178 }
2179
2180 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
2181 {
2182         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
2183         ndr->depth++;
2184         ndr_print_ptr(ndr, "account_name", r->account_name);
2185         ndr->depth++;
2186         if (r->account_name) {
2187                 ndr_print_string(ndr, "account_name", r->account_name);
2188         }
2189         ndr->depth--;
2190         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2191         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2192         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2193         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2194         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2195         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2196         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2197         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2198         ndr->depth--;
2199 }
2200
2201 static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
2202 {
2203         if (ndr_flags & NDR_SCALARS) {
2204                 NDR_CHECK(ndr_push_align(ndr, 4));
2205                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2206                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2207                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
2208                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2209         }
2210         if (ndr_flags & NDR_BUFFERS) {
2211         }
2212         return NDR_ERR_SUCCESS;
2213 }
2214
2215 static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
2216 {
2217         if (ndr_flags & NDR_SCALARS) {
2218                 NDR_CHECK(ndr_pull_align(ndr, 4));
2219                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
2220                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
2221                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
2222                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2223         }
2224         if (ndr_flags & NDR_BUFFERS) {
2225         }
2226         return NDR_ERR_SUCCESS;
2227 }
2228
2229 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
2230 {
2231         ndr_print_struct(ndr, name, "netr_USER_KEY16");
2232         ndr->depth++;
2233         ndr_print_uint16(ndr, "length", r->length);
2234         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
2235         ndr_print_uint32(ndr, "flags", r->flags);
2236         ndr_print_samr_Password(ndr, "pwd", &r->pwd);
2237         ndr->depth--;
2238 }
2239
2240 static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
2241 {
2242         if (ndr_flags & NDR_SCALARS) {
2243                 NDR_CHECK(ndr_push_align(ndr, 4));
2244                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2245                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2246                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2247                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2248                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2249                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2250                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2251                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2252         }
2253         if (ndr_flags & NDR_BUFFERS) {
2254         }
2255         return NDR_ERR_SUCCESS;
2256 }
2257
2258 static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
2259 {
2260         if (ndr_flags & NDR_SCALARS) {
2261                 NDR_CHECK(ndr_pull_align(ndr, 4));
2262                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
2263                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2264                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2265                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2266                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2267                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2268                 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2269                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2270                 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2271                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2272         }
2273         if (ndr_flags & NDR_BUFFERS) {
2274         }
2275         return NDR_ERR_SUCCESS;
2276 }
2277
2278 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
2279 {
2280         ndr_print_struct(ndr, name, "netr_PasswordHistory");
2281         ndr->depth++;
2282         ndr_print_uint16(ndr, "nt_length", r->nt_length);
2283         ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
2284         ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2285         ndr_print_uint16(ndr, "lm_length", r->lm_length);
2286         ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
2287         ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2288         ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2289         ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2290         ndr->depth--;
2291 }
2292
2293 static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
2294 {
2295         if (ndr_flags & NDR_SCALARS) {
2296                 NDR_CHECK(ndr_push_align(ndr, 4));
2297                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2298                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2299                 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2300         }
2301         if (ndr_flags & NDR_BUFFERS) {
2302         }
2303         return NDR_ERR_SUCCESS;
2304 }
2305
2306 static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
2307 {
2308         if (ndr_flags & NDR_SCALARS) {
2309                 NDR_CHECK(ndr_pull_align(ndr, 4));
2310                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2311                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2312                 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2313         }
2314         if (ndr_flags & NDR_BUFFERS) {
2315         }
2316         return NDR_ERR_SUCCESS;
2317 }
2318
2319 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
2320 {
2321         ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2322         ndr->depth++;
2323         ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2324         ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2325         ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
2326         ndr->depth--;
2327 }
2328
2329 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)
2330 {
2331         if (ndr_flags & NDR_SCALARS) {
2332                 NDR_CHECK(ndr_push_align(ndr, 4));
2333                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2334         }
2335         if (ndr_flags & NDR_BUFFERS) {
2336         }
2337         return NDR_ERR_SUCCESS;
2338 }
2339
2340 static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
2341 {
2342         if (ndr_flags & NDR_SCALARS) {
2343                 NDR_CHECK(ndr_pull_align(ndr, 4));
2344                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2345         }
2346         if (ndr_flags & NDR_BUFFERS) {
2347         }
2348         return NDR_ERR_SUCCESS;
2349 }
2350
2351 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
2352 {
2353         ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2354         ndr->depth++;
2355         ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2356         ndr->depth--;
2357 }
2358
2359 _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
2360 {
2361         if (ndr_flags & NDR_SCALARS) {
2362                 NDR_CHECK(ndr_push_align(ndr, 4));
2363                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2364                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2365         }
2366         if (ndr_flags & NDR_BUFFERS) {
2367         }
2368         return NDR_ERR_SUCCESS;
2369 }
2370
2371 _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
2372 {
2373         if (ndr_flags & NDR_SCALARS) {
2374                 NDR_CHECK(ndr_pull_align(ndr, 4));
2375                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2376                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2377         }
2378         if (ndr_flags & NDR_BUFFERS) {
2379         }
2380         return NDR_ERR_SUCCESS;
2381 }
2382
2383 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
2384 {
2385         ndr_print_struct(ndr, name, "netr_USER_KEYS");
2386         ndr->depth++;
2387         ndr_print_uint32(ndr, "version", r->version);
2388         ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2389         ndr->depth--;
2390 }
2391
2392 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)
2393 {
2394         if (ndr_flags & NDR_SCALARS) {
2395                 NDR_CHECK(ndr_push_align(ndr, 4));
2396                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2397                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2398                 {
2399                         uint32_t _flags_save_uint8 = ndr->flags;
2400                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2401                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
2402                         ndr->flags = _flags_save_uint8;
2403                 }
2404         }
2405         if (ndr_flags & NDR_BUFFERS) {
2406                 {
2407                         uint32_t _flags_save_uint8 = ndr->flags;
2408                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2409                         if (r->SensitiveData) {
2410                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2411                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2412                         }
2413                         ndr->flags = _flags_save_uint8;
2414                 }
2415         }
2416         return NDR_ERR_SUCCESS;
2417 }
2418
2419 static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
2420 {
2421         uint32_t _ptr_SensitiveData;
2422         TALLOC_CTX *_mem_save_SensitiveData_0;
2423         if (ndr_flags & NDR_SCALARS) {
2424                 NDR_CHECK(ndr_pull_align(ndr, 4));
2425                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2426                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2427                 {
2428                         uint32_t _flags_save_uint8 = ndr->flags;
2429                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2430                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2431                         if (_ptr_SensitiveData) {
2432                                 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2433                         } else {
2434                                 r->SensitiveData = NULL;
2435                         }
2436                         ndr->flags = _flags_save_uint8;
2437                 }
2438         }
2439         if (ndr_flags & NDR_BUFFERS) {
2440                 {
2441                         uint32_t _flags_save_uint8 = ndr->flags;
2442                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2443                         if (r->SensitiveData) {
2444                                 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2445                                 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2446                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2447                                 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2448                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2449                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2450                         }
2451                         ndr->flags = _flags_save_uint8;
2452                 }
2453                 if (r->SensitiveData) {
2454                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2455                 }
2456         }
2457         return NDR_ERR_SUCCESS;
2458 }
2459
2460 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
2461 {
2462         ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2463         ndr->depth++;
2464         ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2465         ndr_print_uint32(ndr, "DataLength", r->DataLength);
2466         ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2467         ndr->depth++;
2468         if (r->SensitiveData) {
2469                 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2470         }
2471         ndr->depth--;
2472         ndr->depth--;
2473 }
2474
2475 static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
2476 {
2477         if (ndr_flags & NDR_SCALARS) {
2478                 NDR_CHECK(ndr_push_align(ndr, 4));
2479                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2480                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2481                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2482                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2483                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2484                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2485                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2486                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2487                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2488                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2489                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2490                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2491                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2492                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2493                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2494                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2495                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2496                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2497                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2498                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2499                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2500                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2501                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2502                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2503                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2504                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2505                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2506                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2507                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2508                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2509                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2510                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2511                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2512                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2513                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2514                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2515                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2516         }
2517         if (ndr_flags & NDR_BUFFERS) {
2518                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2519                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2520                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2521                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2522                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2523                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2524                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2525                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2526                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2527                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2528                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2529                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2530                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2531                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2532                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2533                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2534         }
2535         return NDR_ERR_SUCCESS;
2536 }
2537
2538 static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
2539 {
2540         if (ndr_flags & NDR_SCALARS) {
2541                 NDR_CHECK(ndr_pull_align(ndr, 4));
2542                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2543                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2544                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2545                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2546                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2547                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2548                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2549                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2550                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2551                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2552                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2553                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2554                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2555                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2556                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2557                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2558                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2559                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2560                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2561                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2562                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2563                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2564                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2565                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2566                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2567                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2568                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2569                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2570                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2571                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2572                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2573                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2574                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2575                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2576                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2577                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2578                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2579         }
2580         if (ndr_flags & NDR_BUFFERS) {
2581                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2582                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2583                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2584                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2585                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2586                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2587                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2588                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2589                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2590                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2591                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2592                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2593                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2594                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2595                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2596                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2597         }
2598         return NDR_ERR_SUCCESS;
2599 }
2600
2601 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
2602 {
2603         ndr_print_struct(ndr, name, "netr_DELTA_USER");
2604         ndr->depth++;
2605         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2606         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2607         ndr_print_uint32(ndr, "rid", r->rid);
2608         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2609         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2610         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2611         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2612         ndr_print_lsa_String(ndr, "description", &r->description);
2613         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2614         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2615         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2616         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2617         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2618         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2619         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2620         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2621         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2622         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2623         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2624         ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2625         ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2626         ndr_print_uint8(ndr, "password_expired", r->password_expired);
2627         ndr_print_lsa_String(ndr, "comment", &r->comment);
2628         ndr_print_lsa_BinaryString(ndr, "parameters", &r->parameters);
2629         ndr_print_uint16(ndr, "country_code", r->country_code);
2630         ndr_print_uint16(ndr, "code_page", r->code_page);
2631         ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2632         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2633         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2634         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2635         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2636         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2637         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2638         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2639         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2640         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2641         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2642         ndr->depth--;
2643 }
2644
2645 static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
2646 {
2647         if (ndr_flags & NDR_SCALARS) {
2648                 NDR_CHECK(ndr_push_align(ndr, 4));
2649                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2650                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
2651                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2652                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2653                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2654                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2655                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2656                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2657                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2658                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2659                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2660                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2661                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2662                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2663                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2664                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2665                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2666                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2667                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2668         }
2669         if (ndr_flags & NDR_BUFFERS) {
2670                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2671                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
2672                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2673                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2674                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2675                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2676                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2677         }
2678         return NDR_ERR_SUCCESS;
2679 }
2680
2681 static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
2682 {
2683         if (ndr_flags & NDR_SCALARS) {
2684                 NDR_CHECK(ndr_pull_align(ndr, 4));
2685                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2686                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
2687                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2688                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2689                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2690                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2691                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2692                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2693                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2694                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2695                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2696                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2697                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2698                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2699                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2700                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2701                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2702                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2703                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2704         }
2705         if (ndr_flags & NDR_BUFFERS) {
2706                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2707                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
2708                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2709                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2710                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2711                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2712                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2713         }
2714         return NDR_ERR_SUCCESS;
2715 }
2716
2717 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
2718 {
2719         ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2720         ndr->depth++;
2721         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2722         ndr_print_lsa_String(ndr, "oem_information", &r->oem_information);
2723         ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2724         ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2725         ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2726         ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2727         ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2728         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2729         ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2730         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2731         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2732         ndr_print_lsa_BinaryString(ndr, "account_lockout", &r->account_lockout);
2733         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2734         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2735         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2736         ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2737         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2738         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2739         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2740         ndr->depth--;
2741 }
2742
2743 static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
2744 {
2745         if (ndr_flags & NDR_SCALARS) {
2746                 NDR_CHECK(ndr_push_align(ndr, 4));
2747                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2748                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2749                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2750                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2751                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2752                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2753                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2754                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2755                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2756                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2757                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2758                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2759                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2760                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2761         }
2762         if (ndr_flags & NDR_BUFFERS) {
2763                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2764                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2765                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2766                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2767                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2768                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2769                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2770         }
2771         return NDR_ERR_SUCCESS;
2772 }
2773
2774 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
2775 {
2776         if (ndr_flags & NDR_SCALARS) {
2777                 NDR_CHECK(ndr_pull_align(ndr, 4));
2778                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2779                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2780                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2781                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2782                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2783                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2784                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2785                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2786                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2787                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2788                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2789                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2790                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2791                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2792         }
2793         if (ndr_flags & NDR_BUFFERS) {
2794                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2795                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2796                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2797                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2798                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2799                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2800                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2801         }
2802         return NDR_ERR_SUCCESS;
2803 }
2804
2805 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
2806 {
2807         ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2808         ndr->depth++;
2809         ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2810         ndr_print_uint32(ndr, "rid", r->rid);
2811         ndr_print_uint32(ndr, "attributes", r->attributes);
2812         ndr_print_lsa_String(ndr, "description", &r->description);
2813         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2814         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2815         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2816         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2817         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2818         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2819         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2820         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2821         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2822         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2823         ndr->depth--;
2824 }
2825
2826 static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
2827 {
2828         if (ndr_flags & NDR_SCALARS) {
2829                 NDR_CHECK(ndr_push_align(ndr, 4));
2830                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2831                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2832                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2833                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2834                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2835                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2836                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2837                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2838                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2839                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2840         }
2841         if (ndr_flags & NDR_BUFFERS) {
2842                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2843                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2844                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2845                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2846                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2847                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2848         }
2849         return NDR_ERR_SUCCESS;
2850 }
2851
2852 static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
2853 {
2854         if (ndr_flags & NDR_SCALARS) {
2855                 NDR_CHECK(ndr_pull_align(ndr, 4));
2856                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2857                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2858                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2859                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2860                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2861                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2862                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2863                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2864                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2865                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2866         }
2867         if (ndr_flags & NDR_BUFFERS) {
2868                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2869                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2870                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2871                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2872                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2873                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2874         }
2875         return NDR_ERR_SUCCESS;
2876 }
2877
2878 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
2879 {
2880         ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2881         ndr->depth++;
2882         ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2883         ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2884         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2885         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2886         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2887         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2888         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2889         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2890         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2891         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2892         ndr->depth--;
2893 }
2894
2895 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)
2896 {
2897         uint32_t cntr_rids_1;
2898         uint32_t cntr_attribs_1;
2899         if (ndr_flags & NDR_SCALARS) {
2900                 NDR_CHECK(ndr_push_align(ndr, 4));
2901                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2902                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2903                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2904                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2905                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2906                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2907                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2908         }
2909         if (ndr_flags & NDR_BUFFERS) {
2910                 if (r->rids) {
2911                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2912                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2913                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2914                         }
2915                 }
2916                 if (r->attribs) {
2917                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2918                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2919                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2920                         }
2921                 }
2922         }
2923         return NDR_ERR_SUCCESS;
2924 }
2925
2926 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
2927 {
2928         uint32_t _ptr_rids;
2929         uint32_t cntr_rids_1;
2930         TALLOC_CTX *_mem_save_rids_0;
2931         TALLOC_CTX *_mem_save_rids_1;
2932         uint32_t _ptr_attribs;
2933         uint32_t cntr_attribs_1;
2934         TALLOC_CTX *_mem_save_attribs_0;
2935         TALLOC_CTX *_mem_save_attribs_1;
2936         if (ndr_flags & NDR_SCALARS) {
2937                 NDR_CHECK(ndr_pull_align(ndr, 4));
2938                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2939                 if (_ptr_rids) {
2940                         NDR_PULL_ALLOC(ndr, r->rids);
2941                 } else {
2942                         r->rids = NULL;
2943                 }
2944                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2945                 if (_ptr_attribs) {
2946                         NDR_PULL_ALLOC(ndr, r->attribs);
2947                 } else {
2948                         r->attribs = NULL;
2949                 }
2950                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2951                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2952                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2953                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2954                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2955         }
2956         if (ndr_flags & NDR_BUFFERS) {
2957                 if (r->rids) {
2958                         _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2959                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2960                         NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2961                         NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2962                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2963                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2964                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2965                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2966                         }
2967                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2968                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2969                 }
2970                 if (r->attribs) {
2971                         _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2972                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2973                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2974                         NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2975                         _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2976                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2977                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2978                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2979                         }
2980                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2981                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2982                 }
2983                 if (r->rids) {
2984                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2985                 }
2986                 if (r->attribs) {
2987                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
2988                 }
2989         }
2990         return NDR_ERR_SUCCESS;
2991 }
2992
2993 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
2994 {
2995         uint32_t cntr_rids_1;
2996         uint32_t cntr_attribs_1;
2997         ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
2998         ndr->depth++;
2999         ndr_print_ptr(ndr, "rids", r->rids);
3000         ndr->depth++;
3001         if (r->rids) {
3002                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->num_rids);
3003                 ndr->depth++;
3004                 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
3005                         char *idx_1=NULL;
3006                         if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
3007                                 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
3008                                 free(idx_1);
3009                         }
3010                 }
3011                 ndr->depth--;
3012         }
3013         ndr->depth--;
3014         ndr_print_ptr(ndr, "attribs", r->attribs);
3015         ndr->depth++;
3016         if (r->attribs) {
3017                 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", (int)r->num_rids);
3018                 ndr->depth++;
3019                 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
3020                         char *idx_1=NULL;
3021                         if (asprintf(&idx_1, "[%d]", cntr_attribs_1) != -1) {
3022                                 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
3023                                 free(idx_1);
3024                         }
3025                 }
3026                 ndr->depth--;
3027         }
3028         ndr->depth--;
3029         ndr_print_uint32(ndr, "num_rids", r->num_rids);
3030         ndr_print_uint32(ndr, "unknown1", r->unknown1);
3031         ndr_print_uint32(ndr, "unknown2", r->unknown2);
3032         ndr_print_uint32(ndr, "unknown3", r->unknown3);
3033         ndr_print_uint32(ndr, "unknown4", r->unknown4);
3034         ndr->depth--;
3035 }
3036
3037 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
3038 {
3039         if (ndr_flags & NDR_SCALARS) {
3040                 NDR_CHECK(ndr_push_align(ndr, 4));
3041                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
3042                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
3043                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3044                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3045                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
3046                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3047                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3048                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3049                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3050                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3051                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3052                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3053         }
3054         if (ndr_flags & NDR_BUFFERS) {
3055                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
3056                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3057                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
3058                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3059                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3060                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3061         }
3062         return NDR_ERR_SUCCESS;
3063 }
3064
3065 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
3066 {
3067         if (ndr_flags & NDR_SCALARS) {
3068                 NDR_CHECK(ndr_pull_align(ndr, 4));
3069                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
3070                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
3071                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3072                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3073                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
3074                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3075                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3076                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3077                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3078                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3079                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3080                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3081         }
3082         if (ndr_flags & NDR_BUFFERS) {
3083                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
3084                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3085                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
3086                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3087                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3088                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3089         }
3090         return NDR_ERR_SUCCESS;
3091 }
3092
3093 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
3094 {
3095         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
3096         ndr->depth++;
3097         ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
3098         ndr_print_uint32(ndr, "rid", r->rid);
3099         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3100         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3101         ndr_print_lsa_String(ndr, "description", &r->description);
3102         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3103         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3104         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3105         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3106         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3107         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3108         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3109         ndr->depth--;
3110 }
3111
3112 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)
3113 {
3114         if (ndr_flags & NDR_SCALARS) {
3115                 NDR_CHECK(ndr_push_align(ndr, 4));
3116                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
3117                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
3118                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
3119                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
3120                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
3121         }
3122         if (ndr_flags & NDR_BUFFERS) {
3123                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
3124         }
3125         return NDR_ERR_SUCCESS;
3126 }
3127
3128 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
3129 {
3130         if (ndr_flags & NDR_SCALARS) {
3131                 NDR_CHECK(ndr_pull_align(ndr, 4));
3132                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
3133                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
3134                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
3135                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
3136                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
3137         }
3138         if (ndr_flags & NDR_BUFFERS) {
3139                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
3140         }
3141         return NDR_ERR_SUCCESS;
3142 }
3143
3144 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
3145 {
3146         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
3147         ndr->depth++;
3148         ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
3149         ndr_print_uint32(ndr, "unknown1", r->unknown1);
3150         ndr_print_uint32(ndr, "unknown2", r->unknown2);
3151         ndr_print_uint32(ndr, "unknown3", r->unknown3);
3152         ndr_print_uint32(ndr, "unknown4", r->unknown4);
3153         ndr->depth--;
3154 }
3155
3156 static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
3157 {
3158         if (ndr_flags & NDR_SCALARS) {
3159                 NDR_CHECK(ndr_push_align(ndr, 4));
3160                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
3161                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
3162                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
3163                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
3164                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
3165                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
3166         }
3167         if (ndr_flags & NDR_BUFFERS) {
3168         }
3169         return NDR_ERR_SUCCESS;
3170 }
3171
3172 static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
3173 {
3174         if (ndr_flags & NDR_SCALARS) {
3175                 NDR_CHECK(ndr_pull_align(ndr, 4));
3176                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
3177                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
3178                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
3179                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
3180                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
3181                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
3182         }
3183         if (ndr_flags & NDR_BUFFERS) {
3184         }
3185         return NDR_ERR_SUCCESS;
3186 }
3187
3188 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
3189 {
3190         ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
3191         ndr->depth++;
3192         ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
3193         ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
3194         ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
3195         ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
3196         ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
3197         ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
3198         ndr->depth--;
3199 }
3200
3201 static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
3202 {
3203         uint32_t cntr_eventauditoptions_1;
3204         if (ndr_flags & NDR_SCALARS) {
3205                 NDR_CHECK(ndr_push_align(ndr, 4));
3206                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
3207                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
3208                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
3209                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
3210                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
3211                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3212                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
3213                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3214                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
3215                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
3216                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3217                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3218                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3219                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3220                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3221                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3222                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3223                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3224                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3225                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3226         }
3227         if (ndr_flags & NDR_BUFFERS) {
3228                 if (r->eventauditoptions) {
3229                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
3230                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3231                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
3232                         }
3233                 }
3234                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3235                 if (r->sid) {
3236                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3237                 }
3238                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3239                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3240                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3241                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3242                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3243         }
3244         return NDR_ERR_SUCCESS;
3245 }
3246
3247 static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
3248 {
3249         uint32_t _ptr_eventauditoptions;
3250         uint32_t cntr_eventauditoptions_1;
3251         TALLOC_CTX *_mem_save_eventauditoptions_0;
3252         TALLOC_CTX *_mem_save_eventauditoptions_1;
3253         uint32_t _ptr_sid;
3254         TALLOC_CTX *_mem_save_sid_0;
3255         if (ndr_flags & NDR_SCALARS) {
3256                 NDR_CHECK(ndr_pull_align(ndr, 4));
3257                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3258                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3259                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3260                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3261                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3262                 if (_ptr_eventauditoptions) {
3263                         NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3264                 } else {
3265                         r->eventauditoptions = NULL;
3266                 }
3267                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3268                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3269                 if (_ptr_sid) {
3270                         NDR_PULL_ALLOC(ndr, r->sid);
3271                 } else {
3272                         r->sid = NULL;
3273                 }
3274                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3275                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3276                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3277                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3278                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3279                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3280                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3281                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3282                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3283                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3284                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3285                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3286                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3287         }
3288         if (ndr_flags & NDR_BUFFERS) {
3289                 if (r->eventauditoptions) {
3290                         _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3291                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3292                         NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3293                         NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3294                         _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3295                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3296                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3297                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3298                         }
3299                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3300                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3301                 }
3302                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3303                 if (r->sid) {
3304                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3305                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3306                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3307                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3308                 }
3309                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3310                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3311                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3312                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3313                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3314                 if (r->eventauditoptions) {
3315                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3316                 }
3317         }
3318         return NDR_ERR_SUCCESS;
3319 }
3320
3321 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
3322 {
3323         uint32_t cntr_eventauditoptions_1;
3324         ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3325         ndr->depth++;
3326         ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3327         ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3328         ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3329         ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3330         ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3331         ndr->depth++;
3332         if (r->eventauditoptions) {
3333                 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", (int)r->maxauditeventcount + 1);
3334                 ndr->depth++;
3335                 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3336                         char *idx_1=NULL;
3337                         if (asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1) != -1) {
3338                                 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3339                                 free(idx_1);
3340                         }
3341                 }
3342                 ndr->depth--;
3343         }
3344         ndr->depth--;
3345         ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3346         ndr_print_ptr(ndr, "sid", r->sid);
3347         ndr->depth++;
3348         if (r->sid) {
3349                 ndr_print_dom_sid2(ndr, "sid", r->sid);
3350         }
3351         ndr->depth--;
3352         ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3353         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3354         ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3355         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3356         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3357         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3358         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3359         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3360         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3361         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3362         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3363         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3364         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3365         ndr->depth--;
3366 }
3367
3368 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)
3369 {
3370         uint32_t cntr_controller_names_1;
3371         if (ndr_flags & NDR_SCALARS) {
3372                 NDR_CHECK(ndr_push_align(ndr, 4));
3373                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3374                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3375                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3376                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3377                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3378                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3379                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3380                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3381                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3382                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3383                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3384                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3385                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3386         }
3387         if (ndr_flags & NDR_BUFFERS) {
3388                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3389                 if (r->controller_names) {
3390                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3391                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3392                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3393                         }
3394                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3395                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3396                         }
3397                 }
3398                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3399                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3400                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3401                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3402                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3403         }
3404         return NDR_ERR_SUCCESS;
3405 }
3406
3407 static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
3408 {
3409         uint32_t _ptr_controller_names;
3410         uint32_t cntr_controller_names_1;
3411         TALLOC_CTX *_mem_save_controller_names_0;
3412         TALLOC_CTX *_mem_save_controller_names_1;
3413         if (ndr_flags & NDR_SCALARS) {
3414                 NDR_CHECK(ndr_pull_align(ndr, 4));
3415                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3416                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3417                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3418                 if (_ptr_controller_names) {
3419                         NDR_PULL_ALLOC(ndr, r->controller_names);
3420                 } else {
3421                         r->controller_names = NULL;
3422                 }
3423                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3424                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3425                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3426                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3427                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3428                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3429                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3430                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3431                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3432                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3433         }
3434         if (ndr_flags & NDR_BUFFERS) {
3435                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3436                 if (r->controller_names) {
3437                         _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3438                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3439                         NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3440                         NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3441                         _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3442                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3443                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3444                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3445                         }
3446                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3447                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3448                         }
3449                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3450                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3451                 }
3452                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3453                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3454                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3455                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3456                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3457                 if (r->controller_names) {
3458                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3459                 }
3460         }
3461         return NDR_ERR_SUCCESS;
3462 }
3463
3464 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3465 {
3466         uint32_t cntr_controller_names_1;
3467         ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3468         ndr->depth++;
3469         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3470         ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3471         ndr_print_ptr(ndr, "controller_names", r->controller_names);
3472         ndr->depth++;
3473         if (r->controller_names) {
3474                 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", (int)r->num_controllers);
3475                 ndr->depth++;
3476                 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3477                         char *idx_1=NULL;
3478                         if (asprintf(&idx_1, "[%d]", cntr_controller_names_1) != -1) {
3479                                 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3480                                 free(idx_1);
3481                         }
3482                 }
3483                 ndr->depth--;
3484         }
3485         ndr->depth--;
3486         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3487         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3488         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3489         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3490         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3491         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3492         ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3493         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3494         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3495         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3496         ndr->depth--;
3497 }
3498
3499 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)
3500 {
3501         if (ndr_flags & NDR_SCALARS) {
3502                 NDR_CHECK(ndr_push_align(ndr, 2));
3503                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3504         }
3505         if (ndr_flags & NDR_BUFFERS) {
3506         }
3507         return NDR_ERR_SUCCESS;
3508 }
3509
3510 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
3511 {
3512         if (ndr_flags & NDR_SCALARS) {
3513                 NDR_CHECK(ndr_pull_align(ndr, 2));
3514                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3515         }
3516         if (ndr_flags & NDR_BUFFERS) {
3517         }
3518         return NDR_ERR_SUCCESS;
3519 }
3520
3521 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
3522 {
3523         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3524         ndr->depth++;
3525         ndr_print_uint16(ndr, "unknown", r->unknown);
3526         ndr->depth--;
3527 }
3528
3529 static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
3530 {
3531         uint32_t cntr_privilege_attrib_1;
3532         uint32_t cntr_privilege_name_1;
3533         if (ndr_flags & NDR_SCALARS) {
3534                 NDR_CHECK(ndr_push_align(ndr, 4));
3535                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3536                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3537                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3538                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3539                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3540                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3541                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3542                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3543                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3544                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3545                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3546                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3547                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3548                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3549                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3550                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3551         }
3552         if (ndr_flags & NDR_BUFFERS) {
3553                 if (r->privilege_attrib) {
3554                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3555                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3556                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3557                         }
3558                 }
3559                 if (r->privilege_name) {
3560                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3561                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3562                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3563                         }
3564                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3565                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3566                         }
3567                 }
3568                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3569                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3570                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3571                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3572                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3573         }
3574         return NDR_ERR_SUCCESS;
3575 }
3576
3577 static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
3578 {
3579         uint32_t _ptr_privilege_attrib;
3580         uint32_t cntr_privilege_attrib_1;
3581         TALLOC_CTX *_mem_save_privilege_attrib_0;
3582         TALLOC_CTX *_mem_save_privilege_attrib_1;
3583         uint32_t _ptr_privilege_name;
3584         uint32_t cntr_privilege_name_1;
3585         TALLOC_CTX *_mem_save_privilege_name_0;
3586         TALLOC_CTX *_mem_save_privilege_name_1;
3587         if (ndr_flags & NDR_SCALARS) {
3588                 NDR_CHECK(ndr_pull_align(ndr, 4));
3589                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3590                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3591                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3592                 if (_ptr_privilege_attrib) {
3593                         NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3594                 } else {
3595                         r->privilege_attrib = NULL;
3596                 }
3597                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3598                 if (_ptr_privilege_name) {
3599                         NDR_PULL_ALLOC(ndr, r->privilege_name);
3600                 } else {
3601                         r->privilege_name = NULL;
3602                 }
3603                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3604                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3605                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3606                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3607                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3608                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3609                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3610                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3611                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3612                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3613                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3614                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3615         }
3616         if (ndr_flags & NDR_BUFFERS) {
3617                 if (r->privilege_attrib) {
3618                         _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3619                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3620                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3621                         NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3622                         _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3623                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3624                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3625                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3626                         }
3627                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3628                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3629                 }
3630                 if (r->privilege_name) {
3631                         _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3632                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3633                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3634                         NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3635                         _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3636                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3637                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3638                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3639                         }
3640                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3641                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3642                         }
3643                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3644                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3645                 }
3646                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3647                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3648                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3649                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3650                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3651                 if (r->privilege_attrib) {
3652                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3653                 }
3654                 if (r->privilege_name) {
3655                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3656                 }
3657         }
3658         return NDR_ERR_SUCCESS;
3659 }
3660
3661 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
3662 {
3663         uint32_t cntr_privilege_attrib_1;
3664         uint32_t cntr_privilege_name_1;
3665         ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3666         ndr->depth++;
3667         ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3668         ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3669         ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3670         ndr->depth++;
3671         if (r->privilege_attrib) {
3672                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", (int)r->privilege_entries);
3673                 ndr->depth++;
3674                 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3675                         char *idx_1=NULL;
3676                         if (asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1) != -1) {
3677                                 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3678                                 free(idx_1);
3679                         }
3680                 }
3681                 ndr->depth--;
3682         }
3683         ndr->depth--;
3684         ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3685         ndr->depth++;
3686         if (r->privilege_name) {
3687                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", (int)r->privilege_entries);
3688                 ndr->depth++;
3689                 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3690                         char *idx_1=NULL;
3691                         if (asprintf(&idx_1, "[%d]", cntr_privilege_name_1) != -1) {
3692                                 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3693                                 free(idx_1);
3694                         }
3695                 }
3696                 ndr->depth--;
3697         }
3698         ndr->depth--;
3699         ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3700         ndr_print_uint32(ndr, "system_flags", r->system_flags);
3701         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3702         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3703         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3704         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3705         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3706         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3707         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3708         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3709         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3710         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3711         ndr->depth--;
3712 }
3713
3714 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)
3715 {
3716         if (ndr_flags & NDR_SCALARS) {
3717                 NDR_CHECK(ndr_push_align(ndr, 2));
3718                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3719         }
3720         if (ndr_flags & NDR_BUFFERS) {
3721         }
3722         return NDR_ERR_SUCCESS;
3723 }
3724
3725 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
3726 {
3727         if (ndr_flags & NDR_SCALARS) {
3728                 NDR_CHECK(ndr_pull_align(ndr, 2));
3729                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3730         }
3731         if (ndr_flags & NDR_BUFFERS) {
3732         }
3733         return NDR_ERR_SUCCESS;
3734 }
3735
3736 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
3737 {
3738         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3739         ndr->depth++;
3740         ndr_print_uint16(ndr, "unknown", r->unknown);
3741         ndr->depth--;
3742 }
3743
3744 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)
3745 {
3746         if (ndr_flags & NDR_SCALARS) {
3747                 NDR_CHECK(ndr_push_align(ndr, 2));
3748                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3749         }
3750         if (ndr_flags & NDR_BUFFERS) {
3751         }
3752         return NDR_ERR_SUCCESS;
3753 }
3754
3755 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
3756 {
3757         if (ndr_flags & NDR_SCALARS) {
3758                 NDR_CHECK(ndr_pull_align(ndr, 2));
3759                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3760         }
3761         if (ndr_flags & NDR_BUFFERS) {
3762         }
3763         return NDR_ERR_SUCCESS;
3764 }
3765
3766 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
3767 {
3768         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3769         ndr->depth++;
3770         ndr_print_uint16(ndr, "unknown", r->unknown);
3771         ndr->depth--;
3772 }
3773
3774 static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
3775 {
3776         if (ndr_flags & NDR_SCALARS) {
3777                 NDR_CHECK(ndr_push_align(ndr, 4));
3778                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3779                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3780                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3781         }
3782         if (ndr_flags & NDR_BUFFERS) {
3783                 if (r->cipher_data) {
3784                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3785                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3786                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3787                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3788                 }
3789         }
3790         return NDR_ERR_SUCCESS;
3791 }
3792
3793 static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
3794 {
3795         uint32_t _ptr_cipher_data;
3796         TALLOC_CTX *_mem_save_cipher_data_0;
3797         if (ndr_flags & NDR_SCALARS) {
3798                 NDR_CHECK(ndr_pull_align(ndr, 4));
3799                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3800                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3801                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3802                 if (_ptr_cipher_data) {
3803                         NDR_PULL_ALLOC(ndr, r->cipher_data);
3804                 } else {
3805                         r->cipher_data = NULL;
3806                 }
3807         }
3808         if (ndr_flags & NDR_BUFFERS) {
3809                 if (r->cipher_data) {
3810                         _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3811                         NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3812                         NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3813                         NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3814                         if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3815                                 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));
3816                         }
3817                         NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3818                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3819                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3820                 }
3821                 if (r->cipher_data) {
3822                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3823                 }
3824                 if (r->cipher_data) {
3825                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3826                 }
3827         }
3828         return NDR_ERR_SUCCESS;
3829 }
3830
3831 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
3832 {
3833         ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3834         ndr->depth++;
3835         ndr_print_uint32(ndr, "len", r->len);
3836         ndr_print_uint32(ndr, "maxlen", r->maxlen);
3837         ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3838         ndr->depth++;
3839         if (r->cipher_data) {
3840                 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3841         }
3842         ndr->depth--;
3843         ndr->depth--;
3844 }
3845
3846 static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
3847 {
3848         if (ndr_flags & NDR_SCALARS) {
3849                 NDR_CHECK(ndr_push_align(ndr, 4));
3850                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3851                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3852                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3853                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3854                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3855                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3856                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3857                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3858                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3859                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3860                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3861                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3862                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3863                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3864         }
3865         if (ndr_flags & NDR_BUFFERS) {
3866                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3867                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3868                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3869                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3870                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3871                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3872                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3873         }
3874         return NDR_ERR_SUCCESS;
3875 }
3876
3877 static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
3878 {
3879         if (ndr_flags & NDR_SCALARS) {
3880                 NDR_CHECK(ndr_pull_align(ndr, 4));
3881                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3882                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3883                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3884                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3885                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3886                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3887                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3888                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3889                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3890                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3891                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3892                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3893                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3894                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3895         }
3896         if (ndr_flags & NDR_BUFFERS) {
3897                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3898                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3899                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3900                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3901                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3902                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3903                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3904         }
3905         return NDR_ERR_SUCCESS;
3906 }
3907
3908 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
3909 {
3910         ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3911         ndr->depth++;
3912         ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3913         ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3914         ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3915         ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3916         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3917         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3918         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3919         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3920         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3921         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3922         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3923         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3924         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3925         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3926         ndr->depth--;
3927 }
3928
3929 static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
3930 {
3931         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3932         return NDR_ERR_SUCCESS;
3933 }
3934
3935 static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
3936 {
3937         uint16_t v;
3938         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3939         *r = v;
3940         return NDR_ERR_SUCCESS;
3941 }
3942
3943 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
3944 {
3945         const char *val = NULL;
3946
3947         switch (r) {
3948                 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3949                 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3950                 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3951                 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3952                 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3953                 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3954                 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3955                 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3956                 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3957                 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3958                 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3959                 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3960                 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3961                 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3962                 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3963                 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3964                 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3965                 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3966                 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3967                 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3968                 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3969                 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3970         }
3971         ndr_print_enum(ndr, name, "ENUM", val, r);
3972 }
3973
3974 static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
3975 {
3976         if (ndr_flags & NDR_SCALARS) {
3977                 int level = ndr_push_get_switch_value(ndr, r);
3978                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3979                 switch (level) {
3980                         case NETR_DELTA_DOMAIN: {
3981                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3982                         break; }
3983
3984                         case NETR_DELTA_GROUP: {
3985                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3986                         break; }
3987
3988                         case NETR_DELTA_DELETE_GROUP: {
3989                         break; }
3990
3991                         case NETR_DELTA_RENAME_GROUP: {
3992                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
3993                         break; }
3994
3995                         case NETR_DELTA_USER: {
3996                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
3997                         break; }
3998
3999                         case NETR_DELTA_DELETE_USER: {
4000                         break; }
4001
4002                         case NETR_DELTA_RENAME_USER: {
4003                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
4004                         break; }
4005
4006                         case NETR_DELTA_GROUP_MEMBER: {
4007                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
4008                         break; }
4009
4010                         case NETR_DELTA_ALIAS: {
4011                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
4012                         break; }
4013
4014                         case NETR_DELTA_DELETE_ALIAS: {
4015                         break; }
4016
4017                         case NETR_DELTA_RENAME_ALIAS: {
4018                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
4019                         break; }
4020
4021                         case NETR_DELTA_ALIAS_MEMBER: {
4022                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
4023                         break; }
4024
4025                         case NETR_DELTA_POLICY: {
4026                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
4027                         break; }
4028
4029                         case NETR_DELTA_TRUSTED_DOMAIN: {
4030                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
4031                         break; }
4032
4033                         case NETR_DELTA_DELETE_TRUST: {
4034                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4035                         break; }
4036
4037                         case NETR_DELTA_ACCOUNT: {
4038                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
4039                         break; }
4040
4041                         case NETR_DELTA_DELETE_ACCOUNT: {
4042                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4043                         break; }
4044
4045                         case NETR_DELTA_SECRET: {
4046                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
4047                         break; }
4048
4049                         case NETR_DELTA_DELETE_SECRET: {
4050                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4051                         break; }
4052
4053                         case NETR_DELTA_DELETE_GROUP2: {
4054                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
4055                         break; }
4056
4057                         case NETR_DELTA_DELETE_USER2: {
4058                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
4059                         break; }
4060
4061                         case NETR_DELTA_MODIFY_COUNT: {
4062                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
4063                         break; }
4064
4065                         default:
4066                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4067                 }
4068         }
4069         if (ndr_flags & NDR_BUFFERS) {
4070                 int level = ndr_push_get_switch_value(ndr, r);
4071                 switch (level) {
4072                         case NETR_DELTA_DOMAIN:
4073                                 if (r->domain) {
4074                                         NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4075                                 }
4076                         break;
4077
4078                         case NETR_DELTA_GROUP:
4079                                 if (r->group) {
4080                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4081                                 }
4082                         break;
4083
4084                         case NETR_DELTA_DELETE_GROUP:
4085                         break;
4086
4087                         case NETR_DELTA_RENAME_GROUP:
4088                                 if (r->rename_group) {
4089                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4090                                 }
4091                         break;
4092
4093                         case NETR_DELTA_USER:
4094                                 if (r->user) {
4095                                         NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4096                                 }
4097                         break;
4098
4099                         case NETR_DELTA_DELETE_USER:
4100                         break;
4101
4102                         case NETR_DELTA_RENAME_USER:
4103                                 if (r->rename_user) {
4104                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4105                                 }
4106                         break;
4107
4108                         case NETR_DELTA_GROUP_MEMBER:
4109                                 if (r->group_member) {
4110                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4111                                 }
4112                         break;
4113
4114                         case NETR_DELTA_ALIAS:
4115                                 if (r->alias) {
4116                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4117                                 }
4118                         break;
4119
4120                         case NETR_DELTA_DELETE_ALIAS:
4121                         break;
4122
4123                         case NETR_DELTA_RENAME_ALIAS:
4124                                 if (r->rename_alias) {
4125                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4126                                 }
4127                         break;
4128
4129                         case NETR_DELTA_ALIAS_MEMBER:
4130                                 if (r->alias_member) {
4131                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4132                                 }
4133                         break;
4134
4135                         case NETR_DELTA_POLICY:
4136                                 if (r->policy) {
4137                                         NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4138                                 }
4139                         break;
4140
4141                         case NETR_DELTA_TRUSTED_DOMAIN:
4142                                 if (r->trusted_domain) {
4143                                         NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4144                                 }
4145                         break;
4146
4147                         case NETR_DELTA_DELETE_TRUST:
4148                         break;
4149
4150                         case NETR_DELTA_ACCOUNT:
4151                                 if (r->account) {
4152                                         NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4153                                 }
4154                         break;
4155
4156                         case NETR_DELTA_DELETE_ACCOUNT:
4157                         break;
4158
4159                         case NETR_DELTA_SECRET:
4160                                 if (r->secret) {
4161                                         NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4162                                 }
4163                         break;
4164
4165                         case NETR_DELTA_DELETE_SECRET:
4166                         break;
4167
4168                         case NETR_DELTA_DELETE_GROUP2:
4169                                 if (r->delete_group) {
4170                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4171                                 }
4172                         break;
4173
4174                         case NETR_DELTA_DELETE_USER2:
4175                                 if (r->delete_user) {
4176                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4177                                 }
4178                         break;
4179
4180                         case NETR_DELTA_MODIFY_COUNT:
4181                                 if (r->modified_count) {
4182                                         NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
4183                                 }
4184                         break;
4185
4186                         default:
4187                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4188                 }
4189         }
4190         return NDR_ERR_SUCCESS;
4191 }
4192
4193 static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
4194 {
4195         int level;
4196         uint16_t _level;
4197         TALLOC_CTX *_mem_save_domain_0;
4198         TALLOC_CTX *_mem_save_group_0;
4199         TALLOC_CTX *_mem_save_rename_group_0;
4200         TALLOC_CTX *_mem_save_user_0;
4201         TALLOC_CTX *_mem_save_rename_user_0;
4202         TALLOC_CTX *_mem_save_group_member_0;
4203         TALLOC_CTX *_mem_save_alias_0;
4204         TALLOC_CTX *_mem_save_rename_alias_0;
4205         TALLOC_CTX *_mem_save_alias_member_0;
4206         TALLOC_CTX *_mem_save_policy_0;
4207         TALLOC_CTX *_mem_save_trusted_domain_0;
4208         TALLOC_CTX *_mem_save_account_0;
4209         TALLOC_CTX *_mem_save_secret_0;
4210         TALLOC_CTX *_mem_save_delete_group_0;
4211         TALLOC_CTX *_mem_save_delete_user_0;
4212         TALLOC_CTX *_mem_save_modified_count_0;
4213         level = ndr_pull_get_switch_value(ndr, r);
4214         if (ndr_flags & NDR_SCALARS) {
4215                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4216                 if (_level != level) {
4217                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4218                 }
4219                 switch (level) {
4220                         case NETR_DELTA_DOMAIN: {
4221                                 uint32_t _ptr_domain;
4222                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
4223                                 if (_ptr_domain) {
4224                                         NDR_PULL_ALLOC(ndr, r->domain);
4225                                 } else {
4226                                         r->domain = NULL;
4227                                 }
4228                         break; }
4229
4230                         case NETR_DELTA_GROUP: {
4231                                 uint32_t _ptr_group;
4232                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
4233                                 if (_ptr_group) {
4234                                         NDR_PULL_ALLOC(ndr, r->group);
4235                                 } else {
4236                                         r->group = NULL;
4237                                 }
4238                         break; }
4239
4240                         case NETR_DELTA_DELETE_GROUP: {
4241                         break; }
4242
4243                         case NETR_DELTA_RENAME_GROUP: {
4244                                 uint32_t _ptr_rename_group;
4245                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4246                                 if (_ptr_rename_group) {
4247                                         NDR_PULL_ALLOC(ndr, r->rename_group);
4248                                 } else {
4249                                         r->rename_group = NULL;
4250                                 }
4251                         break; }
4252
4253                         case NETR_DELTA_USER: {
4254                                 uint32_t _ptr_user;
4255                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4256                                 if (_ptr_user) {
4257                                         NDR_PULL_ALLOC(ndr, r->user);
4258                                 } else {
4259                                         r->user = NULL;
4260                                 }
4261                         break; }
4262
4263                         case NETR_DELTA_DELETE_USER: {
4264                         break; }
4265
4266                         case NETR_DELTA_RENAME_USER: {
4267                                 uint32_t _ptr_rename_user;
4268                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4269                                 if (_ptr_rename_user) {
4270                                         NDR_PULL_ALLOC(ndr, r->rename_user);
4271                                 } else {
4272                                         r->rename_user = NULL;
4273                                 }
4274                         break; }
4275
4276                         case NETR_DELTA_GROUP_MEMBER: {
4277                                 uint32_t _ptr_group_member;
4278                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4279                                 if (_ptr_group_member) {
4280                                         NDR_PULL_ALLOC(ndr, r->group_member);
4281                                 } else {
4282                                         r->group_member = NULL;
4283                                 }
4284                         break; }
4285
4286                         case NETR_DELTA_ALIAS: {
4287                                 uint32_t _ptr_alias;
4288                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4289                                 if (_ptr_alias) {
4290                                         NDR_PULL_ALLOC(ndr, r->alias);
4291                                 } else {
4292                                         r->alias = NULL;
4293                                 }
4294                         break; }
4295
4296                         case NETR_DELTA_DELETE_ALIAS: {
4297                         break; }
4298
4299                         case NETR_DELTA_RENAME_ALIAS: {
4300                                 uint32_t _ptr_rename_alias;
4301                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4302                                 if (_ptr_rename_alias) {
4303                                         NDR_PULL_ALLOC(ndr, r->rename_alias);
4304                                 } else {
4305                                         r->rename_alias = NULL;
4306                                 }
4307                         break; }
4308
4309                         case NETR_DELTA_ALIAS_MEMBER: {
4310                                 uint32_t _ptr_alias_member;
4311                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4312                                 if (_ptr_alias_member) {
4313                                         NDR_PULL_ALLOC(ndr, r->alias_member);
4314                                 } else {
4315                                         r->alias_member = NULL;
4316                                 }
4317                         break; }
4318
4319                         case NETR_DELTA_POLICY: {
4320                                 uint32_t _ptr_policy;
4321                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4322                                 if (_ptr_policy) {
4323                                         NDR_PULL_ALLOC(ndr, r->policy);
4324                                 } else {
4325                                         r->policy = NULL;
4326                                 }
4327                         break; }
4328
4329                         case NETR_DELTA_TRUSTED_DOMAIN: {
4330                                 uint32_t _ptr_trusted_domain;
4331                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4332                                 if (_ptr_trusted_domain) {
4333                                         NDR_PULL_ALLOC(ndr, r->trusted_domain);
4334                                 } else {
4335                                         r->trusted_domain = NULL;
4336                                 }
4337                         break; }
4338
4339                         case NETR_DELTA_DELETE_TRUST: {
4340                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4341                         break; }
4342
4343                         case NETR_DELTA_ACCOUNT: {
4344                                 uint32_t _ptr_account;
4345                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4346                                 if (_ptr_account) {
4347                                         NDR_PULL_ALLOC(ndr, r->account);
4348                                 } else {
4349                                         r->account = NULL;
4350                                 }
4351                         break; }
4352
4353                         case NETR_DELTA_DELETE_ACCOUNT: {
4354                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4355                         break; }
4356
4357                         case NETR_DELTA_SECRET: {
4358                                 uint32_t _ptr_secret;
4359                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4360                                 if (_ptr_secret) {
4361                                         NDR_PULL_ALLOC(ndr, r->secret);
4362                                 } else {
4363                                         r->secret = NULL;
4364                                 }
4365                         break; }
4366
4367                         case NETR_DELTA_DELETE_SECRET: {
4368                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4369                         break; }
4370
4371                         case NETR_DELTA_DELETE_GROUP2: {
4372                                 uint32_t _ptr_delete_group;
4373                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4374                                 if (_ptr_delete_group) {
4375                                         NDR_PULL_ALLOC(ndr, r->delete_group);
4376                                 } else {
4377                                         r->delete_group = NULL;
4378                                 }
4379                         break; }
4380
4381                         case NETR_DELTA_DELETE_USER2: {
4382                                 uint32_t _ptr_delete_user;
4383                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4384                                 if (_ptr_delete_user) {
4385                                         NDR_PULL_ALLOC(ndr, r->delete_user);
4386                                 } else {
4387                                         r->delete_user = NULL;
4388                                 }
4389                         break; }
4390
4391                         case NETR_DELTA_MODIFY_COUNT: {
4392                                 uint32_t _ptr_modified_count;
4393                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4394                                 if (_ptr_modified_count) {
4395                                         NDR_PULL_ALLOC(ndr, r->modified_count);
4396                                 } else {
4397                                         r->modified_count = NULL;
4398                                 }
4399                         break; }
4400
4401                         default:
4402                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4403                 }
4404         }
4405         if (ndr_flags & NDR_BUFFERS) {
4406                 switch (level) {
4407                         case NETR_DELTA_DOMAIN:
4408                                 if (r->domain) {
4409                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4410                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4411                                         NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4412                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4413                                 }
4414                         break;
4415
4416                         case NETR_DELTA_GROUP:
4417                                 if (r->group) {
4418                                         _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4419                                         NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4420                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4421                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4422                                 }
4423                         break;
4424
4425                         case NETR_DELTA_DELETE_GROUP:
4426                         break;
4427
4428                         case NETR_DELTA_RENAME_GROUP:
4429                                 if (r->rename_group) {
4430                                         _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4431                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4432                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4433                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4434                                 }
4435                         break;
4436
4437                         case NETR_DELTA_USER:
4438                                 if (r->user) {
4439                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4440                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4441                                         NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4442                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4443                                 }
4444                         break;
4445
4446                         case NETR_DELTA_DELETE_USER:
4447                         break;
4448
4449                         case NETR_DELTA_RENAME_USER:
4450                                 if (r->rename_user) {
4451                                         _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4452                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4453                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4454                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4455                                 }
4456                         break;
4457
4458                         case NETR_DELTA_GROUP_MEMBER:
4459                                 if (r->group_member) {
4460                                         _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4461                                         NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4462                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4463                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4464                                 }
4465                         break;
4466
4467                         case NETR_DELTA_ALIAS:
4468                                 if (r->alias) {
4469                                         _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4470                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4471                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4472                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4473                                 }
4474                         break;
4475
4476                         case NETR_DELTA_DELETE_ALIAS:
4477                         break;
4478
4479                         case NETR_DELTA_RENAME_ALIAS:
4480                                 if (r->rename_alias) {
4481                                         _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4482                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4483                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4484                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4485                                 }
4486                         break;
4487
4488                         case NETR_DELTA_ALIAS_MEMBER:
4489                                 if (r->alias_member) {
4490                                         _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4491                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4492                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4493                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4494                                 }
4495                         break;
4496
4497                         case NETR_DELTA_POLICY:
4498                                 if (r->policy) {
4499                                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4500                                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4501                                         NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4502                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4503                                 }
4504                         break;
4505
4506                         case NETR_DELTA_TRUSTED_DOMAIN:
4507                                 if (r->trusted_domain) {
4508                                         _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4509                                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4510                                         NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4511                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4512                                 }
4513                         break;
4514
4515                         case NETR_DELTA_DELETE_TRUST:
4516                         break;
4517
4518                         case NETR_DELTA_ACCOUNT:
4519                                 if (r->account) {
4520                                         _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4521                                         NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4522                                         NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4523                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4524                                 }
4525                         break;
4526
4527                         case NETR_DELTA_DELETE_ACCOUNT:
4528                         break;
4529
4530                         case NETR_DELTA_SECRET:
4531                                 if (r->secret) {
4532                                         _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4533                                         NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4534                                         NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4535                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4536                                 }
4537                         break;
4538
4539                         case NETR_DELTA_DELETE_SECRET:
4540                         break;
4541
4542                         case NETR_DELTA_DELETE_GROUP2:
4543                                 if (r->delete_group) {
4544                                         _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4545                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4546                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4547                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4548                                 }
4549                         break;
4550
4551                         case NETR_DELTA_DELETE_USER2:
4552                                 if (r->delete_user) {
4553                                         _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4554                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4555                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4556                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4557                                 }
4558                         break;
4559
4560                         case NETR_DELTA_MODIFY_COUNT:
4561                                 if (r->modified_count) {
4562                                         _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4563                                         NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4564                                         NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4565                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4566                                 }
4567                         break;
4568
4569                         default:
4570                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4571                 }
4572         }
4573         return NDR_ERR_SUCCESS;
4574 }
4575
4576 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
4577 {
4578         int level;
4579         level = ndr_print_get_switch_value(ndr, r);
4580         ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4581         switch (level) {
4582                 case NETR_DELTA_DOMAIN:
4583                         ndr_print_ptr(ndr, "domain", r->domain);
4584                         ndr->depth++;
4585                         if (r->domain) {
4586                                 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4587                         }
4588                         ndr->depth--;
4589                 break;
4590
4591                 case NETR_DELTA_GROUP:
4592                         ndr_print_ptr(ndr, "group", r->group);
4593                         ndr->depth++;
4594                         if (r->group) {
4595                                 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4596                         }
4597                         ndr->depth--;
4598                 break;
4599
4600                 case NETR_DELTA_DELETE_GROUP:
4601                 break;
4602
4603                 case NETR_DELTA_RENAME_GROUP:
4604                         ndr_print_ptr(ndr, "rename_group", r->rename_group);
4605                         ndr->depth++;
4606                         if (r->rename_group) {
4607                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4608                         }
4609                         ndr->depth--;
4610                 break;
4611
4612                 case NETR_DELTA_USER:
4613                         ndr_print_ptr(ndr, "user", r->user);
4614                         ndr->depth++;
4615                         if (r->user) {
4616                                 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4617                         }
4618                         ndr->depth--;
4619                 break;
4620
4621                 case NETR_DELTA_DELETE_USER:
4622                 break;
4623
4624                 case NETR_DELTA_RENAME_USER:
4625                         ndr_print_ptr(ndr, "rename_user", r->rename_user);
4626                         ndr->depth++;
4627                         if (r->rename_user) {
4628                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4629                         }
4630                         ndr->depth--;
4631                 break;
4632
4633                 case NETR_DELTA_GROUP_MEMBER:
4634                         ndr_print_ptr(ndr, "group_member", r->group_member);
4635                         ndr->depth++;
4636                         if (r->group_member) {
4637                                 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4638                         }
4639                         ndr->depth--;
4640                 break;
4641
4642                 case NETR_DELTA_ALIAS:
4643                         ndr_print_ptr(ndr, "alias", r->alias);
4644                         ndr->depth++;
4645                         if (r->alias) {
4646                                 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4647                         }
4648                         ndr->depth--;
4649                 break;
4650
4651                 case NETR_DELTA_DELETE_ALIAS:
4652                 break;
4653
4654                 case NETR_DELTA_RENAME_ALIAS:
4655                         ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4656                         ndr->depth++;
4657                         if (r->rename_alias) {
4658                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4659                         }
4660                         ndr->depth--;
4661                 break;
4662
4663                 case NETR_DELTA_ALIAS_MEMBER:
4664                         ndr_print_ptr(ndr, "alias_member", r->alias_member);
4665                         ndr->depth++;
4666                         if (r->alias_member) {
4667                                 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4668                         }
4669                         ndr->depth--;
4670                 break;
4671
4672                 case NETR_DELTA_POLICY:
4673                         ndr_print_ptr(ndr, "policy", r->policy);
4674                         ndr->depth++;
4675                         if (r->policy) {
4676                                 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4677                         }
4678                         ndr->depth--;
4679                 break;
4680
4681                 case NETR_DELTA_TRUSTED_DOMAIN:
4682                         ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4683                         ndr->depth++;
4684                         if (r->trusted_domain) {
4685                                 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4686                         }
4687                         ndr->depth--;
4688                 break;
4689
4690                 case NETR_DELTA_DELETE_TRUST:
4691                         ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4692                 break;
4693
4694                 case NETR_DELTA_ACCOUNT:
4695                         ndr_print_ptr(ndr, "account", r->account);
4696                         ndr->depth++;
4697                         if (r->account) {
4698                                 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4699                         }
4700                         ndr->depth--;
4701                 break;
4702
4703                 case NETR_DELTA_DELETE_ACCOUNT:
4704                         ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4705                 break;
4706
4707                 case NETR_DELTA_SECRET:
4708                         ndr_print_ptr(ndr, "secret", r->secret);
4709                         ndr->depth++;
4710                         if (r->secret) {
4711                                 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4712                         }
4713                         ndr->depth--;
4714                 break;
4715
4716                 case NETR_DELTA_DELETE_SECRET:
4717                         ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4718                 break;
4719
4720                 case NETR_DELTA_DELETE_GROUP2:
4721                         ndr_print_ptr(ndr, "delete_group", r->delete_group);
4722                         ndr->depth++;
4723                         if (r->delete_group) {
4724                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4725                         }
4726                         ndr->depth--;
4727                 break;
4728
4729                 case NETR_DELTA_DELETE_USER2:
4730                         ndr_print_ptr(ndr, "delete_user", r->delete_user);
4731                         ndr->depth++;
4732                         if (r->delete_user) {
4733                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4734                         }
4735                         ndr->depth--;
4736                 break;
4737
4738                 case NETR_DELTA_MODIFY_COUNT:
4739                         ndr_print_ptr(ndr, "modified_count", r->modified_count);
4740                         ndr->depth++;
4741                         if (r->modified_count) {
4742                                 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4743                         }
4744                         ndr->depth--;
4745                 break;
4746
4747                 default:
4748                         ndr_print_bad_level(ndr, name, level);
4749         }
4750 }
4751
4752 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)
4753 {
4754         if (ndr_flags & NDR_SCALARS) {
4755                 int level = ndr_push_get_switch_value(ndr, r);
4756                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4757                 switch (level) {
4758                         case NETR_DELTA_DOMAIN: {
4759                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4760                         break; }
4761
4762                         case NETR_DELTA_GROUP: {
4763                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4764                         break; }
4765
4766                         case NETR_DELTA_DELETE_GROUP: {
4767                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4768                         break; }
4769
4770                         case NETR_DELTA_RENAME_GROUP: {
4771                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4772                         break; }
4773
4774                         case NETR_DELTA_USER: {
4775                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4776                         break; }
4777
4778                         case NETR_DELTA_DELETE_USER: {
4779                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4780                         break; }
4781
4782                         case NETR_DELTA_RENAME_USER: {
4783                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4784                         break; }
4785
4786                         case NETR_DELTA_GROUP_MEMBER: {
4787                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4788                         break; }
4789
4790                         case NETR_DELTA_ALIAS: {
4791                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4792                         break; }
4793
4794                         case NETR_DELTA_DELETE_ALIAS: {
4795                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4796                         break; }
4797
4798                         case NETR_DELTA_RENAME_ALIAS: {
4799                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4800                         break; }
4801
4802                         case NETR_DELTA_ALIAS_MEMBER: {
4803                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4804                         break; }
4805
4806                         case NETR_DELTA_POLICY: {
4807                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4808                         break; }
4809
4810                         case NETR_DELTA_TRUSTED_DOMAIN: {
4811                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4812                         break; }
4813
4814                         case NETR_DELTA_DELETE_TRUST: {
4815                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4816                         break; }
4817
4818                         case NETR_DELTA_ACCOUNT: {
4819                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4820                         break; }
4821
4822                         case NETR_DELTA_DELETE_ACCOUNT: {
4823                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4824                         break; }
4825
4826                         case NETR_DELTA_SECRET: {
4827                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4828                         break; }
4829
4830                         case NETR_DELTA_DELETE_SECRET: {
4831                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4832                         break; }
4833
4834                         case NETR_DELTA_DELETE_GROUP2: {
4835                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4836                         break; }
4837
4838                         case NETR_DELTA_DELETE_USER2: {
4839                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4840                         break; }
4841
4842                         case NETR_DELTA_MODIFY_COUNT: {
4843                         break; }
4844
4845                         default:
4846                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4847                 }
4848         }
4849         if (ndr_flags & NDR_BUFFERS) {
4850                 int level = ndr_push_get_switch_value(ndr, r);
4851                 switch (level) {
4852                         case NETR_DELTA_DOMAIN:
4853                         break;
4854
4855                         case NETR_DELTA_GROUP:
4856                         break;
4857
4858                         case NETR_DELTA_DELETE_GROUP:
4859                         break;
4860
4861                         case NETR_DELTA_RENAME_GROUP:
4862                         break;
4863
4864                         case NETR_DELTA_USER:
4865                         break;
4866
4867                         case NETR_DELTA_DELETE_USER:
4868                         break;
4869
4870                         case NETR_DELTA_RENAME_USER:
4871                         break;
4872
4873                         case NETR_DELTA_GROUP_MEMBER:
4874                         break;
4875
4876                         case NETR_DELTA_ALIAS:
4877                         break;
4878
4879                         case NETR_DELTA_DELETE_ALIAS:
4880                         break;
4881
4882                         case NETR_DELTA_RENAME_ALIAS:
4883                         break;
4884
4885                         case NETR_DELTA_ALIAS_MEMBER:
4886                         break;
4887
4888                         case NETR_DELTA_POLICY:
4889                                 if (r->sid) {
4890                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4891                                 }
4892                         break;
4893
4894                         case NETR_DELTA_TRUSTED_DOMAIN:
4895                                 if (r->sid) {
4896                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4897                                 }
4898                         break;
4899
4900                         case NETR_DELTA_DELETE_TRUST:
4901                                 if (r->sid) {
4902                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4903                                 }
4904                         break;
4905
4906                         case NETR_DELTA_ACCOUNT:
4907                                 if (r->sid) {
4908                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4909                                 }
4910                         break;
4911
4912                         case NETR_DELTA_DELETE_ACCOUNT:
4913                                 if (r->sid) {
4914                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4915                                 }
4916                         break;
4917
4918                         case NETR_DELTA_SECRET:
4919                                 if (r->name) {
4920                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4921                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4922                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4923                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4924                                 }
4925                         break;
4926
4927                         case NETR_DELTA_DELETE_SECRET:
4928                                 if (r->name) {
4929                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4930                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4931                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4932                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4933                                 }
4934                         break;
4935
4936                         case NETR_DELTA_DELETE_GROUP2:
4937                         break;
4938
4939                         case NETR_DELTA_DELETE_USER2:
4940                         break;
4941
4942                         case NETR_DELTA_MODIFY_COUNT:
4943                         break;
4944
4945                         default:
4946                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4947                 }
4948         }
4949         return NDR_ERR_SUCCESS;
4950 }
4951
4952 static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
4953 {
4954         int level;
4955         uint16_t _level;
4956         TALLOC_CTX *_mem_save_sid_0;
4957         TALLOC_CTX *_mem_save_name_0;
4958         level = ndr_pull_get_switch_value(ndr, r);
4959         if (ndr_flags & NDR_SCALARS) {
4960                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4961                 if (_level != level) {
4962                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4963                 }
4964                 switch (level) {
4965                         case NETR_DELTA_DOMAIN: {
4966                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4967                         break; }
4968
4969                         case NETR_DELTA_GROUP: {
4970                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4971                         break; }
4972
4973                         case NETR_DELTA_DELETE_GROUP: {
4974                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4975                         break; }
4976
4977                         case NETR_DELTA_RENAME_GROUP: {
4978                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4979                         break; }
4980
4981                         case NETR_DELTA_USER: {
4982                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4983                         break; }
4984
4985                         case NETR_DELTA_DELETE_USER: {
4986                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4987                         break; }
4988
4989                         case NETR_DELTA_RENAME_USER: {
4990                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4991                         break; }
4992
4993                         case NETR_DELTA_GROUP_MEMBER: {
4994                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4995                         break; }
4996
4997                         case NETR_DELTA_ALIAS: {
4998                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4999                         break; }
5000
5001                         case NETR_DELTA_DELETE_ALIAS: {
5002                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5003                         break; }
5004
5005                         case NETR_DELTA_RENAME_ALIAS: {
5006                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5007                         break; }
5008
5009                         case NETR_DELTA_ALIAS_MEMBER: {
5010                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5011                         break; }
5012
5013                         case NETR_DELTA_POLICY: {
5014                                 uint32_t _ptr_sid;
5015                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5016                                 if (_ptr_sid) {
5017                                         NDR_PULL_ALLOC(ndr, r->sid);
5018                                 } else {
5019                                         r->sid = NULL;
5020                                 }
5021                         break; }
5022
5023                         case NETR_DELTA_TRUSTED_DOMAIN: {
5024                                 uint32_t _ptr_sid;
5025                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5026                                 if (_ptr_sid) {
5027                                         NDR_PULL_ALLOC(ndr, r->sid);
5028                                 } else {
5029                                         r->sid = NULL;
5030                                 }
5031                         break; }
5032
5033                         case NETR_DELTA_DELETE_TRUST: {
5034                                 uint32_t _ptr_sid;
5035                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5036                                 if (_ptr_sid) {
5037                                         NDR_PULL_ALLOC(ndr, r->sid);
5038                                 } else {
5039                                         r->sid = NULL;
5040                                 }
5041                         break; }
5042
5043                         case NETR_DELTA_ACCOUNT: {
5044                                 uint32_t _ptr_sid;
5045                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5046                                 if (_ptr_sid) {
5047                                         NDR_PULL_ALLOC(ndr, r->sid);
5048                                 } else {
5049                                         r->sid = NULL;
5050                                 }
5051                         break; }
5052
5053                         case NETR_DELTA_DELETE_ACCOUNT: {
5054                                 uint32_t _ptr_sid;
5055                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5056                                 if (_ptr_sid) {
5057                                         NDR_PULL_ALLOC(ndr, r->sid);
5058                                 } else {
5059                                         r->sid = NULL;
5060                                 }
5061                         break; }
5062
5063                         case NETR_DELTA_SECRET: {
5064                                 uint32_t _ptr_name;
5065                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5066                                 if (_ptr_name) {
5067                                         NDR_PULL_ALLOC(ndr, r->name);
5068                                 } else {
5069                                         r->name = NULL;
5070                                 }
5071                         break; }
5072
5073                         case NETR_DELTA_DELETE_SECRET: {
5074                                 uint32_t _ptr_name;
5075                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5076                                 if (_ptr_name) {
5077                                         NDR_PULL_ALLOC(ndr, r->name);
5078                                 } else {
5079                                         r->name = NULL;
5080                                 }
5081                         break; }
5082
5083                         case NETR_DELTA_DELETE_GROUP2: {
5084                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5085                         break; }
5086
5087                         case NETR_DELTA_DELETE_USER2: {
5088                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5089                         break; }
5090
5091                         case NETR_DELTA_MODIFY_COUNT: {
5092                         break; }
5093
5094                         default:
5095                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5096                 }
5097         }
5098         if (ndr_flags & NDR_BUFFERS) {
5099                 switch (level) {
5100                         case NETR_DELTA_DOMAIN:
5101                         break;
5102
5103                         case NETR_DELTA_GROUP:
5104                         break;
5105
5106                         case NETR_DELTA_DELETE_GROUP:
5107                         break;
5108
5109                         case NETR_DELTA_RENAME_GROUP:
5110                         break;
5111
5112                         case NETR_DELTA_USER:
5113                         break;
5114
5115                         case NETR_DELTA_DELETE_USER:
5116                         break;
5117
5118                         case NETR_DELTA_RENAME_USER:
5119                         break;
5120
5121                         case NETR_DELTA_GROUP_MEMBER:
5122                         break;
5123
5124                         case NETR_DELTA_ALIAS:
5125                         break;
5126
5127                         case NETR_DELTA_DELETE_ALIAS:
5128                         break;
5129
5130                         case NETR_DELTA_RENAME_ALIAS:
5131                         break;
5132
5133                         case NETR_DELTA_ALIAS_MEMBER:
5134                         break;
5135
5136                         case NETR_DELTA_POLICY:
5137                                 if (r->sid) {
5138                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5139                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5140                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5141                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5142                                 }
5143                         break;
5144
5145                         case NETR_DELTA_TRUSTED_DOMAIN:
5146                                 if (r->sid) {
5147                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5148                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5149                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5150                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5151                                 }
5152                         break;
5153
5154                         case NETR_DELTA_DELETE_TRUST:
5155                                 if (r->sid) {
5156                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5157                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5158                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5159                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5160                                 }
5161                         break;
5162
5163                         case NETR_DELTA_ACCOUNT:
5164                                 if (r->sid) {
5165                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5166                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5167                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5168                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5169                                 }
5170                         break;
5171
5172                         case NETR_DELTA_DELETE_ACCOUNT:
5173                                 if (r->sid) {
5174                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5175                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5176                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5177                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5178                                 }
5179                         break;
5180
5181                         case NETR_DELTA_SECRET:
5182                                 if (r->name) {
5183                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5184                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5185                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5186                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5187                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5188                                                 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));
5189                                         }
5190                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5191                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5192                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5193                                 }
5194                         break;
5195
5196                         case NETR_DELTA_DELETE_SECRET:
5197                                 if (r->name) {
5198                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5199                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5200                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5201                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5202                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5203                                                 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));
5204                                         }
5205                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5206                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5207                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5208                                 }
5209                         break;
5210
5211                         case NETR_DELTA_DELETE_GROUP2:
5212                         break;
5213
5214                         case NETR_DELTA_DELETE_USER2:
5215                         break;
5216
5217                         case NETR_DELTA_MODIFY_COUNT:
5218                         break;
5219
5220                         default:
5221                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5222                 }
5223         }
5224         return NDR_ERR_SUCCESS;
5225 }
5226
5227 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
5228 {
5229         int level;
5230         level = ndr_print_get_switch_value(ndr, r);
5231         ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
5232         switch (level) {
5233                 case NETR_DELTA_DOMAIN:
5234                         ndr_print_uint32(ndr, "rid", r->rid);
5235                 break;
5236
5237                 case NETR_DELTA_GROUP:
5238                         ndr_print_uint32(ndr, "rid", r->rid);
5239                 break;
5240
5241                 case NETR_DELTA_DELETE_GROUP:
5242                         ndr_print_uint32(ndr, "rid", r->rid);
5243                 break;
5244
5245                 case NETR_DELTA_RENAME_GROUP:
5246                         ndr_print_uint32(ndr, "rid", r->rid);
5247                 break;
5248
5249                 case NETR_DELTA_USER:
5250                         ndr_print_uint32(ndr, "rid", r->rid);
5251                 break;
5252
5253                 case NETR_DELTA_DELETE_USER:
5254                         ndr_print_uint32(ndr, "rid", r->rid);
5255                 break;
5256
5257                 case NETR_DELTA_RENAME_USER:
5258                         ndr_print_uint32(ndr, "rid", r->rid);
5259                 break;
5260
5261                 case NETR_DELTA_GROUP_MEMBER:
5262                         ndr_print_uint32(ndr, "rid", r->rid);
5263                 break;
5264
5265                 case NETR_DELTA_ALIAS:
5266                         ndr_print_uint32(ndr, "rid", r->rid);
5267                 break;
5268
5269                 case NETR_DELTA_DELETE_ALIAS:
5270                         ndr_print_uint32(ndr, "rid", r->rid);
5271                 break;
5272
5273                 case NETR_DELTA_RENAME_ALIAS:
5274                         ndr_print_uint32(ndr, "rid", r->rid);
5275                 break;
5276
5277                 case NETR_DELTA_ALIAS_MEMBER:
5278                         ndr_print_uint32(ndr, "rid", r->rid);
5279                 break;
5280
5281                 case NETR_DELTA_POLICY:
5282                         ndr_print_ptr(ndr, "sid", r->sid);
5283                         ndr->depth++;
5284                         if (r->sid) {
5285                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5286                         }
5287                         ndr->depth--;
5288                 break;
5289
5290                 case NETR_DELTA_TRUSTED_DOMAIN:
5291                         ndr_print_ptr(ndr, "sid", r->sid);
5292                         ndr->depth++;
5293                         if (r->sid) {
5294                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5295                         }
5296                         ndr->depth--;
5297                 break;
5298
5299                 case NETR_DELTA_DELETE_TRUST:
5300                         ndr_print_ptr(ndr, "sid", r->sid);
5301                         ndr->depth++;
5302                         if (r->sid) {
5303                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5304                         }
5305                         ndr->depth--;
5306                 break;
5307
5308                 case NETR_DELTA_ACCOUNT:
5309                         ndr_print_ptr(ndr, "sid", r->sid);
5310                         ndr->depth++;
5311                         if (r->sid) {
5312                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5313                         }
5314                         ndr->depth--;
5315                 break;
5316
5317                 case NETR_DELTA_DELETE_ACCOUNT:
5318                         ndr_print_ptr(ndr, "sid", r->sid);
5319                         ndr->depth++;
5320                         if (r->sid) {
5321                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5322                         }
5323                         ndr->depth--;
5324                 break;
5325
5326                 case NETR_DELTA_SECRET:
5327                         ndr_print_ptr(ndr, "name", r->name);
5328                         ndr->depth++;
5329                         if (r->name) {
5330                                 ndr_print_string(ndr, "name", r->name);
5331                         }
5332                         ndr->depth--;
5333                 break;
5334
5335                 case NETR_DELTA_DELETE_SECRET:
5336                         ndr_print_ptr(ndr, "name", r->name);
5337                         ndr->depth++;
5338                         if (r->name) {
5339                                 ndr_print_string(ndr, "name", r->name);
5340                         }
5341                         ndr->depth--;
5342                 break;
5343
5344                 case NETR_DELTA_DELETE_GROUP2:
5345                         ndr_print_uint32(ndr, "rid", r->rid);
5346                 break;
5347
5348                 case NETR_DELTA_DELETE_USER2:
5349                         ndr_print_uint32(ndr, "rid", r->rid);
5350                 break;
5351
5352                 case NETR_DELTA_MODIFY_COUNT:
5353                 break;
5354
5355                 default:
5356                         ndr_print_bad_level(ndr, name, level);
5357         }
5358 }
5359
5360 static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
5361 {
5362         if (ndr_flags & NDR_SCALARS) {
5363                 NDR_CHECK(ndr_push_align(ndr, 4));
5364                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5365                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5366                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5367                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5368                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5369         }
5370         if (ndr_flags & NDR_BUFFERS) {
5371                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5372                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5373         }
5374         return NDR_ERR_SUCCESS;
5375 }
5376
5377 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
5378 {
5379         if (ndr_flags & NDR_SCALARS) {
5380                 NDR_CHECK(ndr_pull_align(ndr, 4));
5381                 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5382                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5383                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5384                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5385                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5386         }
5387         if (ndr_flags & NDR_BUFFERS) {
5388                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5389                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5390         }
5391         return NDR_ERR_SUCCESS;
5392 }
5393
5394 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
5395 {
5396         ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5397         ndr->depth++;
5398         ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5399         ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5400         ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5401         ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5402         ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5403         ndr->depth--;
5404 }
5405
5406 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)
5407 {
5408         uint32_t cntr_delta_enum_1;
5409         if (ndr_flags & NDR_SCALARS) {
5410                 NDR_CHECK(ndr_push_align(ndr, 4));
5411                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5412                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5413         }
5414         if (ndr_flags & NDR_BUFFERS) {
5415                 if (r->delta_enum) {
5416                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5417                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5418                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5419                         }
5420                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5421                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5422                         }
5423                 }
5424         }
5425         return NDR_ERR_SUCCESS;
5426 }
5427
5428 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
5429 {
5430         uint32_t _ptr_delta_enum;
5431         uint32_t cntr_delta_enum_1;
5432         TALLOC_CTX *_mem_save_delta_enum_0;
5433         TALLOC_CTX *_mem_save_delta_enum_1;
5434         if (ndr_flags & NDR_SCALARS) {
5435                 NDR_CHECK(ndr_pull_align(ndr, 4));
5436                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5437                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5438                 if (_ptr_delta_enum) {
5439                         NDR_PULL_ALLOC(ndr, r->delta_enum);
5440                 } else {
5441                         r->delta_enum = NULL;
5442                 }
5443         }
5444         if (ndr_flags & NDR_BUFFERS) {
5445                 if (r->delta_enum) {
5446                         _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5447                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5448                         NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5449                         NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5450                         _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5451                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5452                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5453                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5454                         }
5455                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5456                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5457                         }
5458                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5459                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5460                 }
5461                 if (r->delta_enum) {
5462                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5463                 }
5464         }
5465         return NDR_ERR_SUCCESS;
5466 }
5467
5468 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
5469 {
5470         uint32_t cntr_delta_enum_1;
5471         ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5472         ndr->depth++;
5473         ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5474         ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5475         ndr->depth++;
5476         if (r->delta_enum) {
5477                 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", (int)r->num_deltas);
5478                 ndr->depth++;
5479                 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5480                         char *idx_1=NULL;
5481                         if (asprintf(&idx_1, "[%d]", cntr_delta_enum_1) != -1) {
5482                                 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5483                                 free(idx_1);
5484                         }
5485                 }
5486                 ndr->depth--;
5487         }
5488         ndr->depth--;
5489         ndr->depth--;
5490 }
5491
5492 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)
5493 {
5494         {
5495                 uint32_t _flags_save_STRUCT = ndr->flags;
5496                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5497                 if (ndr_flags & NDR_SCALARS) {
5498                         NDR_CHECK(ndr_push_align(ndr, 4));
5499                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5500                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5501                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5502                 }
5503                 if (ndr_flags & NDR_BUFFERS) {
5504                 }
5505                 ndr->flags = _flags_save_STRUCT;
5506         }
5507         return NDR_ERR_SUCCESS;
5508 }
5509
5510 static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
5511 {
5512         {
5513                 uint32_t _flags_save_STRUCT = ndr->flags;
5514                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5515                 if (ndr_flags & NDR_SCALARS) {
5516                         NDR_CHECK(ndr_pull_align(ndr, 4));
5517                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5518                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5519                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5520                 }
5521                 if (ndr_flags & NDR_BUFFERS) {
5522                 }
5523                 ndr->flags = _flags_save_STRUCT;
5524         }
5525         return NDR_ERR_SUCCESS;
5526 }
5527
5528 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
5529 {
5530         ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5531         {
5532                 uint32_t _flags_save_STRUCT = ndr->flags;
5533                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5534                 ndr->depth++;
5535                 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5536                 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5537                 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5538                 ndr->depth--;
5539                 ndr->flags = _flags_save_STRUCT;
5540         }
5541 }
5542
5543 static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
5544 {
5545         if (ndr_flags & NDR_SCALARS) {
5546                 NDR_CHECK(ndr_push_align(ndr, 4));
5547                 {
5548                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5549                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5550                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5551                         ndr->flags = _flags_save_DATA_BLOB;
5552                 }
5553         }
5554         if (ndr_flags & NDR_BUFFERS) {
5555         }
5556         return NDR_ERR_SUCCESS;
5557 }
5558
5559 static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
5560 {
5561         if (ndr_flags & NDR_SCALARS) {
5562                 NDR_CHECK(ndr_pull_align(ndr, 4));
5563                 {
5564                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5565                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5566                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5567                         ndr->flags = _flags_save_DATA_BLOB;
5568                 }
5569         }
5570         if (ndr_flags & NDR_BUFFERS) {
5571         }
5572         return NDR_ERR_SUCCESS;
5573 }
5574
5575 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
5576 {
5577         ndr_print_struct(ndr, name, "netr_AccountBuffer");
5578         ndr->depth++;
5579         ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5580         ndr->depth--;
5581 }
5582
5583 static enum ndr_err_code ndr_push_netr_InfoFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5584 {
5585         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5586         return NDR_ERR_SUCCESS;
5587 }
5588
5589 static enum ndr_err_code ndr_pull_netr_InfoFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5590 {
5591         uint32_t v;
5592         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5593         *r = v;
5594         return NDR_ERR_SUCCESS;
5595 }
5596
5597 _PUBLIC_ void ndr_print_netr_InfoFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5598 {
5599         ndr_print_uint32(ndr, name, r);
5600         ndr->depth++;
5601         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_NEEDED", NETLOGON_CTRL_REPL_NEEDED, r);
5602         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_IN_PROGRESS", NETLOGON_CTRL_REPL_IN_PROGRESS, r);
5603         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_FULL_SYNC", NETLOGON_CTRL_REPL_FULL_SYNC, r);
5604         ndr->depth--;
5605 }
5606
5607 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)
5608 {
5609         if (ndr_flags & NDR_SCALARS) {
5610                 NDR_CHECK(ndr_push_align(ndr, 4));
5611                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5612                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5613         }
5614         if (ndr_flags & NDR_BUFFERS) {
5615         }
5616         return NDR_ERR_SUCCESS;
5617 }
5618
5619 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
5620 {
5621         if (ndr_flags & NDR_SCALARS) {
5622                 NDR_CHECK(ndr_pull_align(ndr, 4));
5623                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5624                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5625         }
5626         if (ndr_flags & NDR_BUFFERS) {
5627         }
5628         return NDR_ERR_SUCCESS;
5629 }
5630
5631 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
5632 {
5633         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5634         ndr->depth++;
5635         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5636         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5637         ndr->depth--;
5638 }
5639
5640 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)
5641 {
5642         if (ndr_flags & NDR_SCALARS) {
5643                 NDR_CHECK(ndr_push_align(ndr, 4));
5644                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5645                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5646                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5647                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status));
5648         }
5649         if (ndr_flags & NDR_BUFFERS) {
5650                 if (r->trusted_dc_name) {
5651                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5652                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5653                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5654                         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));
5655                 }
5656         }
5657         return NDR_ERR_SUCCESS;
5658 }
5659
5660 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
5661 {
5662         uint32_t _ptr_trusted_dc_name;
5663         TALLOC_CTX *_mem_save_trusted_dc_name_0;
5664         if (ndr_flags & NDR_SCALARS) {
5665                 NDR_CHECK(ndr_pull_align(ndr, 4));
5666                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5667                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5668                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5669                 if (_ptr_trusted_dc_name) {
5670                         NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5671                 } else {
5672                         r->trusted_dc_name = NULL;
5673                 }
5674                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status));
5675         }
5676         if (ndr_flags & NDR_BUFFERS) {
5677                 if (r->trusted_dc_name) {
5678                         _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5679                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5680                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5681                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5682                         if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5683                                 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));
5684                         }
5685                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5686                         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));
5687                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5688                 }
5689         }
5690         return NDR_ERR_SUCCESS;
5691 }
5692
5693 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
5694 {
5695         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5696         ndr->depth++;
5697         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5698         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5699         ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5700         ndr->depth++;
5701         if (r->trusted_dc_name) {
5702                 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5703         }
5704         ndr->depth--;
5705         ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status);
5706         ndr->depth--;
5707 }
5708
5709 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)
5710 {
5711         if (ndr_flags & NDR_SCALARS) {
5712                 NDR_CHECK(ndr_push_align(ndr, 4));
5713                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5714                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5715                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5716                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5717                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5718                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5719                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5720         }
5721         if (ndr_flags & NDR_BUFFERS) {
5722         }
5723         return NDR_ERR_SUCCESS;
5724 }
5725
5726 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
5727 {
5728         if (ndr_flags & NDR_SCALARS) {
5729                 NDR_CHECK(ndr_pull_align(ndr, 4));
5730                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5731                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5732                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5733                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5734                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5735                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5736                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5737         }
5738         if (ndr_flags & NDR_BUFFERS) {
5739         }
5740         return NDR_ERR_SUCCESS;
5741 }
5742
5743 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
5744 {
5745         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
5746         ndr->depth++;
5747         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5748         ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5749         ndr_print_uint32(ndr, "unknown1", r->unknown1);
5750         ndr_print_uint32(ndr, "unknown2", r->unknown2);
5751         ndr_print_uint32(ndr, "unknown3", r->unknown3);
5752         ndr_print_uint32(ndr, "unknown4", r->unknown4);
5753         ndr_print_uint32(ndr, "unknown5", r->unknown5);
5754         ndr->depth--;
5755 }
5756
5757 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_4(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_4 *r)
5758 {
5759         if (ndr_flags & NDR_SCALARS) {
5760                 NDR_CHECK(ndr_push_align(ndr, 4));
5761                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5762                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain_name));
5763         }
5764         if (ndr_flags & NDR_BUFFERS) {
5765                 if (r->trusted_dc_name) {
5766                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5767                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5768                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5769                         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));
5770                 }
5771                 if (r->trusted_domain_name) {
5772                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_domain_name, CH_UTF16)));
5773                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5774                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_domain_name, CH_UTF16)));
5775                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->trusted_domain_name, ndr_charset_length(r->trusted_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5776                 }
5777         }
5778         return NDR_ERR_SUCCESS;
5779 }
5780
5781 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_4(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_4 *r)
5782 {
5783         uint32_t _ptr_trusted_dc_name;
5784         TALLOC_CTX *_mem_save_trusted_dc_name_0;
5785         uint32_t _ptr_trusted_domain_name;
5786         TALLOC_CTX *_mem_save_trusted_domain_name_0;
5787         if (ndr_flags & NDR_SCALARS) {
5788                 NDR_CHECK(ndr_pull_align(ndr, 4));
5789                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5790                 if (_ptr_trusted_dc_name) {
5791                         NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5792                 } else {
5793                         r->trusted_dc_name = NULL;
5794                 }
5795                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
5796                 if (_ptr_trusted_domain_name) {
5797                         NDR_PULL_ALLOC(ndr, r->trusted_domain_name);
5798                 } else {
5799                         r->trusted_domain_name = NULL;
5800                 }
5801         }
5802         if (ndr_flags & NDR_BUFFERS) {
5803                 if (r->trusted_dc_name) {
5804                         _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5805                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5806                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5807                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5808                         if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5809                                 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));
5810                         }
5811                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5812                         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));
5813                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5814                 }
5815                 if (r->trusted_domain_name) {
5816                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5817                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain_name, 0);
5818                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_domain_name));
5819                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_domain_name));
5820                         if (ndr_get_array_length(ndr, &r->trusted_domain_name) > ndr_get_array_size(ndr, &r->trusted_domain_name)) {
5821                                 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_domain_name), ndr_get_array_length(ndr, &r->trusted_domain_name));
5822                         }
5823                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_domain_name), sizeof(uint16_t)));
5824                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_domain_name, ndr_get_array_length(ndr, &r->trusted_domain_name), sizeof(uint16_t), CH_UTF16));
5825                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
5826                 }
5827         }
5828         return NDR_ERR_SUCCESS;
5829 }
5830
5831 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_4(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_4 *r)
5832 {
5833         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_4");
5834         ndr->depth++;
5835         ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5836         ndr->depth++;
5837         if (r->trusted_dc_name) {
5838                 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5839         }
5840         ndr->depth--;
5841         ndr_print_ptr(ndr, "trusted_domain_name", r->trusted_domain_name);
5842         ndr->depth++;
5843         if (r->trusted_domain_name) {
5844                 ndr_print_string(ndr, "trusted_domain_name", r->trusted_domain_name);
5845         }
5846         ndr->depth--;
5847         ndr->depth--;
5848 }
5849
5850 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)
5851 {
5852         if (ndr_flags & NDR_SCALARS) {
5853                 int level = ndr_push_get_switch_value(ndr, r);
5854                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5855                 switch (level) {
5856                         case 1: {
5857                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5858                         break; }
5859
5860                         case 2: {
5861                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5862                         break; }
5863
5864                         case 3: {
5865                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5866                         break; }
5867
5868                         case 4: {
5869                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
5870                         break; }
5871
5872                         default:
5873                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5874                 }
5875         }
5876         if (ndr_flags & NDR_BUFFERS) {
5877                 int level = ndr_push_get_switch_value(ndr, r);
5878                 switch (level) {
5879                         case 1:
5880                                 if (r->info1) {
5881                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5882                                 }
5883                         break;
5884
5885                         case 2:
5886                                 if (r->info2) {
5887                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5888                                 }
5889                         break;
5890
5891                         case 3:
5892                                 if (r->info3) {
5893                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5894                                 }
5895                         break;
5896
5897                         case 4:
5898                                 if (r->info4) {
5899                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5900                                 }
5901                         break;
5902
5903                         default:
5904                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5905                 }
5906         }
5907         return NDR_ERR_SUCCESS;
5908 }
5909
5910 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
5911 {
5912         int level;
5913         uint32_t _level;
5914         TALLOC_CTX *_mem_save_info1_0;
5915         TALLOC_CTX *_mem_save_info2_0;
5916         TALLOC_CTX *_mem_save_info3_0;
5917         TALLOC_CTX *_mem_save_info4_0;
5918         level = ndr_pull_get_switch_value(ndr, r);
5919         if (ndr_flags & NDR_SCALARS) {
5920                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5921                 if (_level != level) {
5922                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5923                 }
5924                 switch (level) {
5925                         case 1: {
5926                                 uint32_t _ptr_info1;
5927                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5928                                 if (_ptr_info1) {
5929                                         NDR_PULL_ALLOC(ndr, r->info1);
5930                                 } else {
5931                                         r->info1 = NULL;
5932                                 }
5933                         break; }
5934
5935                         case 2: {
5936                                 uint32_t _ptr_info2;
5937                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5938                                 if (_ptr_info2) {
5939                                         NDR_PULL_ALLOC(ndr, r->info2);
5940                                 } else {
5941                                         r->info2 = NULL;
5942                                 }
5943                         break; }
5944
5945                         case 3: {
5946                                 uint32_t _ptr_info3;
5947                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5948                                 if (_ptr_info3) {
5949                                         NDR_PULL_ALLOC(ndr, r->info3);
5950                                 } else {
5951                                         r->info3 = NULL;
5952                                 }
5953                         break; }
5954
5955                         case 4: {
5956                                 uint32_t _ptr_info4;
5957                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
5958                                 if (_ptr_info4) {
5959                                         NDR_PULL_ALLOC(ndr, r->info4);
5960                                 } else {
5961                                         r->info4 = NULL;
5962                                 }
5963                         break; }
5964
5965                         default:
5966                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5967                 }
5968         }
5969         if (ndr_flags & NDR_BUFFERS) {
5970                 switch (level) {
5971                         case 1:
5972                                 if (r->info1) {
5973                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5974                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5975                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5976                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5977                                 }
5978                         break;
5979
5980                         case 2:
5981                                 if (r->info2) {
5982                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5983                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5984                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5985                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5986                                 }
5987                         break;
5988
5989                         case 3:
5990                                 if (r->info3) {
5991                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5992                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5993                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5994                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5995                                 }
5996                         break;
5997
5998                         case 4:
5999                                 if (r->info4) {
6000                                         _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6001                                         NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6002                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6003                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6004                                 }
6005                         break;
6006
6007                         default:
6008                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6009                 }
6010         }
6011         return NDR_ERR_SUCCESS;
6012 }
6013
6014 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
6015 {
6016         int level;
6017         level = ndr_print_get_switch_value(ndr, r);
6018         ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
6019         switch (level) {
6020                 case 1:
6021                         ndr_print_ptr(ndr, "info1", r->info1);
6022                         ndr->depth++;
6023                         if (r->info1) {
6024                                 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
6025                         }
6026                         ndr->depth--;
6027                 break;
6028
6029                 case 2:
6030                         ndr_print_ptr(ndr, "info2", r->info2);
6031                         ndr->depth++;
6032                         if (r->info2) {
6033                                 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
6034                         }
6035                         ndr->depth--;
6036                 break;
6037
6038                 case 3:
6039                         ndr_print_ptr(ndr, "info3", r->info3);
6040                         ndr->depth++;
6041                         if (r->info3) {
6042                                 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
6043                         }
6044                         ndr->depth--;
6045                 break;
6046
6047                 case 4:
6048                         ndr_print_ptr(ndr, "info4", r->info4);
6049                         ndr->depth++;
6050                         if (r->info4) {
6051                                 ndr_print_netr_NETLOGON_INFO_4(ndr, "info4", r->info4);
6052                         }
6053                         ndr->depth--;
6054                 break;
6055
6056                 default:
6057                         ndr_print_bad_level(ndr, name, level);
6058         }
6059 }
6060
6061 static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
6062 {
6063         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6064         return NDR_ERR_SUCCESS;
6065 }
6066
6067 static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
6068 {
6069         uint32_t v;
6070         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6071         *r = v;
6072         return NDR_ERR_SUCCESS;
6073 }
6074
6075 _PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
6076 {
6077         const char *val = NULL;
6078
6079         switch (r) {
6080                 case NETLOGON_CONTROL_QUERY: val = "NETLOGON_CONTROL_QUERY"; break;
6081                 case NETLOGON_CONTROL_REPLICATE: val = "NETLOGON_CONTROL_REPLICATE"; break;
6082                 case NETLOGON_CONTROL_SYNCHRONIZE: val = "NETLOGON_CONTROL_SYNCHRONIZE"; break;
6083                 case NETLOGON_CONTROL_PDC_REPLICATE: val = "NETLOGON_CONTROL_PDC_REPLICATE"; break;
6084                 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
6085                 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
6086                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
6087                 case NETLOGON_CONTROL_FIND_USER: val = "NETLOGON_CONTROL_FIND_USER"; break;
6088                 case NETLOGON_CONTROL_CHANGE_PASSWORD: val = "NETLOGON_CONTROL_CHANGE_PASSWORD"; break;
6089                 case NETLOGON_CONTROL_TC_VERIFY: val = "NETLOGON_CONTROL_TC_VERIFY"; break;
6090                 case NETLOGON_CONTROL_FORCE_DNS_REG: val = "NETLOGON_CONTROL_FORCE_DNS_REG"; break;
6091                 case NETLOGON_CONTROL_QUERY_DNS_REG: val = "NETLOGON_CONTROL_QUERY_DNS_REG"; break;
6092                 case NETLOGON_CONTROL_BACKUP_CHANGE_LOG: val = "NETLOGON_CONTROL_BACKUP_CHANGE_LOG"; break;
6093                 case NETLOGON_CONTROL_TRUNCATE_LOG: val = "NETLOGON_CONTROL_TRUNCATE_LOG"; break;
6094                 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
6095                 case NETLOGON_CONTROL_BREAKPOINT: val = "NETLOGON_CONTROL_BREAKPOINT"; break;
6096         }
6097         ndr_print_enum(ndr, name, "ENUM", val, r);
6098 }
6099
6100 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)
6101 {
6102         if (ndr_flags & NDR_SCALARS) {
6103                 int level = ndr_push_get_switch_value(ndr, r);
6104                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6105                 switch (level) {
6106                         case NETLOGON_CONTROL_REDISCOVER: {
6107                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6108                         break; }
6109
6110                         case NETLOGON_CONTROL_TC_QUERY: {
6111                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6112                         break; }
6113
6114                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
6115                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6116                         break; }
6117
6118                         case NETLOGON_CONTROL_CHANGE_PASSWORD: {
6119                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6120                         break; }
6121
6122                         case NETLOGON_CONTROL_TC_VERIFY: {
6123                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6124                         break; }
6125
6126                         case NETLOGON_CONTROL_FIND_USER: {
6127                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
6128                         break; }
6129
6130                         case NETLOGON_CONTROL_SET_DBFLAG: {
6131                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
6132                         break; }
6133
6134                         default:
6135                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6136                 }
6137         }
6138         if (ndr_flags & NDR_BUFFERS) {
6139                 int level = ndr_push_get_switch_value(ndr, r);
6140                 switch (level) {
6141                         case NETLOGON_CONTROL_REDISCOVER:
6142                                 if (r->domain) {
6143                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6144                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6145                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6146                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6147                                 }
6148                         break;
6149
6150                         case NETLOGON_CONTROL_TC_QUERY:
6151                                 if (r->domain) {
6152                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6153                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6154                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6155                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6156                                 }
6157                         break;
6158
6159                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6160                                 if (r->domain) {
6161                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6162                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6163                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6164                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6165                                 }
6166                         break;
6167
6168                         case NETLOGON_CONTROL_CHANGE_PASSWORD:
6169                                 if (r->domain) {
6170                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6171                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6172                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6173                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6174                                 }
6175                         break;
6176
6177                         case NETLOGON_CONTROL_TC_VERIFY:
6178                                 if (r->domain) {
6179                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6180                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6181                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6182                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6183                                 }
6184                         break;
6185
6186                         case NETLOGON_CONTROL_FIND_USER:
6187                                 if (r->user) {
6188                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
6189                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6190                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
6191                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6192                                 }
6193                         break;
6194
6195                         case NETLOGON_CONTROL_SET_DBFLAG:
6196                         break;
6197
6198                         default:
6199                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6200                 }
6201         }
6202         return NDR_ERR_SUCCESS;
6203 }
6204
6205 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
6206 {
6207         int level;
6208         uint32_t _level;
6209         TALLOC_CTX *_mem_save_domain_0;
6210         TALLOC_CTX *_mem_save_user_0;
6211         level = ndr_pull_get_switch_value(ndr, r);
6212         if (ndr_flags & NDR_SCALARS) {
6213                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6214                 if (_level != level) {
6215                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6216                 }
6217                 switch (level) {
6218                         case NETLOGON_CONTROL_REDISCOVER: {
6219                                 uint32_t _ptr_domain;
6220                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6221                                 if (_ptr_domain) {
6222                                         NDR_PULL_ALLOC(ndr, r->domain);
6223                                 } else {
6224                                         r->domain = NULL;
6225                                 }
6226                         break; }
6227
6228                         case NETLOGON_CONTROL_TC_QUERY: {
6229                                 uint32_t _ptr_domain;
6230                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6231                                 if (_ptr_domain) {
6232                                         NDR_PULL_ALLOC(ndr, r->domain);
6233                                 } else {
6234                                         r->domain = NULL;
6235                                 }
6236                         break; }
6237
6238                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
6239                                 uint32_t _ptr_domain;
6240                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6241                                 if (_ptr_domain) {
6242                                         NDR_PULL_ALLOC(ndr, r->domain);
6243                                 } else {
6244                                         r->domain = NULL;
6245                                 }
6246                         break; }
6247
6248                         case NETLOGON_CONTROL_CHANGE_PASSWORD: {
6249                                 uint32_t _ptr_domain;
6250                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6251                                 if (_ptr_domain) {
6252                                         NDR_PULL_ALLOC(ndr, r->domain);
6253                                 } else {
6254                                         r->domain = NULL;
6255                                 }
6256                         break; }
6257
6258                         case NETLOGON_CONTROL_TC_VERIFY: {
6259                                 uint32_t _ptr_domain;
6260                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6261                                 if (_ptr_domain) {
6262                                         NDR_PULL_ALLOC(ndr, r->domain);
6263                                 } else {
6264                                         r->domain = NULL;
6265                                 }
6266                         break; }
6267
6268                         case NETLOGON_CONTROL_FIND_USER: {
6269                                 uint32_t _ptr_user;
6270                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
6271                                 if (_ptr_user) {
6272                                         NDR_PULL_ALLOC(ndr, r->user);
6273                                 } else {
6274                                         r->user = NULL;
6275                                 }
6276                         break; }
6277
6278                         case NETLOGON_CONTROL_SET_DBFLAG: {
6279                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
6280                         break; }
6281
6282                         default:
6283                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6284                 }
6285         }
6286         if (ndr_flags & NDR_BUFFERS) {
6287                 switch (level) {
6288                         case NETLOGON_CONTROL_REDISCOVER:
6289                                 if (r->domain) {
6290                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6291                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6292                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6293                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6294                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6295                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
6296                                         }
6297                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6298                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6299                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6300                                 }
6301                         break;
6302
6303                         case NETLOGON_CONTROL_TC_QUERY:
6304                                 if (r->domain) {
6305                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6306                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6307                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6308                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6309                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6310                                                 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));
6311                                         }
6312                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6313                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6314                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6315                                 }
6316                         break;
6317
6318                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6319                                 if (r->domain) {
6320                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6321                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6322                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6323                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6324                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6325                                                 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));
6326                                         }
6327                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6328                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6329                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6330                                 }
6331                         break;
6332
6333                         case NETLOGON_CONTROL_CHANGE_PASSWORD:
6334                                 if (r->domain) {
6335                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6336                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6337                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6338                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6339                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6340                                                 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));
6341                                         }
6342                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6343                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6344                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6345                                 }
6346                         break;
6347
6348                         case NETLOGON_CONTROL_TC_VERIFY:
6349                                 if (r->domain) {
6350                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6351                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6352                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6353                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6354                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6355                                                 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));
6356                                         }
6357                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6358                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6359                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6360                                 }
6361                         break;
6362
6363                         case NETLOGON_CONTROL_FIND_USER:
6364                                 if (r->user) {
6365                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
6366                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
6367                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
6368                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
6369                                         if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
6370                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user));
6371                                         }
6372                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
6373                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
6374                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
6375                                 }
6376                         break;
6377
6378                         case NETLOGON_CONTROL_SET_DBFLAG:
6379                         break;
6380
6381                         default:
6382                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6383                 }
6384         }
6385         return NDR_ERR_SUCCESS;
6386 }
6387
6388 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
6389 {
6390         int level;
6391         level = ndr_print_get_switch_value(ndr, r);
6392         ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
6393         switch (level) {
6394                 case NETLOGON_CONTROL_REDISCOVER:
6395                         ndr_print_ptr(ndr, "domain", r->domain);
6396                         ndr->depth++;
6397                         if (r->domain) {
6398                                 ndr_print_string(ndr, "domain", r->domain);
6399                         }
6400                         ndr->depth--;
6401                 break;
6402
6403                 case NETLOGON_CONTROL_TC_QUERY:
6404                         ndr_print_ptr(ndr, "domain", r->domain);
6405                         ndr->depth++;
6406                         if (r->domain) {
6407                                 ndr_print_string(ndr, "domain", r->domain);
6408                         }
6409                         ndr->depth--;
6410                 break;
6411
6412                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6413                         ndr_print_ptr(ndr, "domain", r->domain);
6414                         ndr->depth++;
6415                         if (r->domain) {
6416                                 ndr_print_string(ndr, "domain", r->domain);
6417                         }
6418                         ndr->depth--;
6419                 break;
6420
6421                 case NETLOGON_CONTROL_CHANGE_PASSWORD:
6422                         ndr_print_ptr(ndr, "domain", r->domain);
6423                         ndr->depth++;
6424                         if (r->domain) {
6425                                 ndr_print_string(ndr, "domain", r->domain);
6426                         }
6427                         ndr->depth--;
6428                 break;
6429
6430                 case NETLOGON_CONTROL_TC_VERIFY:
6431                         ndr_print_ptr(ndr, "domain", r->domain);
6432                         ndr->depth++;
6433                         if (r->domain) {
6434                                 ndr_print_string(ndr, "domain", r->domain);
6435                         }
6436                         ndr->depth--;
6437                 break;
6438
6439                 case NETLOGON_CONTROL_FIND_USER:
6440                         ndr_print_ptr(ndr, "user", r->user);
6441                         ndr->depth++;
6442                         if (r->user) {
6443                                 ndr_print_string(ndr, "user", r->user);
6444                         }
6445                         ndr->depth--;
6446                 break;
6447
6448                 case NETLOGON_CONTROL_SET_DBFLAG:
6449                         ndr_print_uint32(ndr, "debug_level", r->debug_level);
6450                 break;
6451
6452                 default:
6453                         ndr_print_bad_level(ndr, name, level);
6454         }
6455 }
6456
6457 static enum ndr_err_code ndr_push_netr_NegotiateFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6458 {
6459         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6460         return NDR_ERR_SUCCESS;
6461 }
6462
6463 static enum ndr_err_code ndr_pull_netr_NegotiateFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6464 {
6465         uint32_t v;
6466         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6467         *r = v;
6468         return NDR_ERR_SUCCESS;
6469 }
6470
6471 _PUBLIC_ void ndr_print_netr_NegotiateFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6472 {
6473         ndr_print_uint32(ndr, name, r);
6474         ndr->depth++;
6475         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT, r);
6476         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL, r);
6477         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR, r);
6478         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT, r);
6479         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC, r);
6480         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL, r);
6481         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS, r);
6482         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO, r);
6483         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL, r);
6484         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC, r);
6485         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH, r);
6486         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC, r);
6487         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL, r);
6488         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL, r);
6489         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_STRONG_KEYS", NETLOGON_NEG_STRONG_KEYS, r);
6490         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS, r);
6491         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS, r);
6492         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2, r);
6493         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO, r);
6494         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS, r);
6495         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION, r);
6496         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH, r);
6497         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES_SHA2", NETLOGON_NEG_SUPPORTS_AES_SHA2, r);
6498         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS, r);
6499         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC", NETLOGON_NEG_AUTHENTICATED_RPC, r);
6500         ndr->depth--;
6501 }
6502
6503 static enum ndr_err_code ndr_push_SyncStateEnum(struct ndr_push *ndr, int ndr_flags, enum SyncStateEnum r)
6504 {
6505         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
6506         return NDR_ERR_SUCCESS;
6507 }
6508
6509 static enum ndr_err_code ndr_pull_SyncStateEnum(struct ndr_pull *ndr, int ndr_flags, enum SyncStateEnum *r)
6510 {
6511         uint16_t v;
6512         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
6513         *r = v;
6514         return NDR_ERR_SUCCESS;
6515 }
6516
6517 _PUBLIC_ void ndr_print_SyncStateEnum(struct ndr_print *ndr, const char *name, enum SyncStateEnum r)
6518 {
6519         const char *val = NULL;
6520
6521         switch (r) {
6522                 case SYNCSTATE_NORMAL_STATE: val = "SYNCSTATE_NORMAL_STATE"; break;
6523                 case SYNCSTATE_DOMAIN_STATE: val = "SYNCSTATE_DOMAIN_STATE"; break;
6524                 case SYNCSTATE_GROUP_STATE: val = "SYNCSTATE_GROUP_STATE"; break;
6525                 case SYNCSTATE_UAS_BUILT_IN_GROUP_STATE: val = "SYNCSTATE_UAS_BUILT_IN_GROUP_STATE"; break;
6526                 case SYNCSTATE_USER_STATE: val = "SYNCSTATE_USER_STATE"; break;
6527                 case SYNCSTATE_GROUP_MEMBER_STATE: val = "SYNCSTATE_GROUP_MEMBER_STATE"; break;
6528                 case SYNCSTATE_ALIAS_STATE: val = "SYNCSTATE_ALIAS_STATE"; break;
6529                 case SYNCSTATE_ALIAS_MEMBER_STATE: val = "SYNCSTATE_ALIAS_MEMBER_STATE"; break;
6530                 case SYNCSTATE_SAM_DONE_STATE: val = "SYNCSTATE_SAM_DONE_STATE"; break;
6531         }
6532         ndr_print_enum(ndr, name, "ENUM", val, r);
6533 }
6534
6535 static enum ndr_err_code ndr_push_netr_ChangeLogFlags(struct ndr_push *ndr, int ndr_flags, uint16_t r)
6536 {
6537         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
6538         return NDR_ERR_SUCCESS;
6539 }
6540
6541 static enum ndr_err_code ndr_pull_netr_ChangeLogFlags(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
6542 {
6543         uint16_t v;
6544         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
6545         *r = v;
6546         return NDR_ERR_SUCCESS;
6547 }
6548
6549 _PUBLIC_ void ndr_print_netr_ChangeLogFlags(struct ndr_print *ndr, const char *name, uint16_t r)
6550 {
6551         ndr_print_uint16(ndr, name, r);
6552         ndr->depth++;
6553         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED, r);
6554         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD, r);
6555         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED, r);
6556         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED, r);
6557         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ, r);
6558         ndr->depth--;
6559 }
6560
6561 static enum ndr_err_code ndr_push_netr_ChangeLogObject(struct ndr_push *ndr, int ndr_flags, const union netr_ChangeLogObject *r)
6562 {
6563         if (ndr_flags & NDR_SCALARS) {
6564                 int level = ndr_push_get_switch_value(ndr, r);
6565                 switch (level) {
6566                         case NETR_CHANGELOG_SID_INCLUDED: {
6567                                 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
6568                         break; }
6569
6570                         case NETR_CHANGELOG_NAME_INCLUDED: {
6571                                 {
6572                                         uint32_t _flags_save_string = ndr->flags;
6573                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6574                                         NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->object_name));
6575                                         ndr->flags = _flags_save_string;
6576                                 }
6577                         break; }
6578
6579                         default: {
6580                         break; }
6581
6582                 }
6583         }
6584         if (ndr_flags & NDR_BUFFERS) {
6585                 int level = ndr_push_get_switch_value(ndr, r);
6586                 switch (level) {
6587                         case NETR_CHANGELOG_SID_INCLUDED:
6588                         break;
6589
6590                         case NETR_CHANGELOG_NAME_INCLUDED:
6591                         break;
6592
6593                         default:
6594                         break;
6595
6596                 }
6597         }
6598         return NDR_ERR_SUCCESS;
6599 }
6600
6601 static enum ndr_err_code ndr_pull_netr_ChangeLogObject(struct ndr_pull *ndr, int ndr_flags, union netr_ChangeLogObject *r)
6602 {
6603         int level;
6604         level = ndr_pull_get_switch_value(ndr, r);
6605         if (ndr_flags & NDR_SCALARS) {
6606                 switch (level) {
6607                         case NETR_CHANGELOG_SID_INCLUDED: {
6608                                 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
6609                         break; }
6610
6611                         case NETR_CHANGELOG_NAME_INCLUDED: {
6612                                 {
6613                                         uint32_t _flags_save_string = ndr->flags;
6614                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6615                                         NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->object_name));
6616                                         ndr->flags = _flags_save_string;
6617                                 }
6618                         break; }
6619
6620                         default: {
6621                         break; }
6622
6623                 }
6624         }
6625         if (ndr_flags & NDR_BUFFERS) {
6626                 switch (level) {
6627                         case NETR_CHANGELOG_SID_INCLUDED:
6628                         break;
6629
6630                         case NETR_CHANGELOG_NAME_INCLUDED:
6631                         break;
6632
6633                         default:
6634                         break;
6635
6636                 }
6637         }
6638         return NDR_ERR_SUCCESS;
6639 }
6640
6641 _PUBLIC_ void ndr_print_netr_ChangeLogObject(struct ndr_print *ndr, const char *name, const union netr_ChangeLogObject *r)
6642 {
6643         int level;
6644         level = ndr_print_get_switch_value(ndr, r);
6645         ndr_print_union(ndr, name, level, "netr_ChangeLogObject");
6646         switch (level) {
6647                 case NETR_CHANGELOG_SID_INCLUDED:
6648                         ndr_print_dom_sid(ndr, "object_sid", &r->object_sid);
6649                 break;
6650
6651                 case NETR_CHANGELOG_NAME_INCLUDED:
6652                         ndr_print_string(ndr, "object_name", r->object_name);
6653                 break;
6654
6655                 default:
6656                 break;
6657
6658         }
6659 }
6660
6661 _PUBLIC_ enum ndr_err_code ndr_push_netr_ChangeLogEntry(struct ndr_push *ndr, int ndr_flags, const struct netr_ChangeLogEntry *r)
6662 {
6663         if (ndr_flags & NDR_SCALARS) {
6664                 NDR_CHECK(ndr_push_align(ndr, 4));
6665                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number1));
6666                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number2));
6667                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_rid));
6668                 NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr, NDR_SCALARS, r->flags));
6669                 NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, r->db_index));
6670                 NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, r->delta_type));
6671                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
6672                 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
6673         }
6674         if (ndr_flags & NDR_BUFFERS) {
6675                 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
6676         }
6677         return NDR_ERR_SUCCESS;
6678 }
6679
6680 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ChangeLogEntry(struct ndr_pull *ndr, int ndr_flags, struct netr_ChangeLogEntry *r)
6681 {
6682         if (ndr_flags & NDR_SCALARS) {
6683                 NDR_CHECK(ndr_pull_align(ndr, 4));
6684                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number1));
6685                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number2));
6686                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_rid));
6687                 NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr, NDR_SCALARS, &r->flags));
6688                 NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, &r->db_index));
6689                 NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, &r->delta_type));
6690                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
6691                 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
6692         }
6693         if (ndr_flags & NDR_BUFFERS) {
6694                 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
6695         }
6696         return NDR_ERR_SUCCESS;
6697 }
6698
6699 _PUBLIC_ void ndr_print_netr_ChangeLogEntry(struct ndr_print *ndr, const char *name, const struct netr_ChangeLogEntry *r)
6700 {
6701         ndr_print_struct(ndr, name, "netr_ChangeLogEntry");
6702         ndr->depth++;
6703         ndr_print_uint32(ndr, "serial_number1", r->serial_number1);
6704         ndr_print_uint32(ndr, "serial_number2", r->serial_number2);
6705         ndr_print_uint32(ndr, "object_rid", r->object_rid);
6706         ndr_print_netr_ChangeLogFlags(ndr, "flags", r->flags);
6707         ndr_print_netr_SamDatabaseID8Bit(ndr, "db_index", r->db_index);
6708         ndr_print_netr_DeltaEnum8Bit(ndr, "delta_type", r->delta_type);
6709         ndr_print_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED));
6710         ndr_print_netr_ChangeLogObject(ndr, "object", &r->object);
6711         ndr->depth--;
6712 }
6713
6714 _PUBLIC_ size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry *r, struct smb_iconv_convenience *ic, int flags)
6715 {
6716         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_netr_ChangeLogEntry, ic);
6717 }
6718
6719 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
6720 {
6721         if (ndr_flags & NDR_SCALARS) {
6722                 NDR_CHECK(ndr_push_align(ndr, 4));
6723                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6724                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6725         }
6726         if (ndr_flags & NDR_BUFFERS) {
6727                 if (r->data) {
6728                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6729                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
6730                 }
6731         }
6732         return NDR_ERR_SUCCESS;
6733 }
6734
6735 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
6736 {
6737         uint32_t _ptr_data;
6738         TALLOC_CTX *_mem_save_data_0;
6739         if (ndr_flags & NDR_SCALARS) {
6740                 NDR_CHECK(ndr_pull_align(ndr, 4));
6741                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
6742                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6743                 if (_ptr_data) {
6744                         NDR_PULL_ALLOC(ndr, r->data);
6745                 } else {
6746                         r->data = NULL;
6747                 }
6748         }
6749         if (ndr_flags & NDR_BUFFERS) {
6750                 if (r->data) {
6751                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6752                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6753                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6754                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6755                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
6756                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6757                 }
6758                 if (r->data) {
6759                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
6760                 }
6761         }
6762         return NDR_ERR_SUCCESS;
6763 }
6764
6765 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
6766 {
6767         ndr_print_struct(ndr, name, "netr_Blob");
6768         ndr->depth++;
6769         ndr_print_uint32(ndr, "length", r->length);
6770         ndr_print_ptr(ndr, "data", r->data);
6771         ndr->depth++;
6772         if (r->data) {
6773                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6774         }
6775         ndr->depth--;
6776         ndr->depth--;
6777 }
6778
6779 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6780 {
6781         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6782         return NDR_ERR_SUCCESS;
6783 }
6784
6785 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6786 {
6787         uint32_t v;
6788         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6789         *r = v;
6790         return NDR_ERR_SUCCESS;
6791 }
6792
6793 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6794 {
6795         ndr_print_uint32(ndr, name, r);
6796         ndr->depth++;
6797         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6798         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6799         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6800         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6801         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6802         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6803         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6804         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6805         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6806         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6807         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6808         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6809         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6810         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6811         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6812         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
6813         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
6814         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6815         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6816         ndr->depth--;
6817 }
6818
6819 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6820 {
6821         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6822         return NDR_ERR_SUCCESS;
6823 }
6824
6825 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6826 {
6827         uint32_t v;
6828         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6829         *r = v;
6830         return NDR_ERR_SUCCESS;
6831 }
6832
6833 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6834 {
6835         const char *val = NULL;
6836
6837         switch (r) {
6838                 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6839                 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6840         }
6841         ndr_print_enum(ndr, name, "ENUM", val, r);
6842 }
6843
6844 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6845 {
6846         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6847         return NDR_ERR_SUCCESS;
6848 }
6849
6850 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6851 {
6852         uint32_t v;
6853         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6854         *r = v;
6855         return NDR_ERR_SUCCESS;
6856 }
6857
6858 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6859 {
6860         ndr_print_uint32(ndr, name, r);
6861         ndr->depth++;
6862         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6863         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6864         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6865         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6866         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6867         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6868         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6869         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6870         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6871         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6872         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
6873         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
6874         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6875         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6876         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6877         ndr->depth--;
6878 }
6879
6880 _PUBLIC_ enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6881 {
6882         if (ndr_flags & NDR_SCALARS) {
6883                 NDR_CHECK(ndr_push_align(ndr, 4));
6884                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6885                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6886                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6887                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6888                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6889                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6890                 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6891                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6892                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6893         }
6894         if (ndr_flags & NDR_BUFFERS) {
6895                 if (r->dc_unc) {
6896                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6897                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6898                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6899                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6900                 }
6901                 if (r->dc_address) {
6902                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6903                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6904                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6905                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6906                 }
6907                 if (r->domain_name) {
6908                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6909                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6910                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6911                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6912                 }
6913                 if (r->forest_name) {
6914                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6915                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6916                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6917                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6918                 }
6919                 if (r->dc_site_name) {
6920                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6921                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6922                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6923                         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));
6924                 }
6925                 if (r->client_site_name) {
6926                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6927                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6928                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6929                         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));
6930                 }
6931         }
6932         return NDR_ERR_SUCCESS;
6933 }
6934
6935 _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6936 {
6937         uint32_t _ptr_dc_unc;
6938         TALLOC_CTX *_mem_save_dc_unc_0;
6939         uint32_t _ptr_dc_address;
6940         TALLOC_CTX *_mem_save_dc_address_0;
6941         uint32_t _ptr_domain_name;
6942         TALLOC_CTX *_mem_save_domain_name_0;
6943         uint32_t _ptr_forest_name;
6944         TALLOC_CTX *_mem_save_forest_name_0;
6945         uint32_t _ptr_dc_site_name;
6946         TALLOC_CTX *_mem_save_dc_site_name_0;
6947         uint32_t _ptr_client_site_name;
6948         TALLOC_CTX *_mem_save_client_site_name_0;
6949         if (ndr_flags & NDR_SCALARS) {
6950                 NDR_CHECK(ndr_pull_align(ndr, 4));
6951                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6952                 if (_ptr_dc_unc) {
6953                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6954                 } else {
6955                         r->dc_unc = NULL;
6956                 }
6957                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6958                 if (_ptr_dc_address) {
6959                         NDR_PULL_ALLOC(ndr, r->dc_address);
6960                 } else {
6961                         r->dc_address = NULL;
6962                 }
6963                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6964                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6965                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6966                 if (_ptr_domain_name) {
6967                         NDR_PULL_ALLOC(ndr, r->domain_name);
6968                 } else {
6969                         r->domain_name = NULL;
6970                 }
6971                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6972                 if (_ptr_forest_name) {
6973                         NDR_PULL_ALLOC(ndr, r->forest_name);
6974                 } else {
6975                         r->forest_name = NULL;
6976                 }
6977                 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6978                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6979                 if (_ptr_dc_site_name) {
6980                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6981                 } else {
6982                         r->dc_site_name = NULL;
6983                 }
6984                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6985                 if (_ptr_client_site_name) {
6986                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6987                 } else {
6988                         r->client_site_name = NULL;
6989                 }
6990         }
6991         if (ndr_flags & NDR_BUFFERS) {
6992                 if (r->dc_unc) {
6993                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6994                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6995                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6996                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6997                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6998                                 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));
6999                         }
7000                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
7001                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
7002                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
7003                 }
7004                 if (r->dc_address) {
7005                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
7006                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
7007                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
7008                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
7009                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
7010                                 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));
7011                         }
7012                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
7013                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
7014                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
7015                 }
7016                 if (r->domain_name) {
7017                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7018                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
7019                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
7020                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
7021                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
7022                                 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));
7023                         }
7024                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
7025                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
7026                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
7027                 }
7028                 if (r->forest_name) {
7029                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7030                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
7031                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
7032                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
7033                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
7034                                 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));
7035                         }
7036                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
7037                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
7038                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
7039                 }
7040                 if (r->dc_site_name) {
7041                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7042                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
7043                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
7044                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
7045                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
7046                                 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));
7047                         }
7048                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
7049                         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));
7050                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
7051                 }
7052                 if (r->client_site_name) {
7053                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7054                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
7055                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
7056                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
7057                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
7058                                 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));
7059                         }
7060                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
7061                         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));
7062                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
7063                 }
7064         }
7065         return NDR_ERR_SUCCESS;
7066 }
7067
7068 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
7069 {
7070         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
7071         ndr->depth++;
7072         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
7073         ndr->depth++;
7074         if (r->dc_unc) {
7075                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
7076         }
7077         ndr->depth--;
7078         ndr_print_ptr(ndr, "dc_address", r->dc_address);
7079         ndr->depth++;
7080         if (r->dc_address) {
7081                 ndr_print_string(ndr, "dc_address", r->dc_address);
7082         }
7083         ndr->depth--;
7084         ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
7085         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
7086         ndr_print_ptr(ndr, "domain_name", r->domain_name);
7087         ndr->depth++;
7088         if (r->domain_name) {
7089                 ndr_print_string(ndr, "domain_name", r->domain_name);
7090         }
7091         ndr->depth--;
7092         ndr_print_ptr(ndr, "forest_name", r->forest_name);
7093         ndr->depth++;
7094         if (r->forest_name) {
7095                 ndr_print_string(ndr, "forest_name", r->forest_name);
7096         }
7097         ndr->depth--;
7098         ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
7099         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
7100         ndr->depth++;
7101         if (r->dc_site_name) {
7102                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
7103         }
7104         ndr->depth--;
7105         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
7106         ndr->depth++;
7107         if (r->client_site_name) {
7108                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
7109         }
7110         ndr->depth--;
7111         ndr->depth--;
7112 }
7113
7114 static enum ndr_err_code ndr_push_netr_Capabilities(struct ndr_push *ndr, int ndr_flags, const union netr_Capabilities *r)
7115 {
7116         if (ndr_flags & NDR_SCALARS) {
7117                 int level = ndr_push_get_switch_value(ndr, r);
7118                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7119                 switch (level) {
7120                         case 1: {
7121                                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, r->server_capabilities));
7122                         break; }
7123
7124                         default:
7125                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7126                 }
7127         }
7128         if (ndr_flags & NDR_BUFFERS) {
7129                 int level = ndr_push_get_switch_value(ndr, r);
7130                 switch (level) {
7131                         case 1:
7132                         break;
7133
7134                         default:
7135                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7136                 }
7137         }
7138         return NDR_ERR_SUCCESS;
7139 }
7140
7141 static enum ndr_err_code ndr_pull_netr_Capabilities(struct ndr_pull *ndr, int ndr_flags, union netr_Capabilities *r)
7142 {
7143         int level;
7144         uint32_t _level;
7145         level = ndr_pull_get_switch_value(ndr, r);
7146         if (ndr_flags & NDR_SCALARS) {
7147                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7148                 if (_level != level) {
7149                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7150                 }
7151                 switch (level) {
7152                         case 1: {
7153                                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, &r->server_capabilities));
7154                         break; }
7155
7156                         default:
7157                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7158                 }
7159         }
7160         if (ndr_flags & NDR_BUFFERS) {
7161                 switch (level) {
7162                         case 1:
7163                         break;
7164
7165                         default:
7166                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7167                 }
7168         }
7169         return NDR_ERR_SUCCESS;
7170 }
7171
7172 _PUBLIC_ void ndr_print_netr_Capabilities(struct ndr_print *ndr, const char *name, const union netr_Capabilities *r)
7173 {
7174         int level;
7175         level = ndr_print_get_switch_value(ndr, r);
7176         ndr_print_union(ndr, name, level, "netr_Capabilities");
7177         switch (level) {
7178                 case 1:
7179                         ndr_print_netr_NegotiateFlags(ndr, "server_capabilities", r->server_capabilities);
7180                 break;
7181
7182                 default:
7183                         ndr_print_bad_level(ndr, name, level);
7184         }
7185 }
7186
7187 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7188 {
7189         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7190         return NDR_ERR_SUCCESS;
7191 }
7192
7193 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7194 {
7195         uint32_t v;
7196         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7197         *r = v;
7198         return NDR_ERR_SUCCESS;
7199 }
7200
7201 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7202 {
7203         ndr_print_uint32(ndr, name, r);
7204         ndr->depth++;
7205         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7206         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7207         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7208         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7209         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7210         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7211         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_MIT_KRB5", NETR_TRUST_FLAG_MIT_KRB5, r);
7212         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_AES", NETR_TRUST_FLAG_AES, r);
7213         ndr->depth--;
7214 }
7215
7216 static enum ndr_err_code ndr_push_netr_WorkstationFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7217 {
7218         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7219         return NDR_ERR_SUCCESS;
7220 }
7221
7222 static enum ndr_err_code ndr_pull_netr_WorkstationFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7223 {
7224         uint32_t v;
7225         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7226         *r = v;
7227         return NDR_ERR_SUCCESS;
7228 }
7229
7230 _PUBLIC_ void ndr_print_netr_WorkstationFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7231 {
7232         ndr_print_uint32(ndr, name, r);
7233         ndr->depth++;
7234         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS, r);
7235         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_SPN_UPDATE", NETR_WS_FLAG_HANDLES_SPN_UPDATE, r);
7236         ndr->depth--;
7237 }
7238
7239 static enum ndr_err_code ndr_push_netr_SuiteMask(struct ndr_push *ndr, int ndr_flags, uint16_t r)
7240 {
7241         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
7242         return NDR_ERR_SUCCESS;
7243 }
7244
7245 static enum ndr_err_code ndr_pull_netr_SuiteMask(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
7246 {
7247         uint16_t v;
7248         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
7249         *r = v;
7250         return NDR_ERR_SUCCESS;
7251 }
7252
7253 _PUBLIC_ void ndr_print_netr_SuiteMask(struct ndr_print *ndr, const char *name, uint16_t r)
7254 {
7255         ndr_print_uint16(ndr, name, r);
7256         ndr->depth++;
7257         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_BACKOFFICE", NETR_VER_SUITE_BACKOFFICE, r);
7258         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_BLADE", NETR_VER_SUITE_BLADE, r);
7259         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_COMPUTE_SERVER", NETR_VER_SUITE_COMPUTE_SERVER, r);
7260         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_DATACENTER", NETR_VER_SUITE_DATACENTER, r);
7261         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_ENTERPRISE", NETR_VER_SUITE_ENTERPRISE, r);
7262         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_EMBEDDEDNT", NETR_VER_SUITE_EMBEDDEDNT, r);
7263         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_PERSONAL", NETR_VER_SUITE_PERSONAL, r);
7264         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_SINGLEUSERTS", NETR_VER_SUITE_SINGLEUSERTS, r);
7265         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS", NETR_VER_SUITE_SMALLBUSINESS, r);
7266         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED", NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED, r);
7267         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_STORAGE_SERVER", NETR_VER_SUITE_STORAGE_SERVER, r);
7268         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_TERMINAL", NETR_VER_SUITE_TERMINAL, r);
7269         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_WH_SERVER", NETR_VER_SUITE_WH_SERVER, r);
7270         ndr->depth--;
7271 }
7272
7273 static enum ndr_err_code ndr_push_netr_ProductType(struct ndr_push *ndr, int ndr_flags, uint8_t r)
7274 {
7275         NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
7276         return NDR_ERR_SUCCESS;
7277 }
7278
7279 static enum ndr_err_code ndr_pull_netr_ProductType(struct ndr_pull *ndr, int ndr_flags, uint8_t *r)
7280 {
7281         uint8_t v;
7282         NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
7283         *r = v;
7284         return NDR_ERR_SUCCESS;
7285 }
7286
7287 _PUBLIC_ void ndr_print_netr_ProductType(struct ndr_print *ndr, const char *name, uint8_t r)
7288 {
7289         ndr_print_uint8(ndr, name, r);
7290         ndr->depth++;
7291         ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "NETR_VER_NT_DOMAIN_CONTROLLER", NETR_VER_NT_DOMAIN_CONTROLLER, r);
7292         ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "NETR_VER_NT_SERVER", NETR_VER_NT_SERVER, r);
7293         ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "NETR_VER_NT_WORKSTATION", NETR_VER_NT_WORKSTATION, r);
7294         ndr->depth--;
7295 }
7296
7297 static enum ndr_err_code ndr_push_netr_LsaPolicyInformation(struct ndr_push *ndr, int ndr_flags, const struct netr_LsaPolicyInformation *r)
7298 {
7299         if (ndr_flags & NDR_SCALARS) {
7300                 NDR_CHECK(ndr_push_align(ndr, 4));
7301                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size));
7302                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
7303         }
7304         if (ndr_flags & NDR_BUFFERS) {
7305                 if (r->policy) {
7306                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size));
7307                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->policy, r->policy_size));
7308                 }
7309         }
7310         return NDR_ERR_SUCCESS;
7311 }
7312
7313 static enum ndr_err_code ndr_pull_netr_LsaPolicyInformation(struct ndr_pull *ndr, int ndr_flags, struct netr_LsaPolicyInformation *r)
7314 {
7315         uint32_t _ptr_policy;
7316         TALLOC_CTX *_mem_save_policy_0;
7317         if (ndr_flags & NDR_SCALARS) {
7318                 NDR_CHECK(ndr_pull_align(ndr, 4));
7319                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->policy_size));
7320                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
7321                 if (_ptr_policy) {
7322                         NDR_PULL_ALLOC(ndr, r->policy);
7323                 } else {
7324                         r->policy = NULL;
7325                 }
7326         }
7327         if (ndr_flags & NDR_BUFFERS) {
7328                 if (r->policy) {
7329                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
7330                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
7331                         NDR_CHECK(ndr_pull_array_size(ndr, &r->policy));
7332                         NDR_PULL_ALLOC_N(ndr, r->policy, ndr_get_array_size(ndr, &r->policy));
7333                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->policy, ndr_get_array_size(ndr, &r->policy)));
7334                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
7335                 }
7336                 if (r->policy) {
7337                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->policy, r->policy_size));
7338                 }
7339         }
7340         return NDR_ERR_SUCCESS;
7341 }
7342
7343 _PUBLIC_ void ndr_print_netr_LsaPolicyInformation(struct ndr_print *ndr, const char *name, const struct netr_LsaPolicyInformation *r)
7344 {
7345         ndr_print_struct(ndr, name, "netr_LsaPolicyInformation");
7346         ndr->depth++;
7347         ndr_print_uint32(ndr, "policy_size", r->policy_size);
7348         ndr_print_ptr(ndr, "policy", r->policy);
7349         ndr->depth++;
7350         if (r->policy) {
7351                 ndr_print_array_uint8(ndr, "policy", r->policy, r->policy_size);
7352         }
7353         ndr->depth--;
7354         ndr->depth--;
7355 }
7356
7357 static enum ndr_err_code ndr_push_netr_OsVersionInfoEx(struct ndr_push *ndr, int ndr_flags, const struct netr_OsVersionInfoEx *r)
7358 {
7359         if (ndr_flags & NDR_SCALARS) {
7360                 NDR_CHECK(ndr_push_align(ndr, 4));
7361                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 284));
7362                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->MajorVersion));
7363                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->MinorVersion));
7364                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->BuildNumber));
7365                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->PlatformId));
7366                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->CSDVersion, 128, sizeof(uint16_t), CH_UTF16));
7367                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ServicePackMajor));
7368                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ServicePackMinor));
7369                 NDR_CHECK(ndr_push_netr_SuiteMask(ndr, NDR_SCALARS, r->SuiteMask));
7370                 NDR_CHECK(ndr_push_netr_ProductType(ndr, NDR_SCALARS, r->ProductType));
7371                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Reserved));
7372         }
7373         if (ndr_flags & NDR_BUFFERS) {
7374         }
7375         return NDR_ERR_SUCCESS;
7376 }
7377
7378 static enum ndr_err_code ndr_pull_netr_OsVersionInfoEx(struct ndr_pull *ndr, int ndr_flags, struct netr_OsVersionInfoEx *r)
7379 {
7380         if (ndr_flags & NDR_SCALARS) {
7381                 NDR_CHECK(ndr_pull_align(ndr, 4));
7382                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->OSVersionInfoSize));
7383                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MajorVersion));
7384                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MinorVersion));
7385                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->BuildNumber));
7386                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->PlatformId));
7387                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->CSDVersion, 128, sizeof(uint16_t), CH_UTF16));
7388                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ServicePackMajor));
7389                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ServicePackMinor));
7390                 NDR_CHECK(ndr_pull_netr_SuiteMask(ndr, NDR_SCALARS, &r->SuiteMask));
7391                 NDR_CHECK(ndr_pull_netr_ProductType(ndr, NDR_SCALARS, &r->ProductType));
7392                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Reserved));
7393         }
7394         if (ndr_flags & NDR_BUFFERS) {
7395         }
7396         return NDR_ERR_SUCCESS;
7397 }
7398
7399 _PUBLIC_ void ndr_print_netr_OsVersionInfoEx(struct ndr_print *ndr, const char *name, const struct netr_OsVersionInfoEx *r)
7400 {
7401         ndr_print_struct(ndr, name, "netr_OsVersionInfoEx");
7402         ndr->depth++;
7403         ndr_print_uint32(ndr, "OSVersionInfoSize", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?284:r->OSVersionInfoSize);
7404         ndr_print_uint32(ndr, "MajorVersion", r->MajorVersion);
7405         ndr_print_uint32(ndr, "MinorVersion", r->MinorVersion);
7406         ndr_print_uint32(ndr, "BuildNumber", r->BuildNumber);
7407         ndr_print_uint32(ndr, "PlatformId", r->PlatformId);
7408         ndr_print_string(ndr, "CSDVersion", r->CSDVersion);
7409         ndr_print_uint16(ndr, "ServicePackMajor", r->ServicePackMajor);
7410         ndr_print_uint16(ndr, "ServicePackMinor", r->ServicePackMinor);
7411         ndr_print_netr_SuiteMask(ndr, "SuiteMask", r->SuiteMask);
7412         ndr_print_netr_ProductType(ndr, "ProductType", r->ProductType);
7413         ndr_print_uint8(ndr, "Reserved", r->Reserved);
7414         ndr->depth--;
7415 }
7416
7417 static enum ndr_err_code ndr_push_netr_OsVersion(struct ndr_push *ndr, int ndr_flags, const struct netr_OsVersion *r)
7418 {
7419         if (ndr_flags & NDR_SCALARS) {
7420                 NDR_CHECK(ndr_push_align(ndr, 4));
7421                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 142));
7422                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7423                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 142));
7424                 NDR_CHECK(ndr_push_netr_OsVersionInfoEx(ndr, NDR_SCALARS, &r->os));
7425         }
7426         if (ndr_flags & NDR_BUFFERS) {
7427         }
7428         return NDR_ERR_SUCCESS;
7429 }
7430
7431 static enum ndr_err_code ndr_pull_netr_OsVersion(struct ndr_pull *ndr, int ndr_flags, struct netr_OsVersion *r)
7432 {
7433         if (ndr_flags & NDR_SCALARS) {
7434                 NDR_CHECK(ndr_pull_align(ndr, 4));
7435                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7436                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
7437                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7438                 NDR_CHECK(ndr_pull_netr_OsVersionInfoEx(ndr, NDR_SCALARS, &r->os));
7439         }
7440         if (ndr_flags & NDR_BUFFERS) {
7441         }
7442         return NDR_ERR_SUCCESS;
7443 }
7444
7445 _PUBLIC_ void ndr_print_netr_OsVersion(struct ndr_print *ndr, const char *name, const struct netr_OsVersion *r)
7446 {
7447         ndr_print_struct(ndr, name, "netr_OsVersion");
7448         ndr->depth++;
7449         ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?142:r->length);
7450         ndr_print_uint32(ndr, "dummy", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->dummy);
7451         ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?142:r->size);
7452         ndr_print_netr_OsVersionInfoEx(ndr, "os", &r->os);
7453         ndr->depth--;
7454 }
7455
7456 static enum ndr_err_code ndr_push_netr_OsVersionContainer(struct ndr_push *ndr, int ndr_flags, const struct netr_OsVersionContainer *r)
7457 {
7458         if (ndr_flags & NDR_SCALARS) {
7459                 NDR_CHECK(ndr_push_align(ndr, 4));
7460                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->os == NULL?0:284));
7461                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->os == NULL?0:284));
7462                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->os));
7463         }
7464         if (ndr_flags & NDR_BUFFERS) {
7465                 if (r->os) {
7466                         NDR_CHECK(ndr_push_netr_OsVersion(ndr, NDR_SCALARS, r->os));
7467                 }
7468         }
7469         return NDR_ERR_SUCCESS;
7470 }
7471
7472 static enum ndr_err_code ndr_pull_netr_OsVersionContainer(struct ndr_pull *ndr, int ndr_flags, struct netr_OsVersionContainer *r)
7473 {
7474         uint32_t _ptr_os;
7475         TALLOC_CTX *_mem_save_os_0;
7476         if (ndr_flags & NDR_SCALARS) {
7477                 NDR_CHECK(ndr_pull_align(ndr, 4));
7478                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
7479                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
7480                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_os));
7481                 if (_ptr_os) {
7482                         NDR_PULL_ALLOC(ndr, r->os);
7483                 } else {
7484                         r->os = NULL;
7485                 }
7486         }
7487         if (ndr_flags & NDR_BUFFERS) {
7488                 if (r->os) {
7489                         _mem_save_os_0 = NDR_PULL_GET_MEM_CTX(ndr);
7490                         NDR_PULL_SET_MEM_CTX(ndr, r->os, 0);
7491                         NDR_CHECK(ndr_pull_netr_OsVersion(ndr, NDR_SCALARS, r->os));
7492                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_os_0, 0);
7493                 }
7494         }
7495         return NDR_ERR_SUCCESS;
7496 }
7497
7498 _PUBLIC_ void ndr_print_netr_OsVersionContainer(struct ndr_print *ndr, const char *name, const struct netr_OsVersionContainer *r)
7499 {
7500         ndr_print_struct(ndr, name, "netr_OsVersionContainer");
7501         ndr->depth++;
7502         ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->os == NULL?0:284:r->length);
7503         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->os == NULL?0:284:r->size);
7504         ndr_print_ptr(ndr, "os", r->os);
7505         ndr->depth++;
7506         if (r->os) {
7507                 ndr_print_netr_OsVersion(ndr, "os", r->os);
7508         }
7509         ndr->depth--;
7510         ndr->depth--;
7511 }
7512
7513 static enum ndr_err_code ndr_push_netr_WorkstationInformation(struct ndr_push *ndr, int ndr_flags, const struct netr_WorkstationInformation *r)
7514 {
7515         if (ndr_flags & NDR_SCALARS) {
7516                 NDR_CHECK(ndr_push_align(ndr, 4));
7517                 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy));
7518                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_hostname));
7519                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7520                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy1));
7521                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy2));
7522                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy3));
7523                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy4));
7524                 NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr, NDR_SCALARS, &r->os_version));
7525                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->os_name));
7526                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3));
7527                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4));
7528                 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr, NDR_SCALARS, r->workstation_flags));
7529                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long2));
7530                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long3));
7531                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long4));
7532         }
7533         if (ndr_flags & NDR_BUFFERS) {
7534                 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy));
7535                 if (r->dns_hostname) {
7536                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_hostname, CH_UTF16)));
7537                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7538                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_hostname, CH_UTF16)));
7539                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_hostname, ndr_charset_length(r->dns_hostname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7540                 }
7541                 if (r->sitename) {
7542                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sitename, CH_UTF16)));
7543                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7544                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sitename, CH_UTF16)));
7545                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sitename, ndr_charset_length(r->sitename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7546                 }
7547                 if (r->dummy1) {
7548                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy1, CH_UTF16)));
7549                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7550                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy1, CH_UTF16)));
7551                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy1, ndr_charset_length(r->dummy1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7552                 }
7553                 if (r->dummy2) {
7554                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy2, CH_UTF16)));
7555                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7556                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy2, CH_UTF16)));
7557                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy2, ndr_charset_length(r->dummy2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7558                 }
7559                 if (r->dummy3) {
7560                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy3, CH_UTF16)));
7561                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7562                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy3, CH_UTF16)));
7563                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy3, ndr_charset_length(r->dummy3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7564                 }
7565                 if (r->dummy4) {
7566                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy4, CH_UTF16)));
7567                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7568                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dummy4, CH_UTF16)));
7569                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy4, ndr_charset_length(r->dummy4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7570                 }
7571                 NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr, NDR_BUFFERS, &r->os_version));
7572                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->os_name));
7573                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3));
7574                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4));
7575         }
7576         return NDR_ERR_SUCCESS;
7577 }
7578
7579 static enum ndr_err_code ndr_pull_netr_WorkstationInformation(struct ndr_pull *ndr, int ndr_flags, struct netr_WorkstationInformation *r)
7580 {
7581         uint32_t _ptr_dns_hostname;
7582         TALLOC_CTX *_mem_save_dns_hostname_0;
7583         uint32_t _ptr_sitename;
7584         TALLOC_CTX *_mem_save_sitename_0;
7585         uint32_t _ptr_dummy1;
7586         TALLOC_CTX *_mem_save_dummy1_0;
7587         uint32_t _ptr_dummy2;
7588         TALLOC_CTX *_mem_save_dummy2_0;
7589         uint32_t _ptr_dummy3;
7590         TALLOC_CTX *_mem_save_dummy3_0;
7591         uint32_t _ptr_dummy4;
7592         TALLOC_CTX *_mem_save_dummy4_0;
7593         if (ndr_flags & NDR_SCALARS) {
7594                 NDR_CHECK(ndr_pull_align(ndr, 4));
7595                 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy));
7596                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_hostname));
7597                 if (_ptr_dns_hostname) {
7598                         NDR_PULL_ALLOC(ndr, r->dns_hostname);
7599                 } else {
7600                         r->dns_hostname = NULL;
7601                 }
7602                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7603                 if (_ptr_sitename) {
7604                         NDR_PULL_ALLOC(ndr, r->sitename);
7605                 } else {
7606                         r->sitename = NULL;
7607                 }
7608                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy1));
7609                 if (_ptr_dummy1) {
7610                         NDR_PULL_ALLOC(ndr, r->dummy1);
7611                 } else {
7612                         r->dummy1 = NULL;
7613                 }
7614                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy2));
7615                 if (_ptr_dummy2) {
7616                         NDR_PULL_ALLOC(ndr, r->dummy2);
7617                 } else {
7618                         r->dummy2 = NULL;
7619                 }
7620                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy3));
7621                 if (_ptr_dummy3) {
7622                         NDR_PULL_ALLOC(ndr, r->dummy3);
7623                 } else {
7624                         r->dummy3 = NULL;
7625                 }
7626                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy4));
7627                 if (_ptr_dummy4) {
7628                         NDR_PULL_ALLOC(ndr, r->dummy4);
7629                 } else {
7630                         r->dummy4 = NULL;
7631                 }
7632                 NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr, NDR_SCALARS, &r->os_version));
7633                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->os_name));
7634                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3));
7635                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4));
7636                 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr, NDR_SCALARS, &r->workstation_flags));
7637                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long2));
7638                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long3));
7639                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long4));
7640         }
7641         if (ndr_flags & NDR_BUFFERS) {
7642                 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy));
7643                 if (r->dns_hostname) {
7644                         _mem_save_dns_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7645                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_hostname, 0);
7646                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_hostname));
7647                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_hostname));
7648                         if (ndr_get_array_length(ndr, &r->dns_hostname) > ndr_get_array_size(ndr, &r->dns_hostname)) {
7649                                 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_hostname), ndr_get_array_length(ndr, &r->dns_hostname));
7650                         }
7651                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_hostname), sizeof(uint16_t)));
7652                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_hostname, ndr_get_array_length(ndr, &r->dns_hostname), sizeof(uint16_t), CH_UTF16));
7653                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_hostname_0, 0);
7654                 }
7655                 if (r->sitename) {
7656                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7657                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7658                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7659                         NDR_CHECK(ndr_pull_array_length(ndr, &r->sitename));
7660                         if (ndr_get_array_length(ndr, &r->sitename) > ndr_get_array_size(ndr, &r->sitename)) {
7661                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sitename), ndr_get_array_length(ndr, &r->sitename));
7662                         }
7663                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sitename), sizeof(uint16_t)));
7664                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sitename, ndr_get_array_length(ndr, &r->sitename), sizeof(uint16_t), CH_UTF16));
7665                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7666                 }
7667                 if (r->dummy1) {
7668                         _mem_save_dummy1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7669                         NDR_PULL_SET_MEM_CTX(ndr, r->dummy1, 0);
7670                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy1));
7671                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy1));
7672                         if (ndr_get_array_length(ndr, &r->dummy1) > ndr_get_array_size(ndr, &r->dummy1)) {
7673                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy1), ndr_get_array_length(ndr, &r->dummy1));
7674                         }
7675                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy1), sizeof(uint16_t)));
7676                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy1, ndr_get_array_length(ndr, &r->dummy1), sizeof(uint16_t), CH_UTF16));
7677                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy1_0, 0);
7678                 }
7679                 if (r->dummy2) {
7680                         _mem_save_dummy2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7681                         NDR_PULL_SET_MEM_CTX(ndr, r->dummy2, 0);
7682                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy2));
7683                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy2));
7684                         if (ndr_get_array_length(ndr, &r->dummy2) > ndr_get_array_size(ndr, &r->dummy2)) {
7685                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy2), ndr_get_array_length(ndr, &r->dummy2));
7686                         }
7687                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy2), sizeof(uint16_t)));
7688                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy2, ndr_get_array_length(ndr, &r->dummy2), sizeof(uint16_t), CH_UTF16));
7689                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy2_0, 0);
7690                 }
7691                 if (r->dummy3) {
7692                         _mem_save_dummy3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7693                         NDR_PULL_SET_MEM_CTX(ndr, r->dummy3, 0);
7694                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy3));
7695                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy3));
7696                         if (ndr_get_array_length(ndr, &r->dummy3) > ndr_get_array_size(ndr, &r->dummy3)) {
7697                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy3), ndr_get_array_length(ndr, &r->dummy3));
7698                         }
7699                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy3), sizeof(uint16_t)));
7700                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy3, ndr_get_array_length(ndr, &r->dummy3), sizeof(uint16_t), CH_UTF16));
7701                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy3_0, 0);
7702                 }
7703                 if (r->dummy4) {
7704                         _mem_save_dummy4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7705                         NDR_PULL_SET_MEM_CTX(ndr, r->dummy4, 0);
7706                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy4));
7707                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy4));
7708                         if (ndr_get_array_length(ndr, &r->dummy4) > ndr_get_array_size(ndr, &r->dummy4)) {
7709                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy4), ndr_get_array_length(ndr, &r->dummy4));
7710                         }
7711                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy4), sizeof(uint16_t)));
7712                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy4, ndr_get_array_length(ndr, &r->dummy4), sizeof(uint16_t), CH_UTF16));
7713                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy4_0, 0);
7714                 }
7715                 NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr, NDR_BUFFERS, &r->os_version));
7716                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->os_name));
7717                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3));
7718                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4));
7719         }
7720         return NDR_ERR_SUCCESS;
7721 }
7722
7723 _PUBLIC_ void ndr_print_netr_WorkstationInformation(struct ndr_print *ndr, const char *name, const struct netr_WorkstationInformation *r)
7724 {
7725         ndr_print_struct(ndr, name, "netr_WorkstationInformation");
7726         ndr->depth++;
7727         ndr_print_netr_LsaPolicyInformation(ndr, "lsa_policy", &r->lsa_policy);
7728         ndr_print_ptr(ndr, "dns_hostname", r->dns_hostname);
7729         ndr->depth++;
7730         if (r->dns_hostname) {
7731                 ndr_print_string(ndr, "dns_hostname", r->dns_hostname);
7732         }
7733         ndr->depth--;
7734         ndr_print_ptr(ndr, "sitename", r->sitename);
7735         ndr->depth++;
7736         if (r->sitename) {
7737                 ndr_print_string(ndr, "sitename", r->sitename);
7738         }
7739         ndr->depth--;
7740         ndr_print_ptr(ndr, "dummy1", r->dummy1);
7741         ndr->depth++;
7742         if (r->dummy1) {
7743                 ndr_print_string(ndr, "dummy1", r->dummy1);
7744         }
7745         ndr->depth--;
7746         ndr_print_ptr(ndr, "dummy2", r->dummy2);
7747         ndr->depth++;
7748         if (r->dummy2) {
7749                 ndr_print_string(ndr, "dummy2", r->dummy2);
7750         }
7751         ndr->depth--;
7752         ndr_print_ptr(ndr, "dummy3", r->dummy3);
7753         ndr->depth++;
7754         if (r->dummy3) {
7755                 ndr_print_string(ndr, "dummy3", r->dummy3);
7756         }
7757         ndr->depth--;
7758         ndr_print_ptr(ndr, "dummy4", r->dummy4);
7759         ndr->depth++;
7760         if (r->dummy4) {
7761                 ndr_print_string(ndr, "dummy4", r->dummy4);
7762         }
7763         ndr->depth--;
7764         ndr_print_netr_OsVersionContainer(ndr, "os_version", &r->os_version);
7765         ndr_print_lsa_String(ndr, "os_name", &r->os_name);
7766         ndr_print_lsa_String(ndr, "dummy_string3", &r->dummy_string3);
7767         ndr_print_lsa_String(ndr, "dummy_string4", &r->dummy_string4);
7768         ndr_print_netr_WorkstationFlags(ndr, "workstation_flags", r->workstation_flags);
7769         ndr_print_uint32(ndr, "dummy_long2", r->dummy_long2);
7770         ndr_print_uint32(ndr, "dummy_long3", r->dummy_long3);
7771         ndr_print_uint32(ndr, "dummy_long4", r->dummy_long4);
7772         ndr->depth--;
7773 }
7774
7775 static enum ndr_err_code ndr_push_netr_WorkstationInfo(struct ndr_push *ndr, int ndr_flags, const union netr_WorkstationInfo *r)
7776 {
7777         if (ndr_flags & NDR_SCALARS) {
7778                 int level = ndr_push_get_switch_value(ndr, r);
7779                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7780                 switch (level) {
7781                         case 1: {
7782                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_info));
7783                         break; }
7784
7785                         case 2: {
7786                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->lsa_policy_info));
7787                         break; }
7788
7789                         default:
7790                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7791                 }
7792         }
7793         if (ndr_flags & NDR_BUFFERS) {
7794                 int level = ndr_push_get_switch_value(ndr, r);
7795                 switch (level) {
7796                         case 1:
7797                                 if (r->workstation_info) {
7798                                         NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->workstation_info));
7799                                 }
7800                         break;
7801
7802                         case 2:
7803                                 if (r->lsa_policy_info) {
7804                                         NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info));
7805                                 }
7806                         break;
7807
7808                         default:
7809                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7810                 }
7811         }
7812         return NDR_ERR_SUCCESS;
7813 }
7814
7815 static enum ndr_err_code ndr_pull_netr_WorkstationInfo(struct ndr_pull *ndr, int ndr_flags, union netr_WorkstationInfo *r)
7816 {
7817         int level;
7818         uint32_t _level;
7819         TALLOC_CTX *_mem_save_workstation_info_0;
7820         TALLOC_CTX *_mem_save_lsa_policy_info_0;
7821         level = ndr_pull_get_switch_value(ndr, r);
7822         if (ndr_flags & NDR_SCALARS) {
7823                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7824                 if (_level != level) {
7825                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7826                 }
7827                 switch (level) {
7828                         case 1: {
7829                                 uint32_t _ptr_workstation_info;
7830                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_info));
7831                                 if (_ptr_workstation_info) {
7832                                         NDR_PULL_ALLOC(ndr, r->workstation_info);
7833                                 } else {
7834                                         r->workstation_info = NULL;
7835                                 }
7836                         break; }
7837
7838                         case 2: {
7839                                 uint32_t _ptr_lsa_policy_info;
7840                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lsa_policy_info));
7841                                 if (_ptr_lsa_policy_info) {
7842                                         NDR_PULL_ALLOC(ndr, r->lsa_policy_info);
7843                                 } else {
7844                                         r->lsa_policy_info = NULL;
7845                                 }
7846                         break; }
7847
7848                         default:
7849                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7850                 }
7851         }
7852         if (ndr_flags & NDR_BUFFERS) {
7853                 switch (level) {
7854                         case 1:
7855                                 if (r->workstation_info) {
7856                                         _mem_save_workstation_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7857                                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_info, 0);
7858                                         NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->workstation_info));
7859                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_info_0, 0);
7860                                 }
7861                         break;
7862
7863                         case 2:
7864                                 if (r->lsa_policy_info) {
7865                                         _mem_save_lsa_policy_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7866                                         NDR_PULL_SET_MEM_CTX(ndr, r->lsa_policy_info, 0);
7867                                         NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info));
7868                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lsa_policy_info_0, 0);
7869                                 }
7870                         break;
7871
7872                         default:
7873                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7874                 }
7875         }
7876         return NDR_ERR_SUCCESS;
7877 }
7878
7879 _PUBLIC_ void ndr_print_netr_WorkstationInfo(struct ndr_print *ndr, const char *name, const union netr_WorkstationInfo *r)
7880 {
7881         int level;
7882         level = ndr_print_get_switch_value(ndr, r);
7883         ndr_print_union(ndr, name, level, "netr_WorkstationInfo");
7884         switch (level) {
7885                 case 1:
7886                         ndr_print_ptr(ndr, "workstation_info", r->workstation_info);
7887                         ndr->depth++;
7888                         if (r->workstation_info) {
7889                                 ndr_print_netr_WorkstationInformation(ndr, "workstation_info", r->workstation_info);
7890                         }
7891                         ndr->depth--;
7892                 break;
7893
7894                 case 2:
7895                         ndr_print_ptr(ndr, "lsa_policy_info", r->lsa_policy_info);
7896                         ndr->depth++;
7897                         if (r->lsa_policy_info) {
7898                                 ndr_print_netr_WorkstationInformation(ndr, "lsa_policy_info", r->lsa_policy_info);
7899                         }
7900                         ndr->depth--;
7901                 break;
7902
7903                 default:
7904                         ndr_print_bad_level(ndr, name, level);
7905         }
7906 }
7907
7908 static enum ndr_err_code ndr_push_netr_trust_extension(struct ndr_push *ndr, int ndr_flags, const struct netr_trust_extension *r)
7909 {
7910         if (ndr_flags & NDR_SCALARS) {
7911                 NDR_CHECK(ndr_push_align(ndr, 4));
7912                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8));
7913                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7914                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8));
7915                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->flags));
7916                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7917                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_type));
7918                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_attributes));
7919         }
7920         if (ndr_flags & NDR_BUFFERS) {
7921         }
7922         return NDR_ERR_SUCCESS;
7923 }
7924
7925 static enum ndr_err_code ndr_pull_netr_trust_extension(struct ndr_pull *ndr, int ndr_flags, struct netr_trust_extension *r)
7926 {
7927         if (ndr_flags & NDR_SCALARS) {
7928                 NDR_CHECK(ndr_pull_align(ndr, 4));
7929                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7930                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
7931                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7932                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->flags));
7933                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7934                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_type));
7935                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_attributes));
7936         }
7937         if (ndr_flags & NDR_BUFFERS) {
7938         }
7939         return NDR_ERR_SUCCESS;
7940 }
7941
7942 _PUBLIC_ void ndr_print_netr_trust_extension(struct ndr_print *ndr, const char *name, const struct netr_trust_extension *r)
7943 {
7944         ndr_print_struct(ndr, name, "netr_trust_extension");
7945         ndr->depth++;
7946         ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8:r->length);
7947         ndr_print_uint32(ndr, "dummy", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->dummy);
7948         ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8:r->size);
7949         ndr_print_netr_TrustFlags(ndr, "flags", r->flags);
7950         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7951         ndr_print_uint32(ndr, "trust_type", r->trust_type);
7952         ndr_print_uint32(ndr, "trust_attributes", r->trust_attributes);
7953         ndr->depth--;
7954 }
7955
7956 static enum ndr_err_code ndr_push_netr_trust_extension_container(struct ndr_push *ndr, int ndr_flags, const struct netr_trust_extension_container *r)
7957 {
7958         if (ndr_flags & NDR_SCALARS) {
7959                 NDR_CHECK(ndr_push_align(ndr, 4));
7960                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
7961                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
7962                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
7963         }
7964         if (ndr_flags & NDR_BUFFERS) {
7965                 if (r->info) {
7966                         NDR_CHECK(ndr_push_netr_trust_extension(ndr, NDR_SCALARS, r->info));
7967                 }
7968         }
7969         return NDR_ERR_SUCCESS;
7970 }
7971
7972 static enum ndr_err_code ndr_pull_netr_trust_extension_container(struct ndr_pull *ndr, int ndr_flags, struct netr_trust_extension_container *r)
7973 {
7974         uint32_t _ptr_info;
7975         TALLOC_CTX *_mem_save_info_0;
7976         if (ndr_flags & NDR_SCALARS) {
7977                 NDR_CHECK(ndr_pull_align(ndr, 4));
7978                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
7979                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
7980                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
7981                 if (_ptr_info) {
7982                         NDR_PULL_ALLOC(ndr, r->info);
7983                 } else {
7984                         r->info = NULL;
7985                 }
7986         }
7987         if (ndr_flags & NDR_BUFFERS) {
7988                 if (r->info) {
7989                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7990                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
7991                         NDR_CHECK(ndr_pull_netr_trust_extension(ndr, NDR_SCALARS, r->info));
7992                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
7993                 }
7994         }
7995         return NDR_ERR_SUCCESS;
7996 }
7997
7998 _PUBLIC_ void ndr_print_netr_trust_extension_container(struct ndr_print *ndr, const char *name, const struct netr_trust_extension_container *r)
7999 {
8000         ndr_print_struct(ndr, name, "netr_trust_extension_container");
8001         ndr->depth++;
8002         ndr_print_uint16(ndr, "length", r->length);
8003         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
8004         ndr_print_ptr(ndr, "info", r->info);
8005         ndr->depth++;
8006         if (r->info) {
8007                 ndr_print_netr_trust_extension(ndr, "info", r->info);
8008         }
8009         ndr->depth--;
8010         ndr->depth--;
8011 }
8012
8013 static enum ndr_err_code ndr_push_netr_OneDomainInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_OneDomainInfo *r)
8014 {
8015         if (ndr_flags & NDR_SCALARS) {
8016                 NDR_CHECK(ndr_push_align(ndr, 4));
8017                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
8018                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dns_domainname));
8019                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dns_forestname));
8020                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
8021                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
8022                 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension));
8023                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string2));
8024                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3));
8025                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4));
8026                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long1));
8027                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long2));
8028                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long3));
8029                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long4));
8030         }
8031         if (ndr_flags & NDR_BUFFERS) {
8032                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
8033                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dns_domainname));
8034                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dns_forestname));
8035                 if (r->domain_sid) {
8036                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
8037                 }
8038                 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension));
8039                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string2));
8040                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3));
8041                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4));
8042         }
8043         return NDR_ERR_SUCCESS;
8044 }
8045
8046 static enum ndr_err_code ndr_pull_netr_OneDomainInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_OneDomainInfo *r)
8047 {
8048         uint32_t _ptr_domain_sid;
8049         TALLOC_CTX *_mem_save_domain_sid_0;
8050         if (ndr_flags & NDR_SCALARS) {
8051                 NDR_CHECK(ndr_pull_align(ndr, 4));
8052                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
8053                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dns_domainname));
8054                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dns_forestname));
8055                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
8056                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
8057                 if (_ptr_domain_sid) {
8058                         NDR_PULL_ALLOC(ndr, r->domain_sid);
8059                 } else {
8060                         r->domain_sid = NULL;
8061                 }
8062                 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension));
8063                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string2));
8064                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3));
8065                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4));
8066                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long1));
8067                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long2));
8068                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long3));
8069                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long4));
8070         }
8071         if (ndr_flags & NDR_BUFFERS) {
8072                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
8073                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dns_domainname));
8074                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dns_forestname));
8075                 if (r->domain_sid) {
8076                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8077                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
8078                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
8079                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
8080                 }
8081                 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension));
8082                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string2));
8083                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3));
8084                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4));
8085         }
8086         return NDR_ERR_SUCCESS;
8087 }
8088
8089 _PUBLIC_ void ndr_print_netr_OneDomainInfo(struct ndr_print *ndr, const char *name, const struct netr_OneDomainInfo *r)
8090 {
8091         ndr_print_struct(ndr, name, "netr_OneDomainInfo");
8092         ndr->depth++;
8093         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
8094         ndr_print_lsa_String(ndr, "dns_domainname", &r->dns_domainname);
8095         ndr_print_lsa_String(ndr, "dns_forestname", &r->dns_forestname);
8096         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
8097         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
8098         ndr->depth++;
8099         if (r->domain_sid) {
8100                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
8101         }
8102         ndr->depth--;
8103         ndr_print_netr_trust_extension_container(ndr, "trust_extension", &r->trust_extension);
8104         ndr_print_lsa_String(ndr, "dummy_string2", &r->dummy_string2);
8105         ndr_print_lsa_String(ndr, "dummy_string3", &r->dummy_string3);
8106         ndr_print_lsa_String(ndr, "dummy_string4", &r->dummy_string4);
8107         ndr_print_uint32(ndr, "dummy_long1", r->dummy_long1);
8108         ndr_print_uint32(ndr, "dummy_long2", r->dummy_long2);
8109         ndr_print_uint32(ndr, "dummy_long3", r->dummy_long3);
8110         ndr_print_uint32(ndr, "dummy_long4", r->dummy_long4);
8111         ndr->depth--;
8112 }
8113
8114 static enum ndr_err_code ndr_push_netr_DomainInformation(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInformation *r)
8115 {
8116         uint32_t cntr_trusted_domains_1;
8117         if (ndr_flags & NDR_SCALARS) {
8118                 NDR_CHECK(ndr_push_align(ndr, 4));
8119                 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->primary_domain));
8120                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trusted_domain_count));
8121                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domains));
8122                 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy));
8123                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dns_hostname));
8124                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string2));
8125                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3));
8126                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4));
8127                 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr, NDR_SCALARS, r->workstation_flags));
8128                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->supported_enc_types));
8129                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long3));
8130                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long4));
8131         }
8132         if (ndr_flags & NDR_BUFFERS) {
8133                 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->primary_domain));
8134                 if (r->trusted_domains) {
8135                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trusted_domain_count));
8136                         for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) {
8137                                 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->trusted_domains[cntr_trusted_domains_1]));
8138                         }
8139                         for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) {
8140                                 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->trusted_domains[cntr_trusted_domains_1]));
8141                         }
8142                 }
8143                 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy));
8144                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dns_hostname));
8145                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string2));
8146                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3));
8147                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4));
8148         }
8149         return NDR_ERR_SUCCESS;
8150 }
8151
8152 static enum ndr_err_code ndr_pull_netr_DomainInformation(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInformation *r)
8153 {
8154         uint32_t _ptr_trusted_domains;
8155         uint32_t cntr_trusted_domains_1;
8156         TALLOC_CTX *_mem_save_trusted_domains_0;
8157         TALLOC_CTX *_mem_save_trusted_domains_1;
8158         if (ndr_flags & NDR_SCALARS) {
8159                 NDR_CHECK(ndr_pull_align(ndr, 4));
8160                 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->primary_domain));
8161                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trusted_domain_count));
8162                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domains));
8163                 if (_ptr_trusted_domains) {
8164                         NDR_PULL_ALLOC(ndr, r->trusted_domains);
8165                 } else {
8166                         r->trusted_domains = NULL;
8167                 }
8168                 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy));
8169                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dns_hostname));
8170                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string2));
8171                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3));
8172                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4));
8173                 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr, NDR_SCALARS, &r->workstation_flags));
8174                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->supported_enc_types));
8175                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long3));
8176                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long4));
8177         }
8178         if (ndr_flags & NDR_BUFFERS) {
8179                 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->primary_domain));
8180                 if (r->trusted_domains) {
8181                         _mem_save_trusted_domains_0 = NDR_PULL_GET_MEM_CTX(ndr);
8182                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domains, 0);
8183                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_domains));
8184                         NDR_PULL_ALLOC_N(ndr, r->trusted_domains, ndr_get_array_size(ndr, &r->trusted_domains));
8185                         _mem_save_trusted_domains_1 = NDR_PULL_GET_MEM_CTX(ndr);
8186                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domains, 0);
8187                         for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) {
8188                                 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->trusted_domains[cntr_trusted_domains_1]));
8189                         }
8190                         for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) {
8191                                 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->trusted_domains[cntr_trusted_domains_1]));
8192                         }
8193                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_1, 0);
8194                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_0, 0);
8195                 }
8196                 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy));
8197                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dns_hostname));
8198                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string2));
8199                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3));
8200                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4));
8201                 if (r->trusted_domains) {
8202                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusted_domains, r->trusted_domain_count));
8203                 }
8204         }
8205         return NDR_ERR_SUCCESS;
8206 }
8207
8208 _PUBLIC_ void ndr_print_netr_DomainInformation(struct ndr_print *ndr, const char *name, const struct netr_DomainInformation *r)
8209 {
8210         uint32_t cntr_trusted_domains_1;
8211         ndr_print_struct(ndr, name, "netr_DomainInformation");
8212         ndr->depth++;
8213         ndr_print_netr_OneDomainInfo(ndr, "primary_domain", &r->primary_domain);
8214         ndr_print_uint32(ndr, "trusted_domain_count", r->trusted_domain_count);
8215         ndr_print_ptr(ndr, "trusted_domains", r->trusted_domains);
8216         ndr->depth++;
8217         if (r->trusted_domains) {
8218                 ndr->print(ndr, "%s: ARRAY(%d)", "trusted_domains", (int)r->trusted_domain_count);
8219                 ndr->depth++;
8220                 for (cntr_trusted_domains_1=0;cntr_trusted_domains_1<r->trusted_domain_count;cntr_trusted_domains_1++) {
8221                         char *idx_1=NULL;
8222                         if (asprintf(&idx_1, "[%d]", cntr_trusted_domains_1) != -1) {
8223                                 ndr_print_netr_OneDomainInfo(ndr, "trusted_domains", &r->trusted_domains[cntr_trusted_domains_1]);
8224                                 free(idx_1);
8225                         }
8226                 }
8227                 ndr->depth--;
8228         }
8229         ndr->depth--;
8230         ndr_print_netr_LsaPolicyInformation(ndr, "lsa_policy", &r->lsa_policy);
8231         ndr_print_lsa_String(ndr, "dns_hostname", &r->dns_hostname);
8232         ndr_print_lsa_String(ndr, "dummy_string2", &r->dummy_string2);
8233         ndr_print_lsa_String(ndr, "dummy_string3", &r->dummy_string3);
8234         ndr_print_lsa_String(ndr, "dummy_string4", &r->dummy_string4);
8235         ndr_print_netr_WorkstationFlags(ndr, "workstation_flags", r->workstation_flags);
8236         ndr_print_uint32(ndr, "supported_enc_types", r->supported_enc_types);
8237         ndr_print_uint32(ndr, "dummy_long3", r->dummy_long3);
8238         ndr_print_uint32(ndr, "dummy_long4", r->dummy_long4);
8239         ndr->depth--;
8240 }
8241
8242 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
8243 {
8244         if (ndr_flags & NDR_SCALARS) {
8245                 int level = ndr_push_get_switch_value(ndr, r);
8246                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
8247                 switch (level) {
8248                         case 1: {
8249                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_info));
8250                         break; }
8251
8252                         case 2: {
8253                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->lsa_policy_info));
8254                         break; }
8255
8256                         default:
8257                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8258                 }
8259         }
8260         if (ndr_flags & NDR_BUFFERS) {
8261                 int level = ndr_push_get_switch_value(ndr, r);
8262                 switch (level) {
8263                         case 1:
8264                                 if (r->domain_info) {
8265                                         NDR_CHECK(ndr_push_netr_DomainInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_info));
8266                                 }
8267                         break;
8268
8269                         case 2:
8270                                 if (r->lsa_policy_info) {
8271                                         NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info));
8272                                 }
8273                         break;
8274
8275                         default:
8276                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8277                 }
8278         }
8279         return NDR_ERR_SUCCESS;
8280 }
8281
8282 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
8283 {
8284         int level;
8285         uint32_t _level;
8286         TALLOC_CTX *_mem_save_domain_info_0;
8287         TALLOC_CTX *_mem_save_lsa_policy_info_0;
8288         level = ndr_pull_get_switch_value(ndr, r);
8289         if (ndr_flags & NDR_SCALARS) {
8290                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
8291                 if (_level != level) {
8292                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
8293                 }
8294                 switch (level) {
8295                         case 1: {
8296                                 uint32_t _ptr_domain_info;
8297                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_info));
8298                                 if (_ptr_domain_info) {
8299                                         NDR_PULL_ALLOC(ndr, r->domain_info);
8300                                 } else {
8301                                         r->domain_info = NULL;
8302                                 }
8303                         break; }
8304
8305                         case 2: {
8306                                 uint32_t _ptr_lsa_policy_info;
8307                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lsa_policy_info));
8308                                 if (_ptr_lsa_policy_info) {
8309                                         NDR_PULL_ALLOC(ndr, r->lsa_policy_info);
8310                                 } else {
8311                                         r->lsa_policy_info = NULL;
8312                                 }
8313                         break; }
8314
8315                         default:
8316                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8317                 }
8318         }
8319         if (ndr_flags & NDR_BUFFERS) {
8320                 switch (level) {
8321                         case 1:
8322                                 if (r->domain_info) {
8323                                         _mem_save_domain_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8324                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_info, 0);
8325                                         NDR_CHECK(ndr_pull_netr_DomainInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_info));
8326                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_info_0, 0);
8327                                 }
8328                         break;
8329
8330                         case 2:
8331                                 if (r->lsa_policy_info) {
8332                                         _mem_save_lsa_policy_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8333                                         NDR_PULL_SET_MEM_CTX(ndr, r->lsa_policy_info, 0);
8334                                         NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info));
8335                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lsa_policy_info_0, 0);
8336                                 }
8337                         break;
8338
8339                         default:
8340                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8341                 }
8342         }
8343         return NDR_ERR_SUCCESS;
8344 }
8345
8346 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
8347 {
8348         int level;
8349         level = ndr_print_get_switch_value(ndr, r);
8350         ndr_print_union(ndr, name, level, "netr_DomainInfo");
8351         switch (level) {
8352                 case 1:
8353                         ndr_print_ptr(ndr, "domain_info", r->domain_info);
8354                         ndr->depth++;
8355                         if (r->domain_info) {
8356                                 ndr_print_netr_DomainInformation(ndr, "domain_info", r->domain_info);
8357                         }
8358                         ndr->depth--;
8359                 break;
8360
8361                 case 2:
8362                         ndr_print_ptr(ndr, "lsa_policy_info", r->lsa_policy_info);
8363                         ndr->depth++;
8364                         if (r->lsa_policy_info) {
8365                                 ndr_print_netr_LsaPolicyInformation(ndr, "lsa_policy_info", r->lsa_policy_info);
8366                         }
8367                         ndr->depth--;
8368                 break;
8369
8370                 default:
8371                         ndr_print_bad_level(ndr, name, level);
8372         }
8373 }
8374
8375 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
8376 {
8377         {
8378                 uint32_t _flags_save_STRUCT = ndr->flags;
8379                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
8380                 if (ndr_flags & NDR_SCALARS) {
8381                         NDR_CHECK(ndr_push_align(ndr, 4));
8382                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
8383                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
8384                 }
8385                 if (ndr_flags & NDR_BUFFERS) {
8386                 }
8387                 ndr->flags = _flags_save_STRUCT;
8388         }
8389         return NDR_ERR_SUCCESS;
8390 }
8391
8392 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
8393 {
8394         {
8395                 uint32_t _flags_save_STRUCT = ndr->flags;
8396                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
8397                 if (ndr_flags & NDR_SCALARS) {
8398                         NDR_CHECK(ndr_pull_align(ndr, 4));
8399                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
8400                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
8401                 }
8402                 if (ndr_flags & NDR_BUFFERS) {
8403                 }
8404                 ndr->flags = _flags_save_STRUCT;
8405         }
8406         return NDR_ERR_SUCCESS;
8407 }
8408
8409 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
8410 {
8411         ndr_print_struct(ndr, name, "netr_CryptPassword");
8412         {
8413                 uint32_t _flags_save_STRUCT = ndr->flags;
8414                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
8415                 ndr->depth++;
8416                 ndr_print_array_uint8(ndr, "data", r->data, 512);
8417                 ndr_print_uint32(ndr, "length", r->length);
8418                 ndr->depth--;
8419                 ndr->flags = _flags_save_STRUCT;
8420         }
8421 }
8422
8423 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
8424 {
8425         uint32_t cntr_sitename_1;
8426         if (ndr_flags & NDR_SCALARS) {
8427                 NDR_CHECK(ndr_push_align(ndr, 4));
8428                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8429                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
8430         }
8431         if (ndr_flags & NDR_BUFFERS) {
8432                 if (r->sitename) {
8433                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8434                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8435                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8436                         }
8437                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8438                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8439                         }
8440                 }
8441         }
8442         return NDR_ERR_SUCCESS;
8443 }
8444
8445 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
8446 {
8447         uint32_t _ptr_sitename;
8448         uint32_t cntr_sitename_1;
8449         TALLOC_CTX *_mem_save_sitename_0;
8450         TALLOC_CTX *_mem_save_sitename_1;
8451         if (ndr_flags & NDR_SCALARS) {
8452                 NDR_CHECK(ndr_pull_align(ndr, 4));
8453                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8454                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
8455                 if (_ptr_sitename) {
8456                         NDR_PULL_ALLOC(ndr, r->sitename);
8457                 } else {
8458                         r->sitename = NULL;
8459                 }
8460         }
8461         if (ndr_flags & NDR_BUFFERS) {
8462                 if (r->sitename) {
8463                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
8464                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8465                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
8466                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
8467                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
8468                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8469                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8470                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8471                         }
8472                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8473                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8474                         }
8475                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
8476                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
8477                 }
8478                 if (r->sitename) {
8479                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
8480                 }
8481         }
8482         return NDR_ERR_SUCCESS;
8483 }
8484
8485 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
8486 {
8487         uint32_t cntr_sitename_1;
8488         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
8489         ndr->depth++;
8490         ndr_print_uint32(ndr, "count", r->count);
8491         ndr_print_ptr(ndr, "sitename", r->sitename);
8492         ndr->depth++;
8493         if (r->sitename) {
8494                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
8495                 ndr->depth++;
8496                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
8497                         char *idx_1=NULL;
8498                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
8499                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
8500                                 free(idx_1);
8501                         }
8502                 }
8503                 ndr->depth--;
8504         }
8505         ndr->depth--;
8506         ndr->depth--;
8507 }
8508
8509 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
8510 {
8511         if (ndr_flags & NDR_SCALARS) {
8512                 NDR_CHECK(ndr_push_align(ndr, 4));
8513                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
8514                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8515         }
8516         if (ndr_flags & NDR_BUFFERS) {
8517                 if (r->buffer) {
8518                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8519                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
8520                 }
8521         }
8522         return NDR_ERR_SUCCESS;
8523 }
8524
8525 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
8526 {
8527         uint32_t _ptr_buffer;
8528         TALLOC_CTX *_mem_save_buffer_0;
8529         if (ndr_flags & NDR_SCALARS) {
8530                 NDR_CHECK(ndr_pull_align(ndr, 4));
8531                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
8532                 if (_ptr_buffer) {
8533                         NDR_PULL_ALLOC(ndr, r->buffer);
8534                 } else {
8535                         r->buffer = NULL;
8536                 }
8537                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
8538         }
8539         if (ndr_flags & NDR_BUFFERS) {
8540                 if (r->buffer) {
8541                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
8542                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
8543                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
8544                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
8545                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
8546                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
8547                 }
8548                 if (r->buffer) {
8549                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
8550                 }
8551         }
8552         return NDR_ERR_SUCCESS;
8553 }
8554
8555 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
8556 {
8557         ndr_print_struct(ndr, name, "netr_DsRAddress");
8558         ndr->depth++;
8559         ndr_print_ptr(ndr, "buffer", r->buffer);
8560         ndr->depth++;
8561         if (r->buffer) {
8562                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
8563         }
8564         ndr->depth--;
8565         ndr_print_uint32(ndr, "size", r->size);
8566         ndr->depth--;
8567 }
8568
8569 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
8570 {
8571         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8572         return NDR_ERR_SUCCESS;
8573 }
8574
8575 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
8576 {
8577         uint32_t v;
8578         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8579         *r = v;
8580         return NDR_ERR_SUCCESS;
8581 }
8582
8583 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
8584 {
8585         const char *val = NULL;
8586
8587         switch (r) {
8588                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
8589                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
8590                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
8591                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
8592         }
8593         ndr_print_enum(ndr, name, "ENUM", val, r);
8594 }
8595
8596 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
8597 {
8598         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8599         return NDR_ERR_SUCCESS;
8600 }
8601
8602 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
8603 {
8604         uint32_t v;
8605         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8606         *r = v;
8607         return NDR_ERR_SUCCESS;
8608 }
8609
8610 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
8611 {
8612         ndr_print_uint32(ndr, name, r);
8613         ndr->depth++;
8614         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
8615         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
8616         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
8617         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
8618         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
8619         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
8620         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
8621         ndr->depth--;
8622 }
8623
8624 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
8625 {
8626         if (ndr_flags & NDR_SCALARS) {
8627                 NDR_CHECK(ndr_push_align(ndr, 4));
8628                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
8629                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
8630                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
8631                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
8632                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
8633                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
8634                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
8635                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
8636         }
8637         if (ndr_flags & NDR_BUFFERS) {
8638                 if (r->netbios_name) {
8639                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
8640                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8641                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
8642                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8643                 }
8644                 if (r->dns_name) {
8645                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
8646                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8647                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
8648                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8649                 }
8650                 if (r->sid) {
8651                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
8652                 }
8653         }
8654         return NDR_ERR_SUCCESS;
8655 }
8656
8657 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
8658 {
8659         uint32_t _ptr_netbios_name;
8660         TALLOC_CTX *_mem_save_netbios_name_0;
8661         uint32_t _ptr_dns_name;
8662         TALLOC_CTX *_mem_save_dns_name_0;
8663         uint32_t _ptr_sid;
8664         TALLOC_CTX *_mem_save_sid_0;
8665         if (ndr_flags & NDR_SCALARS) {
8666                 NDR_CHECK(ndr_pull_align(ndr, 4));
8667                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
8668                 if (_ptr_netbios_name) {
8669                         NDR_PULL_ALLOC(ndr, r->netbios_name);
8670                 } else {
8671                         r->netbios_name = NULL;
8672                 }
8673                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
8674                 if (_ptr_dns_name) {
8675                         NDR_PULL_ALLOC(ndr, r->dns_name);
8676                 } else {
8677                         r->dns_name = NULL;
8678                 }
8679                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
8680                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
8681                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
8682                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
8683                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
8684                 if (_ptr_sid) {
8685                         NDR_PULL_ALLOC(ndr, r->sid);
8686                 } else {
8687                         r->sid = NULL;
8688                 }
8689                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
8690         }
8691         if (ndr_flags & NDR_BUFFERS) {
8692                 if (r->netbios_name) {
8693                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8694                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
8695                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
8696                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
8697                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
8698                                 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));
8699                         }
8700                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
8701                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
8702                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
8703                 }
8704                 if (r->dns_name) {
8705                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8706                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
8707                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
8708                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
8709                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
8710                                 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));
8711                         }
8712                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
8713                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
8714                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
8715                 }
8716                 if (r->sid) {
8717                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8718                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
8719                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
8720                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
8721                 }
8722         }
8723         return NDR_ERR_SUCCESS;
8724 }
8725
8726 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
8727 {
8728         ndr_print_struct(ndr, name, "netr_DomainTrust");
8729         ndr->depth++;
8730         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
8731         ndr->depth++;
8732         if (r->netbios_name) {
8733                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
8734         }
8735         ndr->depth--;
8736         ndr_print_ptr(ndr, "dns_name", r->dns_name);
8737         ndr->depth++;
8738         if (r->dns_name) {
8739                 ndr_print_string(ndr, "dns_name", r->dns_name);
8740         }
8741         ndr->depth--;
8742         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
8743         ndr_print_uint32(ndr, "parent_index", r->parent_index);
8744         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
8745         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
8746         ndr_print_ptr(ndr, "sid", r->sid);
8747         ndr->depth++;
8748         if (r->sid) {
8749                 ndr_print_dom_sid2(ndr, "sid", r->sid);
8750         }
8751         ndr->depth--;
8752         ndr_print_GUID(ndr, "guid", &r->guid);
8753         ndr->depth--;
8754 }
8755
8756 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
8757 {
8758         uint32_t cntr_array_1;
8759         if (ndr_flags & NDR_SCALARS) {
8760                 NDR_CHECK(ndr_push_align(ndr, 4));
8761                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8762                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
8763         }
8764         if (ndr_flags & NDR_BUFFERS) {
8765                 if (r->array) {
8766                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8767                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8768                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8769                         }
8770                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8771                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8772                         }
8773                 }
8774         }
8775         return NDR_ERR_SUCCESS;
8776 }
8777
8778 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
8779 {
8780         uint32_t _ptr_array;
8781         uint32_t cntr_array_1;
8782         TALLOC_CTX *_mem_save_array_0;
8783         TALLOC_CTX *_mem_save_array_1;
8784         if (ndr_flags & NDR_SCALARS) {
8785                 NDR_CHECK(ndr_pull_align(ndr, 4));
8786                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8787                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
8788                 if (_ptr_array) {
8789                         NDR_PULL_ALLOC(ndr, r->array);
8790                 } else {
8791                         r->array = NULL;
8792                 }
8793         }
8794         if (ndr_flags & NDR_BUFFERS) {
8795                 if (r->array) {
8796                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8797                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8798                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
8799                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
8800                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
8801                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8802                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8803                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8804                         }
8805                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8806                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8807                         }
8808                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
8809                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
8810                 }
8811                 if (r->array) {
8812                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
8813                 }
8814         }
8815         return NDR_ERR_SUCCESS;
8816 }
8817
8818 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
8819 {
8820         uint32_t cntr_array_1;
8821         ndr_print_struct(ndr, name, "netr_DomainTrustList");
8822         ndr->depth++;
8823         ndr_print_uint32(ndr, "count", r->count);
8824         ndr_print_ptr(ndr, "array", r->array);
8825         ndr->depth++;
8826         if (r->array) {
8827                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
8828                 ndr->depth++;
8829                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
8830                         char *idx_1=NULL;
8831                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
8832                                 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
8833                                 free(idx_1);
8834                         }
8835                 }
8836                 ndr->depth--;
8837         }
8838         ndr->depth--;
8839         ndr->depth--;
8840 }
8841
8842 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
8843 {
8844         uint32_t cntr_sitename_1;
8845         uint32_t cntr_subnetname_1;
8846         if (ndr_flags & NDR_SCALARS) {
8847                 NDR_CHECK(ndr_push_align(ndr, 4));
8848                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8849                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
8850                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
8851         }
8852         if (ndr_flags & NDR_BUFFERS) {
8853                 if (r->sitename) {
8854                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8855                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8856                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8857                         }
8858                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8859                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8860                         }
8861                 }
8862                 if (r->subnetname) {
8863                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8864                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8865                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
8866                         }
8867                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8868                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
8869                         }
8870                 }
8871         }
8872         return NDR_ERR_SUCCESS;
8873 }
8874
8875 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
8876 {
8877         uint32_t _ptr_sitename;
8878         uint32_t cntr_sitename_1;
8879         TALLOC_CTX *_mem_save_sitename_0;
8880         TALLOC_CTX *_mem_save_sitename_1;
8881         uint32_t _ptr_subnetname;
8882         uint32_t cntr_subnetname_1;
8883         TALLOC_CTX *_mem_save_subnetname_0;
8884         TALLOC_CTX *_mem_save_subnetname_1;
8885         if (ndr_flags & NDR_SCALARS) {
8886                 NDR_CHECK(ndr_pull_align(ndr, 4));
8887                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8888                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
8889                 if (_ptr_sitename) {
8890                         NDR_PULL_ALLOC(ndr, r->sitename);
8891                 } else {
8892                         r->sitename = NULL;
8893                 }
8894                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
8895                 if (_ptr_subnetname) {
8896                         NDR_PULL_ALLOC(ndr, r->subnetname);
8897                 } else {
8898                         r->subnetname = NULL;
8899                 }
8900         }
8901         if (ndr_flags & NDR_BUFFERS) {
8902                 if (r->sitename) {
8903                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
8904                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8905                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
8906                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
8907                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
8908                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8909                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8910                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8911                         }
8912                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8913                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8914                         }
8915                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
8916                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
8917                 }
8918                 if (r->subnetname) {
8919                         _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
8920                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
8921                         NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
8922                         NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
8923                         _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
8924                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
8925                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8926                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
8927                         }
8928                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8929                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
8930                         }
8931                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
8932                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
8933                 }
8934                 if (r->sitename) {
8935                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
8936                 }
8937                 if (r->subnetname) {
8938                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
8939                 }
8940         }
8941         return NDR_ERR_SUCCESS;
8942 }
8943
8944 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
8945 {
8946         uint32_t cntr_sitename_1;
8947         uint32_t cntr_subnetname_1;
8948         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
8949         ndr->depth++;
8950         ndr_print_uint32(ndr, "count", r->count);
8951         ndr_print_ptr(ndr, "sitename", r->sitename);
8952         ndr->depth++;
8953         if (r->sitename) {
8954                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
8955                 ndr->depth++;
8956                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
8957                         char *idx_1=NULL;
8958                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
8959                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
8960                                 free(idx_1);
8961                         }
8962                 }
8963                 ndr->depth--;
8964         }
8965         ndr->depth--;
8966         ndr_print_ptr(ndr, "subnetname", r->subnetname);
8967         ndr->depth++;
8968         if (r->subnetname) {
8969                 ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", (int)r->count);
8970                 ndr->depth++;
8971                 for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
8972                         char *idx_1=NULL;
8973                         if (asprintf(&idx_1, "[%d]", cntr_subnetname_1) != -1) {
8974                                 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
8975                                 free(idx_1);
8976                         }
8977                 }
8978                 ndr->depth--;
8979         }
8980         ndr->depth--;
8981         ndr->depth--;
8982 }
8983
8984 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
8985 {
8986         uint32_t cntr_sites_1;
8987         if (ndr_flags & NDR_SCALARS) {
8988                 NDR_CHECK(ndr_push_align(ndr, 4));
8989                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
8990                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
8991         }
8992         if (ndr_flags & NDR_BUFFERS) {
8993                 if (r->sites) {
8994                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
8995                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8996                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
8997                         }
8998                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8999                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
9000                         }
9001                 }
9002         }
9003         return NDR_ERR_SUCCESS;
9004 }
9005
9006 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
9007 {
9008         uint32_t _ptr_sites;
9009         uint32_t cntr_sites_1;
9010         TALLOC_CTX *_mem_save_sites_0;
9011         TALLOC_CTX *_mem_save_sites_1;
9012         if (ndr_flags & NDR_SCALARS) {
9013                 NDR_CHECK(ndr_pull_align(ndr, 4));
9014                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
9015                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
9016                 if (_ptr_sites) {
9017                         NDR_PULL_ALLOC(ndr, r->sites);
9018                 } else {
9019                         r->sites = NULL;
9020                 }
9021         }
9022         if (ndr_flags & NDR_BUFFERS) {
9023                 if (r->sites) {
9024                         _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
9025                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
9026                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
9027                         NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
9028                         _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
9029                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
9030                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
9031                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
9032                         }
9033                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
9034                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
9035                         }
9036                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
9037                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
9038                 }
9039                 if (r->sites) {
9040                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
9041                 }
9042         }
9043         return NDR_ERR_SUCCESS;
9044 }
9045
9046 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
9047 {
9048         uint32_t cntr_sites_1;
9049         ndr_print_struct(ndr, name, "DcSitesCtr");
9050         ndr->depth++;
9051         ndr_print_uint32(ndr, "num_sites", r->num_sites);
9052         ndr_print_ptr(ndr, "sites", r->sites);
9053         ndr->depth++;
9054         if (r->sites) {
9055                 ndr->print(ndr, "%s: ARRAY(%d)", "sites", (int)r->num_sites);
9056                 ndr->depth++;
9057                 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
9058                         char *idx_1=NULL;
9059                         if (asprintf(&idx_1, "[%d]", cntr_sites_1) != -1) {
9060                                 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
9061                                 free(idx_1);
9062                         }
9063                 }
9064                 ndr->depth--;
9065         }
9066         ndr->depth--;
9067         ndr->depth--;
9068 }
9069
9070 static enum ndr_err_code ndr_push_netr_TrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_TrustInfo *r)
9071 {
9072         uint32_t cntr_data_1;
9073         uint32_t cntr_entries_1;
9074         if (ndr_flags & NDR_SCALARS) {
9075                 NDR_CHECK(ndr_push_align(ndr, 4));
9076                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9077                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
9078                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entry_count));
9079                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
9080         }
9081         if (ndr_flags & NDR_BUFFERS) {
9082                 if (r->data) {
9083                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9084                         for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
9085                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data[cntr_data_1]));
9086                         }
9087                 }
9088                 if (r->entries) {
9089                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9090                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
9091                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
9092                         }
9093                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
9094                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
9095                         }
9096                 }
9097         }
9098         return NDR_ERR_SUCCESS;
9099 }
9100
9101 static enum ndr_err_code ndr_pull_netr_TrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_TrustInfo *r)
9102 {
9103         uint32_t _ptr_data;
9104         uint32_t cntr_data_1;
9105         TALLOC_CTX *_mem_save_data_0;
9106         TALLOC_CTX *_mem_save_data_1;
9107         uint32_t _ptr_entries;
9108         uint32_t cntr_entries_1;
9109         TALLOC_CTX *_mem_save_entries_0;
9110         TALLOC_CTX *_mem_save_entries_1;
9111         if (ndr_flags & NDR_SCALARS) {
9112                 NDR_CHECK(ndr_pull_align(ndr, 4));
9113                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
9114                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
9115                 if (_ptr_data) {
9116                         NDR_PULL_ALLOC(ndr, r->data);
9117                 } else {
9118                         r->data = NULL;
9119                 }
9120                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->entry_count));
9121                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
9122                 if (_ptr_entries) {
9123                         NDR_PULL_ALLOC(ndr, r->entries);
9124                 } else {
9125                         r->entries = NULL;
9126                 }
9127         }
9128         if (ndr_flags & NDR_BUFFERS) {
9129                 if (r->data) {
9130                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
9131                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
9132                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
9133                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
9134                         _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
9135                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
9136                         for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
9137                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
9138                         }
9139                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
9140                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
9141                 }
9142                 if (r->entries) {
9143                         _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9144                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
9145                         NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
9146                         NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
9147                         _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
9148                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
9149                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
9150                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
9151                         }
9152                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
9153                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
9154                         }
9155                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
9156                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
9157                 }
9158                 if (r->data) {
9159                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->count));
9160                 }
9161                 if (r->entries) {
9162                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
9163                 }
9164         }
9165         return NDR_ERR_SUCCESS;
9166 }
9167
9168 _PUBLIC_ void ndr_print_netr_TrustInfo(struct ndr_print *ndr, const char *name, const struct netr_TrustInfo *r)
9169 {
9170         uint32_t cntr_data_1;
9171         uint32_t cntr_entries_1;
9172         ndr_print_struct(ndr, name, "netr_TrustInfo");
9173         ndr->depth++;
9174         ndr_print_uint32(ndr, "count", r->count);
9175         ndr_print_ptr(ndr, "data", r->data);
9176         ndr->depth++;
9177         if (r->data) {
9178                 ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)r->count);
9179                 ndr->depth++;
9180                 for (cntr_data_1=0;cntr_data_1<r->count;cntr_data_1++) {
9181                         char *idx_1=NULL;
9182                         if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
9183                                 ndr_print_uint32(ndr, "data", r->data[cntr_data_1]);
9184                                 free(idx_1);
9185                         }
9186                 }
9187                 ndr->depth--;
9188         }
9189         ndr->depth--;
9190         ndr_print_uint32(ndr, "entry_count", r->entry_count);
9191         ndr_print_ptr(ndr, "entries", r->entries);
9192         ndr->depth++;
9193         if (r->entries) {
9194                 ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
9195                 ndr->depth++;
9196                 for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
9197                         char *idx_1=NULL;
9198                         if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
9199                                 ndr_print_lsa_String(ndr, "entries", &r->entries[cntr_entries_1]);
9200                                 free(idx_1);
9201                         }
9202                 }
9203                 ndr->depth--;
9204         }
9205         ndr->depth--;
9206         ndr->depth--;
9207 }
9208
9209 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
9210 {
9211         if (flags & NDR_IN) {
9212                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9213                 if (r->in.server_name) {
9214                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9215                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9216                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9217                         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));
9218                 }
9219                 if (r->in.account_name == NULL) {
9220                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9221                 }
9222                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9223                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9224                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9225                 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));
9226                 if (r->in.workstation == NULL) {
9227                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9228                 }
9229                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, 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.workstation, CH_UTF16)));
9232                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9233         }
9234         if (flags & NDR_OUT) {
9235                 if (r->out.info == NULL) {
9236                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9237                 }
9238                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
9239                 if (*r->out.info) {
9240                         NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
9241                 }
9242                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9243         }
9244         return NDR_ERR_SUCCESS;
9245 }
9246
9247 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
9248 {
9249         uint32_t _ptr_server_name;
9250         uint32_t _ptr_info;
9251         TALLOC_CTX *_mem_save_server_name_0;
9252         TALLOC_CTX *_mem_save_info_0;
9253         TALLOC_CTX *_mem_save_info_1;
9254         if (flags & NDR_IN) {
9255                 ZERO_STRUCT(r->out);
9256
9257                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9258                 if (_ptr_server_name) {
9259                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9260                 } else {
9261                         r->in.server_name = NULL;
9262                 }
9263                 if (r->in.server_name) {
9264                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9265                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9266                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9267                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9268                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9269                                 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));
9270                         }
9271                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9272                         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));
9273                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9274                 }
9275                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9276                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9277                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
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.account_name), ndr_get_array_length(ndr, &r->in.account_name));
9279                 }
9280                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9281                 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));
9282                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
9283                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
9284                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
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.workstation), ndr_get_array_length(ndr, &r->in.workstation));
9286                 }
9287                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
9288                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
9289                 NDR_PULL_ALLOC(ndr, r->out.info);
9290                 ZERO_STRUCTP(r->out.info);
9291         }
9292         if (flags & NDR_OUT) {
9293                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9294                         NDR_PULL_ALLOC(ndr, r->out.info);
9295                 }
9296                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9297                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9298                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
9299                 if (_ptr_info) {
9300                         NDR_PULL_ALLOC(ndr, *r->out.info);
9301                 } else {
9302                         *r->out.info = NULL;
9303                 }
9304                 if (*r->out.info) {
9305                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
9306                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
9307                         NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
9308                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
9309                 }
9310                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9311                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9312         }
9313         return NDR_ERR_SUCCESS;
9314 }
9315
9316 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
9317 {
9318         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
9319         ndr->depth++;
9320         if (flags & NDR_SET_VALUES) {
9321                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9322         }
9323         if (flags & NDR_IN) {
9324                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
9325                 ndr->depth++;
9326                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9327                 ndr->depth++;
9328                 if (r->in.server_name) {
9329                         ndr_print_string(ndr, "server_name", r->in.server_name);
9330                 }
9331                 ndr->depth--;
9332                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
9333                 ndr->depth++;
9334                 ndr_print_string(ndr, "account_name", r->in.account_name);
9335                 ndr->depth--;
9336                 ndr_print_ptr(ndr, "workstation", r->in.workstation);
9337                 ndr->depth++;
9338                 ndr_print_string(ndr, "workstation", r->in.workstation);
9339                 ndr->depth--;
9340                 ndr->depth--;
9341         }
9342         if (flags & NDR_OUT) {
9343                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
9344                 ndr->depth++;
9345                 ndr_print_ptr(ndr, "info", r->out.info);
9346                 ndr->depth++;
9347                 ndr_print_ptr(ndr, "info", *r->out.info);
9348                 ndr->depth++;
9349                 if (*r->out.info) {
9350                         ndr_print_netr_UasInfo(ndr, "info", *r->out.info);
9351                 }
9352                 ndr->depth--;
9353                 ndr->depth--;
9354                 ndr_print_WERROR(ndr, "result", r->out.result);
9355                 ndr->depth--;
9356         }
9357         ndr->depth--;
9358 }
9359
9360 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
9361 {
9362         if (flags & NDR_IN) {
9363                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9364                 if (r->in.server_name) {
9365                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9366                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9367                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9368                         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));
9369                 }
9370                 if (r->in.account_name == NULL) {
9371                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9372                 }
9373                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9374                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9375                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9376                 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));
9377                 if (r->in.workstation == NULL) {
9378                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9379                 }
9380                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
9381                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9382                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
9383                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9384         }
9385         if (flags & NDR_OUT) {
9386                 if (r->out.info == NULL) {
9387                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9388                 }
9389                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
9390                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9391         }
9392         return NDR_ERR_SUCCESS;
9393 }
9394
9395 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
9396 {
9397         uint32_t _ptr_server_name;
9398         TALLOC_CTX *_mem_save_server_name_0;
9399         TALLOC_CTX *_mem_save_info_0;
9400         if (flags & NDR_IN) {
9401                 ZERO_STRUCT(r->out);
9402
9403                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9404                 if (_ptr_server_name) {
9405                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9406                 } else {
9407                         r->in.server_name = NULL;
9408                 }
9409                 if (r->in.server_name) {
9410                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9411                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9412                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9413                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9414                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9415                                 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));
9416                         }
9417                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9418                         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));
9419                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9420                 }
9421                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9422                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9423                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9424                         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));
9425                 }
9426                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9427                 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));
9428                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
9429                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
9430                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
9431                         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));
9432                 }
9433                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
9434                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
9435                 NDR_PULL_ALLOC(ndr, r->out.info);
9436                 ZERO_STRUCTP(r->out.info);
9437         }
9438         if (flags & NDR_OUT) {
9439                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9440                         NDR_PULL_ALLOC(ndr, r->out.info);
9441                 }
9442                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9443                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9444                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
9445                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9446                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9447         }
9448         return NDR_ERR_SUCCESS;
9449 }
9450
9451 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
9452 {
9453         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
9454         ndr->depth++;
9455         if (flags & NDR_SET_VALUES) {
9456                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9457         }
9458         if (flags & NDR_IN) {
9459                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
9460                 ndr->depth++;
9461                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9462                 ndr->depth++;
9463                 if (r->in.server_name) {
9464                         ndr_print_string(ndr, "server_name", r->in.server_name);
9465                 }
9466                 ndr->depth--;
9467                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
9468                 ndr->depth++;
9469                 ndr_print_string(ndr, "account_name", r->in.account_name);
9470                 ndr->depth--;
9471                 ndr_print_ptr(ndr, "workstation", r->in.workstation);
9472                 ndr->depth++;
9473                 ndr_print_string(ndr, "workstation", r->in.workstation);
9474                 ndr->depth--;
9475                 ndr->depth--;
9476         }
9477         if (flags & NDR_OUT) {
9478                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
9479                 ndr->depth++;
9480                 ndr_print_ptr(ndr, "info", r->out.info);
9481                 ndr->depth++;
9482                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
9483                 ndr->depth--;
9484                 ndr_print_WERROR(ndr, "result", r->out.result);
9485                 ndr->depth--;
9486         }
9487         ndr->depth--;
9488 }
9489
9490 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
9491 {
9492         if (flags & NDR_IN) {
9493                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9494                 if (r->in.server_name) {
9495                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9496                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9497                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9498                         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));
9499                 }
9500                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
9501                 if (r->in.computer_name) {
9502                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9503                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9504                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9505                         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));
9506                 }
9507                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
9508                 if (r->in.credential) {
9509                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9510                 }
9511                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
9512                 if (r->in.return_authenticator) {
9513                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9514                 }
9515                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
9516                 if (r->in.logon == NULL) {
9517                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9518                 }
9519                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
9520                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
9521                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
9522         }
9523         if (flags & NDR_OUT) {
9524                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
9525                 if (r->out.return_authenticator) {
9526                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9527                 }
9528                 if (r->out.validation == NULL) {
9529                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9530                 }
9531                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
9532                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
9533                 if (r->out.authoritative == NULL) {
9534                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9535                 }
9536                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
9537                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9538         }
9539         return NDR_ERR_SUCCESS;
9540 }
9541
9542 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
9543 {
9544         uint32_t _ptr_server_name;
9545         uint32_t _ptr_computer_name;
9546         uint32_t _ptr_credential;
9547         uint32_t _ptr_return_authenticator;
9548         TALLOC_CTX *_mem_save_server_name_0;
9549         TALLOC_CTX *_mem_save_computer_name_0;
9550         TALLOC_CTX *_mem_save_credential_0;
9551         TALLOC_CTX *_mem_save_return_authenticator_0;
9552         TALLOC_CTX *_mem_save_logon_0;
9553         TALLOC_CTX *_mem_save_validation_0;
9554         TALLOC_CTX *_mem_save_authoritative_0;
9555         if (flags & NDR_IN) {
9556                 ZERO_STRUCT(r->out);
9557
9558                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9559                 if (_ptr_server_name) {
9560                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9561                 } else {
9562                         r->in.server_name = NULL;
9563                 }
9564                 if (r->in.server_name) {
9565                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9566                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9567                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9568                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9569                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9570                                 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));
9571                         }
9572                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9573                         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));
9574                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9575                 }
9576                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
9577                 if (_ptr_computer_name) {
9578                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
9579                 } else {
9580                         r->in.computer_name = NULL;
9581                 }
9582                 if (r->in.computer_name) {
9583                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9584                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
9585                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9586                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9587                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9588                                 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));
9589                         }
9590                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9591                         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));
9592                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
9593                 }
9594                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
9595                 if (_ptr_credential) {
9596                         NDR_PULL_ALLOC(ndr, r->in.credential);
9597                 } else {
9598                         r->in.credential = NULL;
9599                 }
9600                 if (r->in.credential) {
9601                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9602                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
9603                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9604                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
9605                 }
9606                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9607                 if (_ptr_return_authenticator) {
9608                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9609                 } else {
9610                         r->in.return_authenticator = NULL;
9611                 }
9612                 if (r->in.return_authenticator) {
9613                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9614                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
9615                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9616                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9617                 }
9618                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
9619                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9620                         NDR_PULL_ALLOC(ndr, r->in.logon);
9621                 }
9622                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
9623                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
9624                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
9625                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
9626                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
9627                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
9628                 NDR_PULL_ALLOC(ndr, r->out.validation);
9629                 ZERO_STRUCTP(r->out.validation);
9630                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
9631                 ZERO_STRUCTP(r->out.authoritative);
9632         }
9633         if (flags & NDR_OUT) {
9634                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9635                 if (_ptr_return_authenticator) {
9636                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9637                 } else {
9638                         r->out.return_authenticator = NULL;
9639                 }
9640                 if (r->out.return_authenticator) {
9641                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9642                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
9643                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9644                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9645                 }
9646                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9647                         NDR_PULL_ALLOC(ndr, r->out.validation);
9648                 }
9649                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
9650                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
9651                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
9652                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
9653                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
9654                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9655                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
9656                 }
9657                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
9658                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
9659                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
9660                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
9661                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9662         }
9663         return NDR_ERR_SUCCESS;
9664 }
9665
9666 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
9667 {
9668         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
9669         ndr->depth++;
9670         if (flags & NDR_SET_VALUES) {
9671                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9672         }
9673         if (flags & NDR_IN) {
9674                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
9675                 ndr->depth++;
9676                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9677                 ndr->depth++;
9678                 if (r->in.server_name) {
9679                         ndr_print_string(ndr, "server_name", r->in.server_name);
9680                 }
9681                 ndr->depth--;
9682                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
9683                 ndr->depth++;
9684                 if (r->in.computer_name) {
9685                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
9686                 }
9687                 ndr->depth--;
9688                 ndr_print_ptr(ndr, "credential", r->in.credential);
9689                 ndr->depth++;
9690                 if (r->in.credential) {
9691                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9692                 }
9693                 ndr->depth--;
9694                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9695                 ndr->depth++;
9696                 if (r->in.return_authenticator) {
9697                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9698                 }
9699                 ndr->depth--;
9700                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
9701                 ndr_print_ptr(ndr, "logon", r->in.logon);
9702                 ndr->depth++;
9703                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
9704                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
9705                 ndr->depth--;
9706                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
9707                 ndr->depth--;
9708         }
9709         if (flags & NDR_OUT) {
9710                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
9711                 ndr->depth++;
9712                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9713                 ndr->depth++;
9714                 if (r->out.return_authenticator) {
9715                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9716                 }
9717                 ndr->depth--;
9718                 ndr_print_ptr(ndr, "validation", r->out.validation);
9719                 ndr->depth++;
9720                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
9721                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
9722                 ndr->depth--;
9723                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
9724                 ndr->depth++;
9725                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
9726                 ndr->depth--;
9727                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9728                 ndr->depth--;
9729         }
9730         ndr->depth--;
9731 }
9732
9733 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
9734 {
9735         if (flags & NDR_IN) {
9736                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9737                 if (r->in.server_name) {
9738                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9739                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9740                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9741                         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));
9742                 }
9743                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
9744                 if (r->in.computer_name) {
9745                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9746                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9747                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9748                         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));
9749                 }
9750                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
9751                 if (r->in.credential) {
9752                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9753                 }
9754                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
9755                 if (r->in.return_authenticator) {
9756                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9757                 }
9758                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
9759                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
9760                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
9761         }
9762         if (flags & NDR_OUT) {
9763                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
9764                 if (r->out.return_authenticator) {
9765                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9766                 }
9767                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9768         }
9769         return NDR_ERR_SUCCESS;
9770 }
9771
9772 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
9773 {
9774         uint32_t _ptr_server_name;
9775         uint32_t _ptr_computer_name;
9776         uint32_t _ptr_credential;
9777         uint32_t _ptr_return_authenticator;
9778         TALLOC_CTX *_mem_save_server_name_0;
9779         TALLOC_CTX *_mem_save_computer_name_0;
9780         TALLOC_CTX *_mem_save_credential_0;
9781         TALLOC_CTX *_mem_save_return_authenticator_0;
9782         if (flags & NDR_IN) {
9783                 ZERO_STRUCT(r->out);
9784
9785                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9786                 if (_ptr_server_name) {
9787                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9788                 } else {
9789                         r->in.server_name = NULL;
9790                 }
9791                 if (r->in.server_name) {
9792                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9793                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9794                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9795                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9796                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9797                                 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));
9798                         }
9799                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9800                         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));
9801                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9802                 }
9803                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
9804                 if (_ptr_computer_name) {
9805                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
9806                 } else {
9807                         r->in.computer_name = NULL;
9808                 }
9809                 if (r->in.computer_name) {
9810                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9811                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
9812                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9813                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9814                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9815                                 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));
9816                         }
9817                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9818                         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));
9819                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
9820                 }
9821                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
9822                 if (_ptr_credential) {
9823                         NDR_PULL_ALLOC(ndr, r->in.credential);
9824                 } else {
9825                         r->in.credential = NULL;
9826                 }
9827                 if (r->in.credential) {
9828                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9829                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
9830                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9831                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
9832                 }
9833                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9834                 if (_ptr_return_authenticator) {
9835                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9836                 } else {
9837                         r->in.return_authenticator = NULL;
9838                 }
9839                 if (r->in.return_authenticator) {
9840                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9841                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
9842                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9843                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9844                 }
9845                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
9846                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
9847                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
9848         }
9849         if (flags & NDR_OUT) {
9850                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9851                 if (_ptr_return_authenticator) {
9852                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9853                 } else {
9854                         r->out.return_authenticator = NULL;
9855                 }
9856                 if (r->out.return_authenticator) {
9857                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9858                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
9859                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9860                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9861                 }
9862                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9863         }
9864         return NDR_ERR_SUCCESS;
9865 }
9866
9867 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
9868 {
9869         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
9870         ndr->depth++;
9871         if (flags & NDR_SET_VALUES) {
9872                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9873         }
9874         if (flags & NDR_IN) {
9875                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
9876                 ndr->depth++;
9877                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9878                 ndr->depth++;
9879                 if (r->in.server_name) {
9880                         ndr_print_string(ndr, "server_name", r->in.server_name);
9881                 }
9882                 ndr->depth--;
9883                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
9884                 ndr->depth++;
9885                 if (r->in.computer_name) {
9886                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
9887                 }
9888                 ndr->depth--;
9889                 ndr_print_ptr(ndr, "credential", r->in.credential);
9890                 ndr->depth++;
9891                 if (r->in.credential) {
9892                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9893                 }
9894                 ndr->depth--;
9895                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9896                 ndr->depth++;
9897                 if (r->in.return_authenticator) {
9898                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9899                 }
9900                 ndr->depth--;
9901                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
9902                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
9903                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
9904                 ndr->depth--;
9905         }
9906         if (flags & NDR_OUT) {
9907                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
9908                 ndr->depth++;
9909                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9910                 ndr->depth++;
9911                 if (r->out.return_authenticator) {
9912                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9913                 }
9914                 ndr->depth--;
9915                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9916                 ndr->depth--;
9917         }
9918         ndr->depth--;
9919 }
9920
9921 _PUBLIC_ enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
9922 {
9923         if (flags & NDR_IN) {
9924                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9925                 if (r->in.server_name) {
9926                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9927                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9928                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9929                         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));
9930                 }
9931                 if (r->in.computer_name == NULL) {
9932                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9933                 }
9934                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9935                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9936                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9937                 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));
9938                 if (r->in.credentials == NULL) {
9939                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9940                 }
9941                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9942         }
9943         if (flags & NDR_OUT) {
9944                 if (r->out.return_credentials == NULL) {
9945                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9946                 }
9947                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9948                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9949         }
9950         return NDR_ERR_SUCCESS;
9951 }
9952
9953 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
9954 {
9955         uint32_t _ptr_server_name;
9956         TALLOC_CTX *_mem_save_server_name_0;
9957         TALLOC_CTX *_mem_save_credentials_0;
9958         TALLOC_CTX *_mem_save_return_credentials_0;
9959         if (flags & NDR_IN) {
9960                 ZERO_STRUCT(r->out);
9961
9962                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9963                 if (_ptr_server_name) {
9964                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9965                 } else {
9966                         r->in.server_name = NULL;
9967                 }
9968                 if (r->in.server_name) {
9969                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9970                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9971                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9972                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9973                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9974                                 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));
9975                         }
9976                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9977                         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));
9978                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9979                 }
9980                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9981                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9982                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9983                         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));
9984                 }
9985                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9986                 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));
9987                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9988                         NDR_PULL_ALLOC(ndr, r->in.credentials);
9989                 }
9990                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9991                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
9992                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9993                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9994                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9995                 ZERO_STRUCTP(r->out.return_credentials);
9996         }
9997         if (flags & NDR_OUT) {
9998                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9999                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10000                 }
10001                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10002                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
10003                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10004                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10005                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10006         }
10007         return NDR_ERR_SUCCESS;
10008 }
10009
10010 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
10011 {
10012         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
10013         ndr->depth++;
10014         if (flags & NDR_SET_VALUES) {
10015                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10016         }
10017         if (flags & NDR_IN) {
10018                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
10019                 ndr->depth++;
10020                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10021                 ndr->depth++;
10022                 if (r->in.server_name) {
10023                         ndr_print_string(ndr, "server_name", r->in.server_name);
10024                 }
10025                 ndr->depth--;
10026                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
10027                 ndr->depth++;
10028                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10029                 ndr->depth--;
10030                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10031                 ndr->depth++;
10032                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10033                 ndr->depth--;
10034                 ndr->depth--;
10035         }
10036         if (flags & NDR_OUT) {
10037                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
10038                 ndr->depth++;
10039                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
10040                 ndr->depth++;
10041                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
10042                 ndr->depth--;
10043                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10044                 ndr->depth--;
10045         }
10046         ndr->depth--;
10047 }
10048
10049 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
10050 {
10051         if (flags & NDR_IN) {
10052                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10053                 if (r->in.server_name) {
10054                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10055                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10056                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10057                         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));
10058                 }
10059                 if (r->in.account_name == NULL) {
10060                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10061                 }
10062                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10063                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10064                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10065                 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));
10066                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10067                 if (r->in.computer_name == NULL) {
10068                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10069                 }
10070                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10071                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10072                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10073                 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));
10074                 if (r->in.credentials == NULL) {
10075                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10076                 }
10077                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10078         }
10079         if (flags & NDR_OUT) {
10080                 if (r->out.return_credentials == NULL) {
10081                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10082                 }
10083                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10084                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10085         }
10086         return NDR_ERR_SUCCESS;
10087 }
10088
10089 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
10090 {
10091         uint32_t _ptr_server_name;
10092         TALLOC_CTX *_mem_save_server_name_0;
10093         TALLOC_CTX *_mem_save_credentials_0;
10094         TALLOC_CTX *_mem_save_return_credentials_0;
10095         if (flags & NDR_IN) {
10096                 ZERO_STRUCT(r->out);
10097
10098                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10099                 if (_ptr_server_name) {
10100                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10101                 } else {
10102                         r->in.server_name = NULL;
10103                 }
10104                 if (r->in.server_name) {
10105                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10106                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10107                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10108                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10109                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10110                                 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));
10111                         }
10112                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10113                         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));
10114                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10115                 }
10116                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10117                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10118                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10119                         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));
10120                 }
10121                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10122                 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));
10123                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10124                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10125                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10126                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10127                         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));
10128                 }
10129                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10130                 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));
10131                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10132                         NDR_PULL_ALLOC(ndr, r->in.credentials);
10133                 }
10134                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10135                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10136                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10137                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10138                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10139                 ZERO_STRUCTP(r->out.return_credentials);
10140         }
10141         if (flags & NDR_OUT) {
10142                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10143                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10144                 }
10145                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10146                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
10147                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10148                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10149                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10150         }
10151         return NDR_ERR_SUCCESS;
10152 }
10153
10154 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
10155 {
10156         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
10157         ndr->depth++;
10158         if (flags & NDR_SET_VALUES) {
10159                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10160         }
10161         if (flags & NDR_IN) {
10162                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
10163                 ndr->depth++;
10164                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10165                 ndr->depth++;
10166                 if (r->in.server_name) {
10167                         ndr_print_string(ndr, "server_name", r->in.server_name);
10168                 }
10169                 ndr->depth--;
10170                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
10171                 ndr->depth++;
10172                 ndr_print_string(ndr, "account_name", r->in.account_name);
10173                 ndr->depth--;
10174                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10175                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
10176                 ndr->depth++;
10177                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10178                 ndr->depth--;
10179                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10180                 ndr->depth++;
10181                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10182                 ndr->depth--;
10183                 ndr->depth--;
10184         }
10185         if (flags & NDR_OUT) {
10186                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
10187                 ndr->depth++;
10188                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
10189                 ndr->depth++;
10190                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
10191                 ndr->depth--;
10192                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10193                 ndr->depth--;
10194         }
10195         ndr->depth--;
10196 }
10197
10198 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
10199 {
10200         if (flags & NDR_IN) {
10201                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10202                 if (r->in.server_name) {
10203                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10204                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10205                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10206                         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));
10207                 }
10208                 if (r->in.account_name == NULL) {
10209                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10210                 }
10211                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10212                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10213                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10214                 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));
10215                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10216                 if (r->in.computer_name == NULL) {
10217                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10218                 }
10219                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10220                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10221                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10222                 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));
10223                 if (r->in.credential == NULL) {
10224                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10225                 }
10226                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10227                 if (r->in.new_password == NULL) {
10228                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10229                 }
10230                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
10231         }
10232         if (flags & NDR_OUT) {
10233                 if (r->out.return_authenticator == NULL) {
10234                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10235                 }
10236                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10237                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10238         }
10239         return NDR_ERR_SUCCESS;
10240 }
10241
10242 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
10243 {
10244         uint32_t _ptr_server_name;
10245         TALLOC_CTX *_mem_save_server_name_0;
10246         TALLOC_CTX *_mem_save_credential_0;
10247         TALLOC_CTX *_mem_save_return_authenticator_0;
10248         TALLOC_CTX *_mem_save_new_password_0;
10249         if (flags & NDR_IN) {
10250                 ZERO_STRUCT(r->out);
10251
10252                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10253                 if (_ptr_server_name) {
10254                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10255                 } else {
10256                         r->in.server_name = NULL;
10257                 }
10258                 if (r->in.server_name) {
10259                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10260                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10261                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10262                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10263                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10264                                 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));
10265                         }
10266                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10267                         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));
10268                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10269                 }
10270                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10271                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10272                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10273                         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));
10274                 }
10275                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10276                 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));
10277                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10278                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10279                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10280                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10281                         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));
10282                 }
10283                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10284                 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));
10285                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10286                         NDR_PULL_ALLOC(ndr, r->in.credential);
10287                 }
10288                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10289                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10290                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10291                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10292                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10293                         NDR_PULL_ALLOC(ndr, r->in.new_password);
10294                 }
10295                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
10296                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
10297                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
10298                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
10299                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10300                 ZERO_STRUCTP(r->out.return_authenticator);
10301         }
10302         if (flags & NDR_OUT) {
10303                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10304                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10305                 }
10306                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10307                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10308                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10309                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10310                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10311         }
10312         return NDR_ERR_SUCCESS;
10313 }
10314
10315 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
10316 {
10317         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
10318         ndr->depth++;
10319         if (flags & NDR_SET_VALUES) {
10320                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10321         }
10322         if (flags & NDR_IN) {
10323                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
10324                 ndr->depth++;
10325                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10326                 ndr->depth++;
10327                 if (r->in.server_name) {
10328                         ndr_print_string(ndr, "server_name", r->in.server_name);
10329                 }
10330                 ndr->depth--;
10331                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
10332                 ndr->depth++;
10333                 ndr_print_string(ndr, "account_name", r->in.account_name);
10334                 ndr->depth--;
10335                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10336                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
10337                 ndr->depth++;
10338                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10339                 ndr->depth--;
10340                 ndr_print_ptr(ndr, "credential", r->in.credential);
10341                 ndr->depth++;
10342                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10343                 ndr->depth--;
10344                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
10345                 ndr->depth++;
10346                 ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
10347                 ndr->depth--;
10348                 ndr->depth--;
10349         }
10350         if (flags & NDR_OUT) {
10351                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
10352                 ndr->depth++;
10353                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10354                 ndr->depth++;
10355                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10356                 ndr->depth--;
10357                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10358                 ndr->depth--;
10359         }
10360         ndr->depth--;
10361 }
10362
10363 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
10364 {
10365         if (flags & NDR_IN) {
10366                 if (r->in.logon_server == NULL) {
10367                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10368                 }
10369                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10370                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10371                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10372                 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));
10373                 if (r->in.computername == NULL) {
10374                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10375                 }
10376                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10377                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10378                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10379                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10380                 if (r->in.credential == NULL) {
10381                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10382                 }
10383                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10384                 if (r->in.return_authenticator == NULL) {
10385                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10386                 }
10387                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10388                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10389                 if (r->in.sequence_num == NULL) {
10390                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10391                 }
10392                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
10393                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10394         }
10395         if (flags & NDR_OUT) {
10396                 if (r->out.return_authenticator == NULL) {
10397                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10398                 }
10399                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10400                 if (r->out.sequence_num == NULL) {
10401                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10402                 }
10403                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
10404                 if (r->out.delta_enum_array == NULL) {
10405                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10406                 }
10407                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10408                 if (*r->out.delta_enum_array) {
10409                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10410                 }
10411                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10412         }
10413         return NDR_ERR_SUCCESS;
10414 }
10415
10416 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
10417 {
10418         uint32_t _ptr_delta_enum_array;
10419         TALLOC_CTX *_mem_save_credential_0;
10420         TALLOC_CTX *_mem_save_return_authenticator_0;
10421         TALLOC_CTX *_mem_save_sequence_num_0;
10422         TALLOC_CTX *_mem_save_delta_enum_array_0;
10423         TALLOC_CTX *_mem_save_delta_enum_array_1;
10424         if (flags & NDR_IN) {
10425                 ZERO_STRUCT(r->out);
10426
10427                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10428                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10429                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10430                         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));
10431                 }
10432                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10433                 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));
10434                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10435                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10436                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10437                         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));
10438                 }
10439                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10440                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10441                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10442                         NDR_PULL_ALLOC(ndr, r->in.credential);
10443                 }
10444                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10445                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10446                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10447                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10448                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10449                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10450                 }
10451                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10452                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10453                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10454                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10455                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10456                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10457                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
10458                 }
10459                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
10460                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
10461                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
10462                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
10463                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10464                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10465                 *r->out.return_authenticator = *r->in.return_authenticator;
10466                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
10467                 *r->out.sequence_num = *r->in.sequence_num;
10468                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10469                 ZERO_STRUCTP(r->out.delta_enum_array);
10470         }
10471         if (flags & NDR_OUT) {
10472                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10473                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10474                 }
10475                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10476                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10477                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10478                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10479                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10480                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
10481                 }
10482                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
10483                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
10484                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
10485                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
10486                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10487                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10488                 }
10489                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10490                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10491                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10492                 if (_ptr_delta_enum_array) {
10493                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10494                 } else {
10495                         *r->out.delta_enum_array = NULL;
10496                 }
10497                 if (*r->out.delta_enum_array) {
10498                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10499                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10500                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10501                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10502                 }
10503                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10504                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10505         }
10506         return NDR_ERR_SUCCESS;
10507 }
10508
10509 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
10510 {
10511         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
10512         ndr->depth++;
10513         if (flags & NDR_SET_VALUES) {
10514                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10515         }
10516         if (flags & NDR_IN) {
10517                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
10518                 ndr->depth++;
10519                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10520                 ndr->depth++;
10521                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10522                 ndr->depth--;
10523                 ndr_print_ptr(ndr, "computername", r->in.computername);
10524                 ndr->depth++;
10525                 ndr_print_string(ndr, "computername", r->in.computername);
10526                 ndr->depth--;
10527                 ndr_print_ptr(ndr, "credential", r->in.credential);
10528                 ndr->depth++;
10529                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10530                 ndr->depth--;
10531                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10532                 ndr->depth++;
10533                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10534                 ndr->depth--;
10535                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10536                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
10537                 ndr->depth++;
10538                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
10539                 ndr->depth--;
10540                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10541                 ndr->depth--;
10542         }
10543         if (flags & NDR_OUT) {
10544                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
10545                 ndr->depth++;
10546                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10547                 ndr->depth++;
10548                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10549                 ndr->depth--;
10550                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
10551                 ndr->depth++;
10552                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
10553                 ndr->depth--;
10554                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10555                 ndr->depth++;
10556                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10557                 ndr->depth++;
10558                 if (*r->out.delta_enum_array) {
10559                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10560                 }
10561                 ndr->depth--;
10562                 ndr->depth--;
10563                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10564                 ndr->depth--;
10565         }
10566         ndr->depth--;
10567 }
10568
10569 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
10570 {
10571         if (flags & NDR_IN) {
10572                 if (r->in.logon_server == NULL) {
10573                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10574                 }
10575                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10576                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10577                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10578                 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));
10579                 if (r->in.computername == NULL) {
10580                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10581                 }
10582                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10583                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10584                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10585                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10586                 if (r->in.credential == NULL) {
10587                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10588                 }
10589                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10590                 if (r->in.return_authenticator == NULL) {
10591                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10592                 }
10593                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10594                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10595                 if (r->in.sync_context == NULL) {
10596                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10597                 }
10598                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10599                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10600         }
10601         if (flags & NDR_OUT) {
10602                 if (r->out.return_authenticator == NULL) {
10603                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10604                 }
10605                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10606                 if (r->out.sync_context == NULL) {
10607                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10608                 }
10609                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10610                 if (r->out.delta_enum_array == NULL) {
10611                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10612                 }
10613                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10614                 if (*r->out.delta_enum_array) {
10615                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10616                 }
10617                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10618         }
10619         return NDR_ERR_SUCCESS;
10620 }
10621
10622 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
10623 {
10624         uint32_t _ptr_delta_enum_array;
10625         TALLOC_CTX *_mem_save_credential_0;
10626         TALLOC_CTX *_mem_save_return_authenticator_0;
10627         TALLOC_CTX *_mem_save_sync_context_0;
10628         TALLOC_CTX *_mem_save_delta_enum_array_0;
10629         TALLOC_CTX *_mem_save_delta_enum_array_1;
10630         if (flags & NDR_IN) {
10631                 ZERO_STRUCT(r->out);
10632
10633                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10634                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10635                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10636                         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));
10637                 }
10638                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10639                 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));
10640                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10641                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10642                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10643                         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));
10644                 }
10645                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10646                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10647                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10648                         NDR_PULL_ALLOC(ndr, r->in.credential);
10649                 }
10650                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10651                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10652                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10653                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10654                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10655                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10656                 }
10657                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10658                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10659                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10660                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10661                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10662                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10663                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
10664                 }
10665                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10666                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10667                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10668                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10669                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10670                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10671                 *r->out.return_authenticator = *r->in.return_authenticator;
10672                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10673                 *r->out.sync_context = *r->in.sync_context;
10674                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10675                 ZERO_STRUCTP(r->out.delta_enum_array);
10676         }
10677         if (flags & NDR_OUT) {
10678                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10679                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10680                 }
10681                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10682                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10683                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10684                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10685                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10686                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
10687                 }
10688                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10689                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10690                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10691                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10692                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10693                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10694                 }
10695                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10696                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10697                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10698                 if (_ptr_delta_enum_array) {
10699                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10700                 } else {
10701                         *r->out.delta_enum_array = NULL;
10702                 }
10703                 if (*r->out.delta_enum_array) {
10704                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10705                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10706                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10707                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10708                 }
10709                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10710                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10711         }
10712         return NDR_ERR_SUCCESS;
10713 }
10714
10715 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
10716 {
10717         ndr_print_struct(ndr, name, "netr_DatabaseSync");
10718         ndr->depth++;
10719         if (flags & NDR_SET_VALUES) {
10720                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10721         }
10722         if (flags & NDR_IN) {
10723                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
10724                 ndr->depth++;
10725                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10726                 ndr->depth++;
10727                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10728                 ndr->depth--;
10729                 ndr_print_ptr(ndr, "computername", r->in.computername);
10730                 ndr->depth++;
10731                 ndr_print_string(ndr, "computername", r->in.computername);
10732                 ndr->depth--;
10733                 ndr_print_ptr(ndr, "credential", r->in.credential);
10734                 ndr->depth++;
10735                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10736                 ndr->depth--;
10737                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10738                 ndr->depth++;
10739                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10740                 ndr->depth--;
10741                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10742                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10743                 ndr->depth++;
10744                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10745                 ndr->depth--;
10746                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10747                 ndr->depth--;
10748         }
10749         if (flags & NDR_OUT) {
10750                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
10751                 ndr->depth++;
10752                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10753                 ndr->depth++;
10754                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10755                 ndr->depth--;
10756                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10757                 ndr->depth++;
10758                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10759                 ndr->depth--;
10760                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10761                 ndr->depth++;
10762                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10763                 ndr->depth++;
10764                 if (*r->out.delta_enum_array) {
10765                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10766                 }
10767                 ndr->depth--;
10768                 ndr->depth--;
10769                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10770                 ndr->depth--;
10771         }
10772         ndr->depth--;
10773 }
10774
10775 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
10776 {
10777         if (flags & NDR_IN) {
10778                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10779                 if (r->in.logon_server) {
10780                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10781                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10782                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10783                         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));
10784                 }
10785                 if (r->in.computername == NULL) {
10786                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10787                 }
10788                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10789                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10790                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10791                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10792                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10793                 if (r->in.return_authenticator == NULL) {
10794                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10795                 }
10796                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10797                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
10798                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
10799                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10800                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
10801         }
10802         if (flags & NDR_OUT) {
10803                 if (r->out.return_authenticator == NULL) {
10804                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10805                 }
10806                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10807                 if (r->out.buffer == NULL) {
10808                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10809                 }
10810                 {
10811                         struct ndr_push *_ndr_buffer;
10812                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10813                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10814                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
10815                 }
10816                 if (r->out.count_returned == NULL) {
10817                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10818                 }
10819                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
10820                 if (r->out.total_entries == NULL) {
10821                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10822                 }
10823                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
10824                 if (r->out.recordid == NULL) {
10825                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10826                 }
10827                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10828                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10829         }
10830         return NDR_ERR_SUCCESS;
10831 }
10832
10833 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
10834 {
10835         uint32_t _ptr_logon_server;
10836         TALLOC_CTX *_mem_save_logon_server_0;
10837         TALLOC_CTX *_mem_save_return_authenticator_0;
10838         TALLOC_CTX *_mem_save_buffer_0;
10839         TALLOC_CTX *_mem_save_count_returned_0;
10840         TALLOC_CTX *_mem_save_total_entries_0;
10841         TALLOC_CTX *_mem_save_recordid_0;
10842         if (flags & NDR_IN) {
10843                 ZERO_STRUCT(r->out);
10844
10845                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10846                 if (_ptr_logon_server) {
10847                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10848                 } else {
10849                         r->in.logon_server = NULL;
10850                 }
10851                 if (r->in.logon_server) {
10852                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10853                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10854                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10855                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10856                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10857                                 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));
10858                         }
10859                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10860                         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));
10861                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10862                 }
10863                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10864                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10865                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10866                         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));
10867                 }
10868                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10869                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10870                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10871                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10872                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10873                 }
10874                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10875                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10876                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10877                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10878                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
10879                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
10880                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10881                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
10882                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10883                 *r->out.return_authenticator = *r->in.return_authenticator;
10884                 NDR_PULL_ALLOC(ndr, r->out.buffer);
10885                 ZERO_STRUCTP(r->out.buffer);
10886                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
10887                 ZERO_STRUCTP(r->out.count_returned);
10888                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
10889                 ZERO_STRUCTP(r->out.total_entries);
10890                 NDR_PULL_ALLOC(ndr, r->out.recordid);
10891                 ZERO_STRUCTP(r->out.recordid);
10892         }
10893         if (flags & NDR_OUT) {
10894                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10895                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10896                 }
10897                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10898                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10899                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10900                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10901                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10902                         NDR_PULL_ALLOC(ndr, r->out.buffer);
10903                 }
10904                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
10905                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
10906                 {
10907                         struct ndr_pull *_ndr_buffer;
10908                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10909                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10910                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
10911                 }
10912                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
10913                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10914                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
10915                 }
10916                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
10917                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
10918                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
10919                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
10920                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10921                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
10922                 }
10923                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
10924                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
10925                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
10926                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
10927                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10928                         NDR_PULL_ALLOC(ndr, r->out.recordid);
10929                 }
10930                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10931                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
10932                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10933                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
10934                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10935         }
10936         return NDR_ERR_SUCCESS;
10937 }
10938
10939 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
10940 {
10941         ndr_print_struct(ndr, name, "netr_AccountDeltas");
10942         ndr->depth++;
10943         if (flags & NDR_SET_VALUES) {
10944                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10945         }
10946         if (flags & NDR_IN) {
10947                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
10948                 ndr->depth++;
10949                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10950                 ndr->depth++;
10951                 if (r->in.logon_server) {
10952                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10953                 }
10954                 ndr->depth--;
10955                 ndr_print_ptr(ndr, "computername", r->in.computername);
10956                 ndr->depth++;
10957                 ndr_print_string(ndr, "computername", r->in.computername);
10958                 ndr->depth--;
10959                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10960                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10961                 ndr->depth++;
10962                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10963                 ndr->depth--;
10964                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
10965                 ndr_print_uint32(ndr, "count", r->in.count);
10966                 ndr_print_uint32(ndr, "level", r->in.level);
10967                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
10968                 ndr->depth--;
10969         }
10970         if (flags & NDR_OUT) {
10971                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
10972                 ndr->depth++;
10973                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10974                 ndr->depth++;
10975                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10976                 ndr->depth--;
10977                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
10978                 ndr->depth++;
10979                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
10980                 ndr->depth--;
10981                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
10982                 ndr->depth++;
10983                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
10984                 ndr->depth--;
10985                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
10986                 ndr->depth++;
10987                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
10988                 ndr->depth--;
10989                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
10990                 ndr->depth++;
10991                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
10992                 ndr->depth--;
10993                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10994                 ndr->depth--;
10995         }
10996         ndr->depth--;
10997 }
10998
10999 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
11000 {
11001         if (flags & NDR_IN) {
11002                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11003                 if (r->in.logon_server) {
11004                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11005                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11006                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11007                         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));
11008                 }
11009                 if (r->in.computername == NULL) {
11010                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11011                 }
11012                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11013                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11014                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11015                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11016                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
11017                 if (r->in.return_authenticator == NULL) {
11018                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11019                 }
11020                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11021                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
11022                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11023                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
11024                 if (r->in.recordid == NULL) {
11025                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11026                 }
11027                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
11028         }
11029         if (flags & NDR_OUT) {
11030                 if (r->out.return_authenticator == NULL) {
11031                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11032                 }
11033                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11034                 if (r->out.buffer == NULL) {
11035                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11036                 }
11037                 {
11038                         struct ndr_push *_ndr_buffer;
11039                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
11040                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
11041                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
11042                 }
11043                 if (r->out.count_returned == NULL) {
11044                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11045                 }
11046                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
11047                 if (r->out.total_entries == NULL) {
11048                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11049                 }
11050                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
11051                 if (r->out.next_reference == NULL) {
11052                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11053                 }
11054                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
11055                 if (r->out.recordid == NULL) {
11056                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11057                 }
11058                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
11059                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11060         }
11061         return NDR_ERR_SUCCESS;
11062 }
11063
11064 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
11065 {
11066         uint32_t _ptr_logon_server;
11067         TALLOC_CTX *_mem_save_logon_server_0;
11068         TALLOC_CTX *_mem_save_return_authenticator_0;
11069         TALLOC_CTX *_mem_save_buffer_0;
11070         TALLOC_CTX *_mem_save_count_returned_0;
11071         TALLOC_CTX *_mem_save_total_entries_0;
11072         TALLOC_CTX *_mem_save_next_reference_0;
11073         TALLOC_CTX *_mem_save_recordid_0;
11074         if (flags & NDR_IN) {
11075                 ZERO_STRUCT(r->out);
11076
11077                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11078                 if (_ptr_logon_server) {
11079                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11080                 } else {
11081                         r->in.logon_server = NULL;
11082                 }
11083                 if (r->in.logon_server) {
11084                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11085                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11086                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11087                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11088                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11089                                 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));
11090                         }
11091                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11092                         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));
11093                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11094                 }
11095                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
11096                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
11097                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
11098                         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));
11099                 }
11100                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
11101                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
11102                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
11103                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11104                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11105                 }
11106                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11107                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11108                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11109                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11110                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
11111                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11112                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
11113                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11114                         NDR_PULL_ALLOC(ndr, r->in.recordid);
11115                 }
11116                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11117                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
11118                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
11119                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
11120                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11121                 *r->out.return_authenticator = *r->in.return_authenticator;
11122                 NDR_PULL_ALLOC(ndr, r->out.buffer);
11123                 ZERO_STRUCTP(r->out.buffer);
11124                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
11125                 ZERO_STRUCTP(r->out.count_returned);
11126                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
11127                 ZERO_STRUCTP(r->out.total_entries);
11128                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
11129                 ZERO_STRUCTP(r->out.next_reference);
11130                 NDR_PULL_ALLOC(ndr, r->out.recordid);
11131                 *r->out.recordid = *r->in.recordid;
11132         }
11133         if (flags & NDR_OUT) {
11134                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11135                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11136                 }
11137                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11138                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11139                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11140                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11141                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11142                         NDR_PULL_ALLOC(ndr, r->out.buffer);
11143                 }
11144                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
11145                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
11146                 {
11147                         struct ndr_pull *_ndr_buffer;
11148                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
11149                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
11150                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
11151                 }
11152                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
11153                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11154                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
11155                 }
11156                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
11157                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
11158                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
11159                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
11160                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11161                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
11162                 }
11163                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
11164                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
11165                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
11166                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
11167                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11168                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
11169                 }
11170                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
11171                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
11172                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
11173                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
11174                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11175                         NDR_PULL_ALLOC(ndr, r->out.recordid);
11176                 }
11177                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11178                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
11179                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
11180                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
11181                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11182         }
11183         return NDR_ERR_SUCCESS;
11184 }
11185
11186 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
11187 {
11188         ndr_print_struct(ndr, name, "netr_AccountSync");
11189         ndr->depth++;
11190         if (flags & NDR_SET_VALUES) {
11191                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11192         }
11193         if (flags & NDR_IN) {
11194                 ndr_print_struct(ndr, "in", "netr_AccountSync");
11195                 ndr->depth++;
11196                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11197                 ndr->depth++;
11198                 if (r->in.logon_server) {
11199                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11200                 }
11201                 ndr->depth--;
11202                 ndr_print_ptr(ndr, "computername", r->in.computername);
11203                 ndr->depth++;
11204                 ndr_print_string(ndr, "computername", r->in.computername);
11205                 ndr->depth--;
11206                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
11207                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11208                 ndr->depth++;
11209                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11210                 ndr->depth--;
11211                 ndr_print_uint32(ndr, "reference", r->in.reference);
11212                 ndr_print_uint32(ndr, "level", r->in.level);
11213                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
11214                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
11215                 ndr->depth++;
11216                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
11217                 ndr->depth--;
11218                 ndr->depth--;
11219         }
11220         if (flags & NDR_OUT) {
11221                 ndr_print_struct(ndr, "out", "netr_AccountSync");
11222                 ndr->depth++;
11223                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11224                 ndr->depth++;
11225                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11226                 ndr->depth--;
11227                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
11228                 ndr->depth++;
11229                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
11230                 ndr->depth--;
11231                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
11232                 ndr->depth++;
11233                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
11234                 ndr->depth--;
11235                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
11236                 ndr->depth++;
11237                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
11238                 ndr->depth--;
11239                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
11240                 ndr->depth++;
11241                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
11242                 ndr->depth--;
11243                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
11244                 ndr->depth++;
11245                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
11246                 ndr->depth--;
11247                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11248                 ndr->depth--;
11249         }
11250         ndr->depth--;
11251 }
11252
11253 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
11254 {
11255         if (flags & NDR_IN) {
11256                 if (r->in.logon_server == NULL) {
11257                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11258                 }
11259                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11260                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11261                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11262                 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));
11263                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
11264                 if (r->in.domainname) {
11265                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
11266                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11267                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
11268                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11269                 }
11270         }
11271         if (flags & NDR_OUT) {
11272                 if (r->out.dcname == NULL) {
11273                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11274                 }
11275                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
11276                 if (*r->out.dcname) {
11277                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
11278                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11279                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
11280                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11281                 }
11282                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11283         }
11284         return NDR_ERR_SUCCESS;
11285 }
11286
11287 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
11288 {
11289         uint32_t _ptr_domainname;
11290         uint32_t _ptr_dcname;
11291         TALLOC_CTX *_mem_save_domainname_0;
11292         TALLOC_CTX *_mem_save_dcname_0;
11293         TALLOC_CTX *_mem_save_dcname_1;
11294         if (flags & NDR_IN) {
11295                 ZERO_STRUCT(r->out);
11296
11297                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11298                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11299                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11300                         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));
11301                 }
11302                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11303                 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));
11304                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
11305                 if (_ptr_domainname) {
11306                         NDR_PULL_ALLOC(ndr, r->in.domainname);
11307                 } else {
11308                         r->in.domainname = NULL;
11309                 }
11310                 if (r->in.domainname) {
11311                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11312                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
11313                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
11314                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
11315                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
11316                                 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));
11317                         }
11318                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
11319                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
11320                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
11321                 }
11322                 NDR_PULL_ALLOC(ndr, r->out.dcname);
11323                 ZERO_STRUCTP(r->out.dcname);
11324         }
11325         if (flags & NDR_OUT) {
11326                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11327                         NDR_PULL_ALLOC(ndr, r->out.dcname);
11328                 }
11329                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11330                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
11331                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
11332                 if (_ptr_dcname) {
11333                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
11334                 } else {
11335                         *r->out.dcname = NULL;
11336                 }
11337                 if (*r->out.dcname) {
11338                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
11339                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
11340                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
11341                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
11342                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
11343                                 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));
11344                         }
11345                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
11346                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
11347                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
11348                 }
11349                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
11350                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11351         }
11352         return NDR_ERR_SUCCESS;
11353 }
11354
11355 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
11356 {
11357         ndr_print_struct(ndr, name, "netr_GetDcName");
11358         ndr->depth++;
11359         if (flags & NDR_SET_VALUES) {
11360                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11361         }
11362         if (flags & NDR_IN) {
11363                 ndr_print_struct(ndr, "in", "netr_GetDcName");
11364                 ndr->depth++;
11365                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11366                 ndr->depth++;
11367                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11368                 ndr->depth--;
11369                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
11370                 ndr->depth++;
11371                 if (r->in.domainname) {
11372                         ndr_print_string(ndr, "domainname", r->in.domainname);
11373                 }
11374                 ndr->depth--;
11375                 ndr->depth--;
11376         }
11377         if (flags & NDR_OUT) {
11378                 ndr_print_struct(ndr, "out", "netr_GetDcName");
11379                 ndr->depth++;
11380                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
11381                 ndr->depth++;
11382                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
11383                 ndr->depth++;
11384                 if (*r->out.dcname) {
11385                         ndr_print_string(ndr, "dcname", *r->out.dcname);
11386                 }
11387                 ndr->depth--;
11388                 ndr->depth--;
11389                 ndr_print_WERROR(ndr, "result", r->out.result);
11390                 ndr->depth--;
11391         }
11392         ndr->depth--;
11393 }
11394
11395 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
11396 {
11397         if (flags & NDR_IN) {
11398                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11399                 if (r->in.logon_server) {
11400                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11401                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11402                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11403                         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));
11404                 }
11405                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
11406                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11407         }
11408         if (flags & NDR_OUT) {
11409                 if (r->out.query == NULL) {
11410                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11411                 }
11412                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
11413                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11414                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11415         }
11416         return NDR_ERR_SUCCESS;
11417 }
11418
11419 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
11420 {
11421         uint32_t _ptr_logon_server;
11422         TALLOC_CTX *_mem_save_logon_server_0;
11423         TALLOC_CTX *_mem_save_query_0;
11424         if (flags & NDR_IN) {
11425                 ZERO_STRUCT(r->out);
11426
11427                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11428                 if (_ptr_logon_server) {
11429                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11430                 } else {
11431                         r->in.logon_server = NULL;
11432                 }
11433                 if (r->in.logon_server) {
11434                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11435                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11436                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11437                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11438                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11439                                 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));
11440                         }
11441                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11442                         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));
11443                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11444                 }
11445                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
11446                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11447                 NDR_PULL_ALLOC(ndr, r->out.query);
11448                 ZERO_STRUCTP(r->out.query);
11449         }
11450         if (flags & NDR_OUT) {
11451                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11452                         NDR_PULL_ALLOC(ndr, r->out.query);
11453                 }
11454                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
11455                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
11456                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
11457                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11458                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
11459                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11460         }
11461         return NDR_ERR_SUCCESS;
11462 }
11463
11464 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
11465 {
11466         ndr_print_struct(ndr, name, "netr_LogonControl");
11467         ndr->depth++;
11468         if (flags & NDR_SET_VALUES) {
11469                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11470         }
11471         if (flags & NDR_IN) {
11472                 ndr_print_struct(ndr, "in", "netr_LogonControl");
11473                 ndr->depth++;
11474                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11475                 ndr->depth++;
11476                 if (r->in.logon_server) {
11477                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11478                 }
11479                 ndr->depth--;
11480                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
11481                 ndr_print_uint32(ndr, "level", r->in.level);
11482                 ndr->depth--;
11483         }
11484         if (flags & NDR_OUT) {
11485                 ndr_print_struct(ndr, "out", "netr_LogonControl");
11486                 ndr->depth++;
11487                 ndr_print_ptr(ndr, "query", r->out.query);
11488                 ndr->depth++;
11489                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
11490                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
11491                 ndr->depth--;
11492                 ndr_print_WERROR(ndr, "result", r->out.result);
11493                 ndr->depth--;
11494         }
11495         ndr->depth--;
11496 }
11497
11498 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
11499 {
11500         if (flags & NDR_IN) {
11501                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11502                 if (r->in.logon_server) {
11503                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11504                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11505                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11506                         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));
11507                 }
11508                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
11509                 if (r->in.domainname) {
11510                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
11511                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11512                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
11513                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11514                 }
11515         }
11516         if (flags & NDR_OUT) {
11517                 if (r->out.dcname == NULL) {
11518                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11519                 }
11520                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
11521                 if (*r->out.dcname) {
11522                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
11523                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11524                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
11525                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11526                 }
11527                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11528         }
11529         return NDR_ERR_SUCCESS;
11530 }
11531
11532 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
11533 {
11534         uint32_t _ptr_logon_server;
11535         uint32_t _ptr_domainname;
11536         uint32_t _ptr_dcname;
11537         TALLOC_CTX *_mem_save_logon_server_0;
11538         TALLOC_CTX *_mem_save_domainname_0;
11539         TALLOC_CTX *_mem_save_dcname_0;
11540         TALLOC_CTX *_mem_save_dcname_1;
11541         if (flags & NDR_IN) {
11542                 ZERO_STRUCT(r->out);
11543
11544                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11545                 if (_ptr_logon_server) {
11546                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11547                 } else {
11548                         r->in.logon_server = NULL;
11549                 }
11550                 if (r->in.logon_server) {
11551                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11552                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11553                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11554                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11555                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11556                                 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));
11557                         }
11558                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11559                         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));
11560                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11561                 }
11562                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
11563                 if (_ptr_domainname) {
11564                         NDR_PULL_ALLOC(ndr, r->in.domainname);
11565                 } else {
11566                         r->in.domainname = NULL;
11567                 }
11568                 if (r->in.domainname) {
11569                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11570                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
11571                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
11572                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
11573                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
11574                                 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));
11575                         }
11576                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
11577                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
11578                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
11579                 }
11580                 NDR_PULL_ALLOC(ndr, r->out.dcname);
11581                 ZERO_STRUCTP(r->out.dcname);
11582         }
11583         if (flags & NDR_OUT) {
11584                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11585                         NDR_PULL_ALLOC(ndr, r->out.dcname);
11586                 }
11587                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11588                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
11589                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
11590                 if (_ptr_dcname) {
11591                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
11592                 } else {
11593                         *r->out.dcname = NULL;
11594                 }
11595                 if (*r->out.dcname) {
11596                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
11597                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
11598                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
11599                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
11600                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
11601                                 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));
11602                         }
11603                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
11604                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
11605                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
11606                 }
11607                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
11608                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11609         }
11610         return NDR_ERR_SUCCESS;
11611 }
11612
11613 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
11614 {
11615         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
11616         ndr->depth++;
11617         if (flags & NDR_SET_VALUES) {
11618                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11619         }
11620         if (flags & NDR_IN) {
11621                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
11622                 ndr->depth++;
11623                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11624                 ndr->depth++;
11625                 if (r->in.logon_server) {
11626                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11627                 }
11628                 ndr->depth--;
11629                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
11630                 ndr->depth++;
11631                 if (r->in.domainname) {
11632                         ndr_print_string(ndr, "domainname", r->in.domainname);
11633                 }
11634                 ndr->depth--;
11635                 ndr->depth--;
11636         }
11637         if (flags & NDR_OUT) {
11638                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
11639                 ndr->depth++;
11640                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
11641                 ndr->depth++;
11642                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
11643                 ndr->depth++;
11644                 if (*r->out.dcname) {
11645                         ndr_print_string(ndr, "dcname", *r->out.dcname);
11646                 }
11647                 ndr->depth--;
11648                 ndr->depth--;
11649                 ndr_print_WERROR(ndr, "result", r->out.result);
11650                 ndr->depth--;
11651         }
11652         ndr->depth--;
11653 }
11654
11655 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
11656 {
11657         if (flags & NDR_IN) {
11658                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11659                 if (r->in.logon_server) {
11660                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11661                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11662                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11663                         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));
11664                 }
11665                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
11666                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11667                 if (r->in.data == NULL) {
11668                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11669                 }
11670                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
11671                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
11672         }
11673         if (flags & NDR_OUT) {
11674                 if (r->out.query == NULL) {
11675                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11676                 }
11677                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
11678                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11679                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11680         }
11681         return NDR_ERR_SUCCESS;
11682 }
11683
11684 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
11685 {
11686         uint32_t _ptr_logon_server;
11687         TALLOC_CTX *_mem_save_logon_server_0;
11688         TALLOC_CTX *_mem_save_data_0;
11689         TALLOC_CTX *_mem_save_query_0;
11690         if (flags & NDR_IN) {
11691                 ZERO_STRUCT(r->out);
11692
11693                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11694                 if (_ptr_logon_server) {
11695                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11696                 } else {
11697                         r->in.logon_server = NULL;
11698                 }
11699                 if (r->in.logon_server) {
11700                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11701                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11702                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11703                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11704                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11705                                 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));
11706                         }
11707                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11708                         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));
11709                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11710                 }
11711                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
11712                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11713                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11714                         NDR_PULL_ALLOC(ndr, r->in.data);
11715                 }
11716                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
11717                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
11718                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
11719                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
11720                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
11721                 NDR_PULL_ALLOC(ndr, r->out.query);
11722                 ZERO_STRUCTP(r->out.query);
11723         }
11724         if (flags & NDR_OUT) {
11725                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11726                         NDR_PULL_ALLOC(ndr, r->out.query);
11727                 }
11728                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
11729                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
11730                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
11731                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11732                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
11733                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11734         }
11735         return NDR_ERR_SUCCESS;
11736 }
11737
11738 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
11739 {
11740         ndr_print_struct(ndr, name, "netr_LogonControl2");
11741         ndr->depth++;
11742         if (flags & NDR_SET_VALUES) {
11743                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11744         }
11745         if (flags & NDR_IN) {
11746                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
11747                 ndr->depth++;
11748                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11749                 ndr->depth++;
11750                 if (r->in.logon_server) {
11751                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11752                 }
11753                 ndr->depth--;
11754                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
11755                 ndr_print_uint32(ndr, "level", r->in.level);
11756                 ndr_print_ptr(ndr, "data", r->in.data);
11757                 ndr->depth++;
11758                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
11759                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
11760                 ndr->depth--;
11761                 ndr->depth--;
11762         }
11763         if (flags & NDR_OUT) {
11764                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
11765                 ndr->depth++;
11766                 ndr_print_ptr(ndr, "query", r->out.query);
11767                 ndr->depth++;
11768                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
11769                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
11770                 ndr->depth--;
11771                 ndr_print_WERROR(ndr, "result", r->out.result);
11772                 ndr->depth--;
11773         }
11774         ndr->depth--;
11775 }
11776
11777 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
11778 {
11779         if (flags & NDR_IN) {
11780                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11781                 if (r->in.server_name) {
11782                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11783                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11784                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11785                         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));
11786                 }
11787                 if (r->in.account_name == NULL) {
11788                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11789                 }
11790                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11791                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11792                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11793                 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));
11794                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11795                 if (r->in.computer_name == NULL) {
11796                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11797                 }
11798                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11799                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11800                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11801                 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));
11802                 if (r->in.credentials == NULL) {
11803                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11804                 }
11805                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11806                 if (r->in.negotiate_flags == NULL) {
11807                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11808                 }
11809                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11810         }
11811         if (flags & NDR_OUT) {
11812                 if (r->out.return_credentials == NULL) {
11813                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11814                 }
11815                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
11816                 if (r->out.negotiate_flags == NULL) {
11817                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11818                 }
11819                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11820                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11821         }
11822         return NDR_ERR_SUCCESS;
11823 }
11824
11825 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
11826 {
11827         uint32_t _ptr_server_name;
11828         TALLOC_CTX *_mem_save_server_name_0;
11829         TALLOC_CTX *_mem_save_credentials_0;
11830         TALLOC_CTX *_mem_save_return_credentials_0;
11831         TALLOC_CTX *_mem_save_negotiate_flags_0;
11832         if (flags & NDR_IN) {
11833                 ZERO_STRUCT(r->out);
11834
11835                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11836                 if (_ptr_server_name) {
11837                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11838                 } else {
11839                         r->in.server_name = NULL;
11840                 }
11841                 if (r->in.server_name) {
11842                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11843                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11844                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11845                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11846                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11847                                 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));
11848                         }
11849                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11850                         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));
11851                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11852                 }
11853                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11854                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11855                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11856                         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));
11857                 }
11858                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11859                 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));
11860                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11861                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11862                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11863                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11864                         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));
11865                 }
11866                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11867                 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));
11868                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11869                         NDR_PULL_ALLOC(ndr, r->in.credentials);
11870                 }
11871                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11872                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11873                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11874                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11875                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11876                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11877                 }
11878                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11879                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11880                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
11881                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11882                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
11883                 ZERO_STRUCTP(r->out.return_credentials);
11884                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11885                 *r->out.negotiate_flags = *r->in.negotiate_flags;
11886         }
11887         if (flags & NDR_OUT) {
11888                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11889                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
11890                 }
11891                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11892                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
11893                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
11894                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11895                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11896                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11897                 }
11898                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11899                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11900                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
11901                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11902                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11903         }
11904         return NDR_ERR_SUCCESS;
11905 }
11906
11907 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
11908 {
11909         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
11910         ndr->depth++;
11911         if (flags & NDR_SET_VALUES) {
11912                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11913         }
11914         if (flags & NDR_IN) {
11915                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
11916                 ndr->depth++;
11917                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11918                 ndr->depth++;
11919                 if (r->in.server_name) {
11920                         ndr_print_string(ndr, "server_name", r->in.server_name);
11921                 }
11922                 ndr->depth--;
11923                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
11924                 ndr->depth++;
11925                 ndr_print_string(ndr, "account_name", r->in.account_name);
11926                 ndr->depth--;
11927                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11928                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
11929                 ndr->depth++;
11930                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11931                 ndr->depth--;
11932                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11933                 ndr->depth++;
11934                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11935                 ndr->depth--;
11936                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11937                 ndr->depth++;
11938                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
11939                 ndr->depth--;
11940                 ndr->depth--;
11941         }
11942         if (flags & NDR_OUT) {
11943                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
11944                 ndr->depth++;
11945                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
11946                 ndr->depth++;
11947                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
11948                 ndr->depth--;
11949                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11950                 ndr->depth++;
11951                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
11952                 ndr->depth--;
11953                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11954                 ndr->depth--;
11955         }
11956         ndr->depth--;
11957 }
11958
11959 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
11960 {
11961         if (flags & NDR_IN) {
11962                 if (r->in.logon_server == NULL) {
11963                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11964                 }
11965                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11966                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11967                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11968                 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));
11969                 if (r->in.computername == NULL) {
11970                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11971                 }
11972                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11973                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11974                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11975                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11976                 if (r->in.credential == NULL) {
11977                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11978                 }
11979                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11980                 if (r->in.return_authenticator == NULL) {
11981                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11982                 }
11983                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11984                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
11985                 NDR_CHECK(ndr_push_SyncStateEnum(ndr, NDR_SCALARS, r->in.restart_state));
11986                 if (r->in.sync_context == NULL) {
11987                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11988                 }
11989                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
11990                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
11991         }
11992         if (flags & NDR_OUT) {
11993                 if (r->out.return_authenticator == NULL) {
11994                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11995                 }
11996                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11997                 if (r->out.sync_context == NULL) {
11998                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11999                 }
12000                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
12001                 if (r->out.delta_enum_array == NULL) {
12002                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12003                 }
12004                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
12005                 if (*r->out.delta_enum_array) {
12006                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
12007                 }
12008                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12009         }
12010         return NDR_ERR_SUCCESS;
12011 }
12012
12013 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
12014 {
12015         uint32_t _ptr_delta_enum_array;
12016         TALLOC_CTX *_mem_save_credential_0;
12017         TALLOC_CTX *_mem_save_return_authenticator_0;
12018         TALLOC_CTX *_mem_save_sync_context_0;
12019         TALLOC_CTX *_mem_save_delta_enum_array_0;
12020         TALLOC_CTX *_mem_save_delta_enum_array_1;
12021         if (flags & NDR_IN) {
12022                 ZERO_STRUCT(r->out);
12023
12024                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
12025                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
12026                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
12027                         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));
12028                 }
12029                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
12030                 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));
12031                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
12032                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
12033                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
12034                         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));
12035                 }
12036                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
12037                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
12038                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12039                         NDR_PULL_ALLOC(ndr, r->in.credential);
12040                 }
12041                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12042                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12043                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12044                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12045                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12046                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12047                 }
12048                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12049                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12050                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12051                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12052                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
12053                 NDR_CHECK(ndr_pull_SyncStateEnum(ndr, NDR_SCALARS, &r->in.restart_state));
12054                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12055                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
12056                 }
12057                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
12058                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
12059                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
12060                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
12061                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
12062                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12063                 *r->out.return_authenticator = *r->in.return_authenticator;
12064                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
12065                 *r->out.sync_context = *r->in.sync_context;
12066                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
12067                 ZERO_STRUCTP(r->out.delta_enum_array);
12068         }
12069         if (flags & NDR_OUT) {
12070                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12071                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12072                 }
12073                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12074                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12075                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12076                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12077                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12078                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
12079                 }
12080                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
12081                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
12082                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
12083                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
12084                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12085                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
12086                 }
12087                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12088                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
12089                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
12090                 if (_ptr_delta_enum_array) {
12091                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
12092                 } else {
12093                         *r->out.delta_enum_array = NULL;
12094                 }
12095                 if (*r->out.delta_enum_array) {
12096                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
12097                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
12098                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
12099                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
12100                 }
12101                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
12102                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12103         }
12104         return NDR_ERR_SUCCESS;
12105 }
12106
12107 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
12108 {
12109         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
12110         ndr->depth++;
12111         if (flags & NDR_SET_VALUES) {
12112                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12113         }
12114         if (flags & NDR_IN) {
12115                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
12116                 ndr->depth++;
12117                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
12118                 ndr->depth++;
12119                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
12120                 ndr->depth--;
12121                 ndr_print_ptr(ndr, "computername", r->in.computername);
12122                 ndr->depth++;
12123                 ndr_print_string(ndr, "computername", r->in.computername);
12124                 ndr->depth--;
12125                 ndr_print_ptr(ndr, "credential", r->in.credential);
12126                 ndr->depth++;
12127                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12128                 ndr->depth--;
12129                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12130                 ndr->depth++;
12131                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12132                 ndr->depth--;
12133                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
12134                 ndr_print_SyncStateEnum(ndr, "restart_state", r->in.restart_state);
12135                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
12136                 ndr->depth++;
12137                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
12138                 ndr->depth--;
12139                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
12140                 ndr->depth--;
12141         }
12142         if (flags & NDR_OUT) {
12143                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
12144                 ndr->depth++;
12145                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12146                 ndr->depth++;
12147                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12148                 ndr->depth--;
12149                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
12150                 ndr->depth++;
12151                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
12152                 ndr->depth--;
12153                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
12154                 ndr->depth++;
12155                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
12156                 ndr->depth++;
12157                 if (*r->out.delta_enum_array) {
12158                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
12159                 }
12160                 ndr->depth--;
12161                 ndr->depth--;
12162                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12163                 ndr->depth--;
12164         }
12165         ndr->depth--;
12166 }
12167
12168 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
12169 {
12170         if (flags & NDR_IN) {
12171                 if (r->in.logon_server == NULL) {
12172                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12173                 }
12174                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
12175                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12176                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
12177                 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));
12178                 if (r->in.computername == NULL) {
12179                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12180                 }
12181                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
12182                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12183                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
12184                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12185                 if (r->in.credential == NULL) {
12186                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12187                 }
12188                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12189                 if (r->in.return_authenticator == NULL) {
12190                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12191                 }
12192                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12193                 {
12194                         struct ndr_push *_ndr_change_log_entry;
12195                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
12196                         NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
12197                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
12198                 }
12199                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
12200         }
12201         if (flags & NDR_OUT) {
12202                 if (r->out.return_authenticator == NULL) {
12203                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12204                 }
12205                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12206                 if (r->out.delta_enum_array == NULL) {
12207                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12208                 }
12209                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
12210                 if (*r->out.delta_enum_array) {
12211                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
12212                 }
12213                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12214         }
12215         return NDR_ERR_SUCCESS;
12216 }
12217
12218 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
12219 {
12220         uint32_t _ptr_delta_enum_array;
12221         TALLOC_CTX *_mem_save_credential_0;
12222         TALLOC_CTX *_mem_save_return_authenticator_0;
12223         TALLOC_CTX *_mem_save_delta_enum_array_0;
12224         TALLOC_CTX *_mem_save_delta_enum_array_1;
12225         if (flags & NDR_IN) {
12226                 ZERO_STRUCT(r->out);
12227
12228                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
12229                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
12230                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
12231                         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));
12232                 }
12233                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
12234                 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));
12235                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
12236                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
12237                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
12238                         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));
12239                 }
12240                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
12241                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
12242                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12243                         NDR_PULL_ALLOC(ndr, r->in.credential);
12244                 }
12245                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12246                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12247                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12248                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12249                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12250                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12251                 }
12252                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12253                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12254                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12255                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12256                 {
12257                         struct ndr_pull *_ndr_change_log_entry;
12258                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_change_log_entry, 4, r->in.change_log_entry_size));
12259                         NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
12260                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_change_log_entry, 4, r->in.change_log_entry_size));
12261                 }
12262                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
12263                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12264                 *r->out.return_authenticator = *r->in.return_authenticator;
12265                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
12266                 ZERO_STRUCTP(r->out.delta_enum_array);
12267         }
12268         if (flags & NDR_OUT) {
12269                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12270                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12271                 }
12272                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12273                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12274                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12275                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12276                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12277                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
12278                 }
12279                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12280                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
12281                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
12282                 if (_ptr_delta_enum_array) {
12283                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
12284                 } else {
12285                         *r->out.delta_enum_array = NULL;
12286                 }
12287                 if (*r->out.delta_enum_array) {
12288                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
12289                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
12290                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
12291                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
12292                 }
12293                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
12294                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12295         }
12296         return NDR_ERR_SUCCESS;
12297 }
12298
12299 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
12300 {
12301         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
12302         ndr->depth++;
12303         if (flags & NDR_SET_VALUES) {
12304                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12305         }
12306         if (flags & NDR_IN) {
12307                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
12308                 ndr->depth++;
12309                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
12310                 ndr->depth++;
12311                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
12312                 ndr->depth--;
12313                 ndr_print_ptr(ndr, "computername", r->in.computername);
12314                 ndr->depth++;
12315                 ndr_print_string(ndr, "computername", r->in.computername);
12316                 ndr->depth--;
12317                 ndr_print_ptr(ndr, "credential", r->in.credential);
12318                 ndr->depth++;
12319                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12320                 ndr->depth--;
12321                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12322                 ndr->depth++;
12323                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12324                 ndr->depth--;
12325                 ndr_print_netr_ChangeLogEntry(ndr, "change_log_entry", &r->in.change_log_entry);
12326                 ndr_print_uint32(ndr, "change_log_entry_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags):r->in.change_log_entry_size);
12327                 ndr->depth--;
12328         }
12329         if (flags & NDR_OUT) {
12330                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
12331                 ndr->depth++;
12332                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12333                 ndr->depth++;
12334                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12335                 ndr->depth--;
12336                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
12337                 ndr->depth++;
12338                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
12339                 ndr->depth++;
12340                 if (*r->out.delta_enum_array) {
12341                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
12342                 }
12343                 ndr->depth--;
12344                 ndr->depth--;
12345                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12346                 ndr->depth--;
12347         }
12348         ndr->depth--;
12349 }
12350
12351 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
12352 {
12353         if (flags & NDR_IN) {
12354                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
12355                 if (r->in.logon_server) {
12356                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
12357                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12358                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
12359                         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));
12360                 }
12361                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
12362                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12363                 if (r->in.data == NULL) {
12364                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12365                 }
12366                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
12367                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
12368         }
12369         if (flags & NDR_OUT) {
12370                 if (r->out.query == NULL) {
12371                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12372                 }
12373                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
12374                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
12375                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12376         }
12377         return NDR_ERR_SUCCESS;
12378 }
12379
12380 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
12381 {
12382         uint32_t _ptr_logon_server;
12383         TALLOC_CTX *_mem_save_logon_server_0;
12384         TALLOC_CTX *_mem_save_data_0;
12385         TALLOC_CTX *_mem_save_query_0;
12386         if (flags & NDR_IN) {
12387                 ZERO_STRUCT(r->out);
12388
12389                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
12390                 if (_ptr_logon_server) {
12391                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
12392                 } else {
12393                         r->in.logon_server = NULL;
12394                 }
12395                 if (r->in.logon_server) {
12396                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
12397                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
12398                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
12399                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
12400                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
12401                                 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));
12402                         }
12403                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
12404                         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));
12405                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
12406                 }
12407                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
12408                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12409                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12410                         NDR_PULL_ALLOC(ndr, r->in.data);
12411                 }
12412                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
12413                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
12414                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
12415                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
12416                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
12417                 NDR_PULL_ALLOC(ndr, r->out.query);
12418                 ZERO_STRUCTP(r->out.query);
12419         }
12420         if (flags & NDR_OUT) {
12421                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12422                         NDR_PULL_ALLOC(ndr, r->out.query);
12423                 }
12424                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
12425                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
12426                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
12427                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
12428                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
12429                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12430         }
12431         return NDR_ERR_SUCCESS;
12432 }
12433
12434 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
12435 {
12436         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
12437         ndr->depth++;
12438         if (flags & NDR_SET_VALUES) {
12439                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12440         }
12441         if (flags & NDR_IN) {
12442                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
12443                 ndr->depth++;
12444                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
12445                 ndr->depth++;
12446                 if (r->in.logon_server) {
12447                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
12448                 }
12449                 ndr->depth--;
12450                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
12451                 ndr_print_uint32(ndr, "level", r->in.level);
12452                 ndr_print_ptr(ndr, "data", r->in.data);
12453                 ndr->depth++;
12454                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
12455                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
12456                 ndr->depth--;
12457                 ndr->depth--;
12458         }
12459         if (flags & NDR_OUT) {
12460                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
12461                 ndr->depth++;
12462                 ndr_print_ptr(ndr, "query", r->out.query);
12463                 ndr->depth++;
12464                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
12465                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
12466                 ndr->depth--;
12467                 ndr_print_WERROR(ndr, "result", r->out.result);
12468                 ndr->depth--;
12469         }
12470         ndr->depth--;
12471 }
12472
12473 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
12474 {
12475         if (flags & NDR_IN) {
12476                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12477                 if (r->in.server_name) {
12478                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12479                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12480                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12481                         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));
12482                 }
12483         }
12484         if (flags & NDR_OUT) {
12485                 if (r->out.trusted_domains_blob == NULL) {
12486                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12487                 }
12488                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
12489                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12490         }
12491         return NDR_ERR_SUCCESS;
12492 }
12493
12494 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
12495 {
12496         uint32_t _ptr_server_name;
12497         TALLOC_CTX *_mem_save_server_name_0;
12498         TALLOC_CTX *_mem_save_trusted_domains_blob_0;
12499         if (flags & NDR_IN) {
12500                 ZERO_STRUCT(r->out);
12501
12502                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12503                 if (_ptr_server_name) {
12504                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12505                 } else {
12506                         r->in.server_name = NULL;
12507                 }
12508                 if (r->in.server_name) {
12509                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12510                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12511                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12512                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12513                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12514                                 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));
12515                         }
12516                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12517                         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));
12518                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12519                 }
12520                 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
12521                 ZERO_STRUCTP(r->out.trusted_domains_blob);
12522         }
12523         if (flags & NDR_OUT) {
12524                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12525                         NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
12526                 }
12527                 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
12528                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
12529                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
12530                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_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_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
12537 {
12538         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
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_NetrEnumerateTrustedDomains");
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->depth--;
12553         }
12554         if (flags & NDR_OUT) {
12555                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
12556                 ndr->depth++;
12557                 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
12558                 ndr->depth++;
12559                 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
12560                 ndr->depth--;
12561                 ndr_print_WERROR(ndr, "result", r->out.result);
12562                 ndr->depth--;
12563         }
12564         ndr->depth--;
12565 }
12566
12567 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
12568 {
12569         if (flags & NDR_IN) {
12570                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12571                 if (r->in.server_unc) {
12572                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12573                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12574                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12575                         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));
12576                 }
12577                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12578                 if (r->in.domain_name) {
12579                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12580                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12581                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12582                         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));
12583                 }
12584                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12585                 if (r->in.domain_guid) {
12586                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12587                 }
12588                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
12589                 if (r->in.site_guid) {
12590                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.site_guid));
12591                 }
12592                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12593         }
12594         if (flags & NDR_OUT) {
12595                 if (r->out.info == NULL) {
12596                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12597                 }
12598                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12599                 if (*r->out.info) {
12600                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12601                 }
12602                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12603         }
12604         return NDR_ERR_SUCCESS;
12605 }
12606
12607 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
12608 {
12609         uint32_t _ptr_server_unc;
12610         uint32_t _ptr_domain_name;
12611         uint32_t _ptr_domain_guid;
12612         uint32_t _ptr_site_guid;
12613         uint32_t _ptr_info;
12614         TALLOC_CTX *_mem_save_server_unc_0;
12615         TALLOC_CTX *_mem_save_domain_name_0;
12616         TALLOC_CTX *_mem_save_domain_guid_0;
12617         TALLOC_CTX *_mem_save_site_guid_0;
12618         TALLOC_CTX *_mem_save_info_0;
12619         TALLOC_CTX *_mem_save_info_1;
12620         if (flags & NDR_IN) {
12621                 ZERO_STRUCT(r->out);
12622
12623                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12624                 if (_ptr_server_unc) {
12625                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12626                 } else {
12627                         r->in.server_unc = NULL;
12628                 }
12629                 if (r->in.server_unc) {
12630                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12631                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12632                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12633                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12634                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12635                                 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));
12636                         }
12637                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12638                         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));
12639                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12640                 }
12641                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12642                 if (_ptr_domain_name) {
12643                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12644                 } else {
12645                         r->in.domain_name = NULL;
12646                 }
12647                 if (r->in.domain_name) {
12648                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12649                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12650                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12651                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12652                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12653                                 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));
12654                         }
12655                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12656                         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));
12657                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12658                 }
12659                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12660                 if (_ptr_domain_guid) {
12661                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12662                 } else {
12663                         r->in.domain_guid = NULL;
12664                 }
12665                 if (r->in.domain_guid) {
12666                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12667                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12668                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12669                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12670                 }
12671                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
12672                 if (_ptr_site_guid) {
12673                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
12674                 } else {
12675                         r->in.site_guid = NULL;
12676                 }
12677                 if (r->in.site_guid) {
12678                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12679                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
12680                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.site_guid));
12681                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
12682                 }
12683                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12684                 NDR_PULL_ALLOC(ndr, r->out.info);
12685                 ZERO_STRUCTP(r->out.info);
12686         }
12687         if (flags & NDR_OUT) {
12688                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12689                         NDR_PULL_ALLOC(ndr, r->out.info);
12690                 }
12691                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12692                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12693                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12694                 if (_ptr_info) {
12695                         NDR_PULL_ALLOC(ndr, *r->out.info);
12696                 } else {
12697                         *r->out.info = NULL;
12698                 }
12699                 if (*r->out.info) {
12700                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12701                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12702                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12703                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12704                 }
12705                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12706                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12707         }
12708         return NDR_ERR_SUCCESS;
12709 }
12710
12711 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
12712 {
12713         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
12714         ndr->depth++;
12715         if (flags & NDR_SET_VALUES) {
12716                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12717         }
12718         if (flags & NDR_IN) {
12719                 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
12720                 ndr->depth++;
12721                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12722                 ndr->depth++;
12723                 if (r->in.server_unc) {
12724                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12725                 }
12726                 ndr->depth--;
12727                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12728                 ndr->depth++;
12729                 if (r->in.domain_name) {
12730                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12731                 }
12732                 ndr->depth--;
12733                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12734                 ndr->depth++;
12735                 if (r->in.domain_guid) {
12736                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12737                 }
12738                 ndr->depth--;
12739                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
12740                 ndr->depth++;
12741                 if (r->in.site_guid) {
12742                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
12743                 }
12744                 ndr->depth--;
12745                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
12746                 ndr->depth--;
12747         }
12748         if (flags & NDR_OUT) {
12749                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
12750                 ndr->depth++;
12751                 ndr_print_ptr(ndr, "info", r->out.info);
12752                 ndr->depth++;
12753                 ndr_print_ptr(ndr, "info", *r->out.info);
12754                 ndr->depth++;
12755                 if (*r->out.info) {
12756                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
12757                 }
12758                 ndr->depth--;
12759                 ndr->depth--;
12760                 ndr_print_WERROR(ndr, "result", r->out.result);
12761                 ndr->depth--;
12762         }
12763         ndr->depth--;
12764 }
12765
12766 static enum ndr_err_code ndr_push_netr_LogonGetCapabilities(struct ndr_push *ndr, int flags, const struct netr_LogonGetCapabilities *r)
12767 {
12768         if (flags & NDR_IN) {
12769                 if (r->in.server_name == NULL) {
12770                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12771                 }
12772                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12773                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12774                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12775                 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));
12776                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12777                 if (r->in.computer_name) {
12778                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12779                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12780                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12781                         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));
12782                 }
12783                 if (r->in.credential == NULL) {
12784                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12785                 }
12786                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12787                 if (r->in.return_authenticator == NULL) {
12788                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12789                 }
12790                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12791                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.query_level));
12792         }
12793         if (flags & NDR_OUT) {
12794                 if (r->out.return_authenticator == NULL) {
12795                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12796                 }
12797                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12798                 if (r->out.capabilities == NULL) {
12799                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12800                 }
12801                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.capabilities, r->in.query_level));
12802                 NDR_CHECK(ndr_push_netr_Capabilities(ndr, NDR_SCALARS, r->out.capabilities));
12803                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12804         }
12805         return NDR_ERR_SUCCESS;
12806 }
12807
12808 static enum ndr_err_code ndr_pull_netr_LogonGetCapabilities(struct ndr_pull *ndr, int flags, struct netr_LogonGetCapabilities *r)
12809 {
12810         uint32_t _ptr_computer_name;
12811         TALLOC_CTX *_mem_save_computer_name_0;
12812         TALLOC_CTX *_mem_save_credential_0;
12813         TALLOC_CTX *_mem_save_return_authenticator_0;
12814         TALLOC_CTX *_mem_save_capabilities_0;
12815         if (flags & NDR_IN) {
12816                 ZERO_STRUCT(r->out);
12817
12818                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12819                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12820                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12821                         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));
12822                 }
12823                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12824                 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));
12825                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12826                 if (_ptr_computer_name) {
12827                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12828                 } else {
12829                         r->in.computer_name = NULL;
12830                 }
12831                 if (r->in.computer_name) {
12832                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12833                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12834                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12835                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12836                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12837                                 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));
12838                         }
12839                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12840                         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));
12841                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12842                 }
12843                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12844                         NDR_PULL_ALLOC(ndr, r->in.credential);
12845                 }
12846                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12847                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12848                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12849                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12850                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12851                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12852                 }
12853                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12854                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12855                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12856                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12857                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.query_level));
12858                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12859                 *r->out.return_authenticator = *r->in.return_authenticator;
12860                 NDR_PULL_ALLOC(ndr, r->out.capabilities);
12861                 ZERO_STRUCTP(r->out.capabilities);
12862         }
12863         if (flags & NDR_OUT) {
12864                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12865                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12866                 }
12867                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12868                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12869                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12870                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12871                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12872                         NDR_PULL_ALLOC(ndr, r->out.capabilities);
12873                 }
12874                 _mem_save_capabilities_0 = NDR_PULL_GET_MEM_CTX(ndr);
12875                 NDR_PULL_SET_MEM_CTX(ndr, r->out.capabilities, LIBNDR_FLAG_REF_ALLOC);
12876                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.capabilities, r->in.query_level));
12877                 NDR_CHECK(ndr_pull_netr_Capabilities(ndr, NDR_SCALARS, r->out.capabilities));
12878                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_capabilities_0, LIBNDR_FLAG_REF_ALLOC);
12879                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12880         }
12881         return NDR_ERR_SUCCESS;
12882 }
12883
12884 _PUBLIC_ void ndr_print_netr_LogonGetCapabilities(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetCapabilities *r)
12885 {
12886         ndr_print_struct(ndr, name, "netr_LogonGetCapabilities");
12887         ndr->depth++;
12888         if (flags & NDR_SET_VALUES) {
12889                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12890         }
12891         if (flags & NDR_IN) {
12892                 ndr_print_struct(ndr, "in", "netr_LogonGetCapabilities");
12893                 ndr->depth++;
12894                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12895                 ndr->depth++;
12896                 ndr_print_string(ndr, "server_name", r->in.server_name);
12897                 ndr->depth--;
12898                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12899                 ndr->depth++;
12900                 if (r->in.computer_name) {
12901                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12902                 }
12903                 ndr->depth--;
12904                 ndr_print_ptr(ndr, "credential", r->in.credential);
12905                 ndr->depth++;
12906                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12907                 ndr->depth--;
12908                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12909                 ndr->depth++;
12910                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12911                 ndr->depth--;
12912                 ndr_print_uint32(ndr, "query_level", r->in.query_level);
12913                 ndr->depth--;
12914         }
12915         if (flags & NDR_OUT) {
12916                 ndr_print_struct(ndr, "out", "netr_LogonGetCapabilities");
12917                 ndr->depth++;
12918                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12919                 ndr->depth++;
12920                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12921                 ndr->depth--;
12922                 ndr_print_ptr(ndr, "capabilities", r->out.capabilities);
12923                 ndr->depth++;
12924                 ndr_print_set_switch_value(ndr, r->out.capabilities, r->in.query_level);
12925                 ndr_print_netr_Capabilities(ndr, "capabilities", r->out.capabilities);
12926                 ndr->depth--;
12927                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12928                 ndr->depth--;
12929         }
12930         ndr->depth--;
12931 }
12932
12933 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
12934 {
12935         if (flags & NDR_IN) {
12936         }
12937         if (flags & NDR_OUT) {
12938                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12939         }
12940         return NDR_ERR_SUCCESS;
12941 }
12942
12943 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
12944 {
12945         if (flags & NDR_IN) {
12946         }
12947         if (flags & NDR_OUT) {
12948                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12949         }
12950         return NDR_ERR_SUCCESS;
12951 }
12952
12953 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
12954 {
12955         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
12956         ndr->depth++;
12957         if (flags & NDR_SET_VALUES) {
12958                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12959         }
12960         if (flags & NDR_IN) {
12961                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
12962                 ndr->depth++;
12963                 ndr->depth--;
12964         }
12965         if (flags & NDR_OUT) {
12966                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
12967                 ndr->depth++;
12968                 ndr_print_WERROR(ndr, "result", r->out.result);
12969                 ndr->depth--;
12970         }
12971         ndr->depth--;
12972 }
12973
12974 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
12975 {
12976         if (flags & NDR_IN) {
12977                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12978                 if (r->in.server_name) {
12979                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12980                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12981                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12982                         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));
12983                 }
12984                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12985                 if (r->in.domain_name) {
12986                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12987                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12988                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12989                         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));
12990                 }
12991         }
12992         if (flags & NDR_OUT) {
12993                 if (r->out.rid == NULL) {
12994                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12995                 }
12996                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
12997                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12998         }
12999         return NDR_ERR_SUCCESS;
13000 }
13001
13002 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
13003 {
13004         uint32_t _ptr_server_name;
13005         uint32_t _ptr_domain_name;
13006         TALLOC_CTX *_mem_save_server_name_0;
13007         TALLOC_CTX *_mem_save_domain_name_0;
13008         TALLOC_CTX *_mem_save_rid_0;
13009         if (flags & NDR_IN) {
13010                 ZERO_STRUCT(r->out);
13011
13012                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13013                 if (_ptr_server_name) {
13014                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13015                 } else {
13016                         r->in.server_name = NULL;
13017                 }
13018                 if (r->in.server_name) {
13019                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13020                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13021                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13022                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13023                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13024                                 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));
13025                         }
13026                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13027                         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));
13028                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13029                 }
13030                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
13031                 if (_ptr_domain_name) {
13032                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
13033                 } else {
13034                         r->in.domain_name = NULL;
13035                 }
13036                 if (r->in.domain_name) {
13037                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13038                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
13039                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
13040                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
13041                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
13042                                 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));
13043                         }
13044                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
13045                         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));
13046                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
13047                 }
13048                 NDR_PULL_ALLOC(ndr, r->out.rid);
13049                 ZERO_STRUCTP(r->out.rid);
13050         }
13051         if (flags & NDR_OUT) {
13052                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13053                         NDR_PULL_ALLOC(ndr, r->out.rid);
13054                 }
13055                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13056                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
13057                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
13058                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
13059                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13060         }
13061         return NDR_ERR_SUCCESS;
13062 }
13063
13064 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
13065 {
13066         ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
13067         ndr->depth++;
13068         if (flags & NDR_SET_VALUES) {
13069                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13070         }
13071         if (flags & NDR_IN) {
13072                 ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
13073                 ndr->depth++;
13074                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13075                 ndr->depth++;
13076                 if (r->in.server_name) {
13077                         ndr_print_string(ndr, "server_name", r->in.server_name);
13078                 }
13079                 ndr->depth--;
13080                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
13081                 ndr->depth++;
13082                 if (r->in.domain_name) {
13083                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
13084                 }
13085                 ndr->depth--;
13086                 ndr->depth--;
13087         }
13088         if (flags & NDR_OUT) {
13089                 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
13090                 ndr->depth++;
13091                 ndr_print_ptr(ndr, "rid", r->out.rid);
13092                 ndr->depth++;
13093                 ndr_print_uint32(ndr, "rid", *r->out.rid);
13094                 ndr->depth--;
13095                 ndr_print_WERROR(ndr, "result", r->out.result);
13096                 ndr->depth--;
13097         }
13098         ndr->depth--;
13099 }
13100
13101 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
13102 {
13103         if (flags & NDR_IN) {
13104         }
13105         if (flags & NDR_OUT) {
13106                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13107         }
13108         return NDR_ERR_SUCCESS;
13109 }
13110
13111 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
13112 {
13113         if (flags & NDR_IN) {
13114         }
13115         if (flags & NDR_OUT) {
13116                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13117         }
13118         return NDR_ERR_SUCCESS;
13119 }
13120
13121 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
13122 {
13123         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
13124         ndr->depth++;
13125         if (flags & NDR_SET_VALUES) {
13126                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13127         }
13128         if (flags & NDR_IN) {
13129                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
13130                 ndr->depth++;
13131                 ndr->depth--;
13132         }
13133         if (flags & NDR_OUT) {
13134                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
13135                 ndr->depth++;
13136                 ndr_print_WERROR(ndr, "result", r->out.result);
13137                 ndr->depth--;
13138         }
13139         ndr->depth--;
13140 }
13141
13142 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
13143 {
13144         if (flags & NDR_IN) {
13145         }
13146         if (flags & NDR_OUT) {
13147                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13148         }
13149         return NDR_ERR_SUCCESS;
13150 }
13151
13152 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
13153 {
13154         if (flags & NDR_IN) {
13155         }
13156         if (flags & NDR_OUT) {
13157                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13158         }
13159         return NDR_ERR_SUCCESS;
13160 }
13161
13162 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
13163 {
13164         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13165         ndr->depth++;
13166         if (flags & NDR_SET_VALUES) {
13167                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13168         }
13169         if (flags & NDR_IN) {
13170                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13171                 ndr->depth++;
13172                 ndr->depth--;
13173         }
13174         if (flags & NDR_OUT) {
13175                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13176                 ndr->depth++;
13177                 ndr_print_WERROR(ndr, "result", r->out.result);
13178                 ndr->depth--;
13179         }
13180         ndr->depth--;
13181 }
13182
13183 _PUBLIC_ enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
13184 {
13185         if (flags & NDR_IN) {
13186                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13187                 if (r->in.server_name) {
13188                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13189                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13190                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13191                         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));
13192                 }
13193                 if (r->in.account_name == NULL) {
13194                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13195                 }
13196                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13197                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13198                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13199                 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));
13200                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13201                 if (r->in.computer_name == NULL) {
13202                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13203                 }
13204                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13205                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13206                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13207                 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));
13208                 if (r->in.credentials == NULL) {
13209                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13210                 }
13211                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
13212                 if (r->in.negotiate_flags == NULL) {
13213                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13214                 }
13215                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
13216         }
13217         if (flags & NDR_OUT) {
13218                 if (r->out.return_credentials == NULL) {
13219                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13220                 }
13221                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
13222                 if (r->out.negotiate_flags == NULL) {
13223                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13224                 }
13225                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
13226                 if (r->out.rid == NULL) {
13227                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13228                 }
13229                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
13230                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13231         }
13232         return NDR_ERR_SUCCESS;
13233 }
13234
13235 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
13236 {
13237         uint32_t _ptr_server_name;
13238         TALLOC_CTX *_mem_save_server_name_0;
13239         TALLOC_CTX *_mem_save_credentials_0;
13240         TALLOC_CTX *_mem_save_return_credentials_0;
13241         TALLOC_CTX *_mem_save_negotiate_flags_0;
13242         TALLOC_CTX *_mem_save_rid_0;
13243         if (flags & NDR_IN) {
13244                 ZERO_STRUCT(r->out);
13245
13246                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13247                 if (_ptr_server_name) {
13248                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13249                 } else {
13250                         r->in.server_name = NULL;
13251                 }
13252                 if (r->in.server_name) {
13253                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13254                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13255                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13256                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13257                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13258                                 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));
13259                         }
13260                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13261                         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));
13262                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13263                 }
13264                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13265                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13266                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13267                         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));
13268                 }
13269                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13270                 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));
13271                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13272                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13273                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13274                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13275                         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));
13276                 }
13277                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13278                 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));
13279                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13280                         NDR_PULL_ALLOC(ndr, r->in.credentials);
13281                 }
13282                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
13283                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
13284                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
13285                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
13286                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13287                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
13288                 }
13289                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13290                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
13291                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
13292                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
13293                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
13294                 ZERO_STRUCTP(r->out.return_credentials);
13295                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
13296                 *r->out.negotiate_flags = *r->in.negotiate_flags;
13297                 NDR_PULL_ALLOC(ndr, r->out.rid);
13298                 ZERO_STRUCTP(r->out.rid);
13299         }
13300         if (flags & NDR_OUT) {
13301                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13302                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
13303                 }
13304                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
13305                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
13306                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
13307                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
13308                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13309                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
13310                 }
13311                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13312                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
13313                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
13314                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
13315                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13316                         NDR_PULL_ALLOC(ndr, r->out.rid);
13317                 }
13318                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13319                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
13320                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
13321                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
13322                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13323         }
13324         return NDR_ERR_SUCCESS;
13325 }
13326
13327 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
13328 {
13329         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
13330         ndr->depth++;
13331         if (flags & NDR_SET_VALUES) {
13332                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13333         }
13334         if (flags & NDR_IN) {
13335                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
13336                 ndr->depth++;
13337                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13338                 ndr->depth++;
13339                 if (r->in.server_name) {
13340                         ndr_print_string(ndr, "server_name", r->in.server_name);
13341                 }
13342                 ndr->depth--;
13343                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
13344                 ndr->depth++;
13345                 ndr_print_string(ndr, "account_name", r->in.account_name);
13346                 ndr->depth--;
13347                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13348                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13349                 ndr->depth++;
13350                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13351                 ndr->depth--;
13352                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
13353                 ndr->depth++;
13354                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
13355                 ndr->depth--;
13356                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
13357                 ndr->depth++;
13358                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
13359                 ndr->depth--;
13360                 ndr->depth--;
13361         }
13362         if (flags & NDR_OUT) {
13363                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
13364                 ndr->depth++;
13365                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
13366                 ndr->depth++;
13367                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
13368                 ndr->depth--;
13369                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
13370                 ndr->depth++;
13371                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
13372                 ndr->depth--;
13373                 ndr_print_ptr(ndr, "rid", r->out.rid);
13374                 ndr->depth++;
13375                 ndr_print_uint32(ndr, "rid", *r->out.rid);
13376                 ndr->depth--;
13377                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13378                 ndr->depth--;
13379         }
13380         ndr->depth--;
13381 }
13382
13383 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
13384 {
13385         if (flags & NDR_IN) {
13386                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
13387                 if (r->in.server_unc) {
13388                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
13389                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13390                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
13391                         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));
13392                 }
13393                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
13394                 if (r->in.domain_name) {
13395                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13396                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13397                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13398                         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));
13399                 }
13400                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13401                 if (r->in.domain_guid) {
13402                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13403                 }
13404                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
13405                 if (r->in.site_name) {
13406                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
13407                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13408                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
13409                         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));
13410                 }
13411                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
13412         }
13413         if (flags & NDR_OUT) {
13414                 if (r->out.info == NULL) {
13415                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13416                 }
13417                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
13418                 if (*r->out.info) {
13419                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
13420                 }
13421                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13422         }
13423         return NDR_ERR_SUCCESS;
13424 }
13425
13426 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
13427 {
13428         uint32_t _ptr_server_unc;
13429         uint32_t _ptr_domain_name;
13430         uint32_t _ptr_domain_guid;
13431         uint32_t _ptr_site_name;
13432         uint32_t _ptr_info;
13433         TALLOC_CTX *_mem_save_server_unc_0;
13434         TALLOC_CTX *_mem_save_domain_name_0;
13435         TALLOC_CTX *_mem_save_domain_guid_0;
13436         TALLOC_CTX *_mem_save_site_name_0;
13437         TALLOC_CTX *_mem_save_info_0;
13438         TALLOC_CTX *_mem_save_info_1;
13439         if (flags & NDR_IN) {
13440                 ZERO_STRUCT(r->out);
13441
13442                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
13443                 if (_ptr_server_unc) {
13444                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
13445                 } else {
13446                         r->in.server_unc = NULL;
13447                 }
13448                 if (r->in.server_unc) {
13449                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
13450                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
13451                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
13452                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
13453                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
13454                                 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));
13455                         }
13456                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
13457                         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));
13458                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
13459                 }
13460                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
13461                 if (_ptr_domain_name) {
13462                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
13463                 } else {
13464                         r->in.domain_name = NULL;
13465                 }
13466                 if (r->in.domain_name) {
13467                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13468                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
13469                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
13470                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
13471                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
13472                                 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));
13473                         }
13474                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
13475                         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));
13476                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
13477                 }
13478                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
13479                 if (_ptr_domain_guid) {
13480                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
13481                 } else {
13482                         r->in.domain_guid = NULL;
13483                 }
13484                 if (r->in.domain_guid) {
13485                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13486                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
13487                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13488                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
13489                 }
13490                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
13491                 if (_ptr_site_name) {
13492                         NDR_PULL_ALLOC(ndr, r->in.site_name);
13493                 } else {
13494                         r->in.site_name = NULL;
13495                 }
13496                 if (r->in.site_name) {
13497                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13498                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
13499                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
13500                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
13501                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
13502                                 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));
13503                         }
13504                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
13505                         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));
13506                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
13507                 }
13508                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
13509                 NDR_PULL_ALLOC(ndr, r->out.info);
13510                 ZERO_STRUCTP(r->out.info);
13511         }
13512         if (flags & NDR_OUT) {
13513                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13514                         NDR_PULL_ALLOC(ndr, r->out.info);
13515                 }
13516                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13517                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
13518                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
13519                 if (_ptr_info) {
13520                         NDR_PULL_ALLOC(ndr, *r->out.info);
13521                 } else {
13522                         *r->out.info = NULL;
13523                 }
13524                 if (*r->out.info) {
13525                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
13526                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
13527                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
13528                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
13529                 }
13530                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
13531                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13532         }
13533         return NDR_ERR_SUCCESS;
13534 }
13535
13536 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
13537 {
13538         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
13539         ndr->depth++;
13540         if (flags & NDR_SET_VALUES) {
13541                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13542         }
13543         if (flags & NDR_IN) {
13544                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
13545                 ndr->depth++;
13546                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
13547                 ndr->depth++;
13548                 if (r->in.server_unc) {
13549                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
13550                 }
13551                 ndr->depth--;
13552                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
13553                 ndr->depth++;
13554                 if (r->in.domain_name) {
13555                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
13556                 }
13557                 ndr->depth--;
13558                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13559                 ndr->depth++;
13560                 if (r->in.domain_guid) {
13561                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13562                 }
13563                 ndr->depth--;
13564                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
13565                 ndr->depth++;
13566                 if (r->in.site_name) {
13567                         ndr_print_string(ndr, "site_name", r->in.site_name);
13568                 }
13569                 ndr->depth--;
13570                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
13571                 ndr->depth--;
13572         }
13573         if (flags & NDR_OUT) {
13574                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
13575                 ndr->depth++;
13576                 ndr_print_ptr(ndr, "info", r->out.info);
13577                 ndr->depth++;
13578                 ndr_print_ptr(ndr, "info", *r->out.info);
13579                 ndr->depth++;
13580                 if (*r->out.info) {
13581                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
13582                 }
13583                 ndr->depth--;
13584                 ndr->depth--;
13585                 ndr_print_WERROR(ndr, "result", r->out.result);
13586                 ndr->depth--;
13587         }
13588         ndr->depth--;
13589 }
13590
13591 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
13592 {
13593         if (flags & NDR_IN) {
13594                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13595                 if (r->in.computer_name) {
13596                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13597                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13598                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13599                         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));
13600                 }
13601         }
13602         if (flags & NDR_OUT) {
13603                 if (r->out.site == NULL) {
13604                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13605                 }
13606                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
13607                 if (*r->out.site) {
13608                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
13609                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13610                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
13611                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13612                 }
13613                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13614         }
13615         return NDR_ERR_SUCCESS;
13616 }
13617
13618 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
13619 {
13620         uint32_t _ptr_computer_name;
13621         uint32_t _ptr_site;
13622         TALLOC_CTX *_mem_save_computer_name_0;
13623         TALLOC_CTX *_mem_save_site_0;
13624         TALLOC_CTX *_mem_save_site_1;
13625         if (flags & NDR_IN) {
13626                 ZERO_STRUCT(r->out);
13627
13628                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13629                 if (_ptr_computer_name) {
13630                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13631                 } else {
13632                         r->in.computer_name = NULL;
13633                 }
13634                 if (r->in.computer_name) {
13635                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13636                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13637                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13638                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13639                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13640                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
13641                         }
13642                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13643                         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));
13644                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13645                 }
13646                 NDR_PULL_ALLOC(ndr, r->out.site);
13647                 ZERO_STRUCTP(r->out.site);
13648         }
13649         if (flags & NDR_OUT) {
13650                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13651                         NDR_PULL_ALLOC(ndr, r->out.site);
13652                 }
13653                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
13654                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
13655                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
13656                 if (_ptr_site) {
13657                         NDR_PULL_ALLOC(ndr, *r->out.site);
13658                 } else {
13659                         *r->out.site = NULL;
13660                 }
13661                 if (*r->out.site) {
13662                         _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
13663                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
13664                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
13665                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
13666                         if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
13667                                 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));
13668                         }
13669                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
13670                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
13671                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
13672                 }
13673                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
13674                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13675         }
13676         return NDR_ERR_SUCCESS;
13677 }
13678
13679 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
13680 {
13681         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
13682         ndr->depth++;
13683         if (flags & NDR_SET_VALUES) {
13684                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13685         }
13686         if (flags & NDR_IN) {
13687                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
13688                 ndr->depth++;
13689                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13690                 ndr->depth++;
13691                 if (r->in.computer_name) {
13692                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13693                 }
13694                 ndr->depth--;
13695                 ndr->depth--;
13696         }
13697         if (flags & NDR_OUT) {
13698                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
13699                 ndr->depth++;
13700                 ndr_print_ptr(ndr, "site", r->out.site);
13701                 ndr->depth++;
13702                 ndr_print_ptr(ndr, "site", *r->out.site);
13703                 ndr->depth++;
13704                 if (*r->out.site) {
13705                         ndr_print_string(ndr, "site", *r->out.site);
13706                 }
13707                 ndr->depth--;
13708                 ndr->depth--;
13709                 ndr_print_WERROR(ndr, "result", r->out.result);
13710                 ndr->depth--;
13711         }
13712         ndr->depth--;
13713 }
13714
13715 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
13716 {
13717         if (flags & NDR_IN) {
13718                 if (r->in.server_name == NULL) {
13719                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13720                 }
13721                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13722                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13723                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13724                 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));
13725                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13726                 if (r->in.computer_name) {
13727                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13728                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13729                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13730                         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));
13731                 }
13732                 if (r->in.credential == NULL) {
13733                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13734                 }
13735                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13736                 if (r->in.return_authenticator == NULL) {
13737                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13738                 }
13739                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
13740                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13741                 if (r->in.query == NULL) {
13742                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13743                 }
13744                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.query, r->in.level));
13745                 NDR_CHECK(ndr_push_netr_WorkstationInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.query));
13746         }
13747         if (flags & NDR_OUT) {
13748                 if (r->out.return_authenticator == NULL) {
13749                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13750                 }
13751                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13752                 if (r->out.info == NULL) {
13753                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13754                 }
13755                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
13756                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13757                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13758         }
13759         return NDR_ERR_SUCCESS;
13760 }
13761
13762 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
13763 {
13764         uint32_t _ptr_computer_name;
13765         TALLOC_CTX *_mem_save_computer_name_0;
13766         TALLOC_CTX *_mem_save_credential_0;
13767         TALLOC_CTX *_mem_save_return_authenticator_0;
13768         TALLOC_CTX *_mem_save_query_0;
13769         TALLOC_CTX *_mem_save_info_0;
13770         if (flags & NDR_IN) {
13771                 ZERO_STRUCT(r->out);
13772
13773                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13774                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13775                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13776                         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));
13777                 }
13778                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13779                 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));
13780                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13781                 if (_ptr_computer_name) {
13782                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13783                 } else {
13784                         r->in.computer_name = NULL;
13785                 }
13786                 if (r->in.computer_name) {
13787                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13788                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13789                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13790                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13791                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13792                                 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));
13793                         }
13794                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13795                         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));
13796                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13797                 }
13798                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13799                         NDR_PULL_ALLOC(ndr, r->in.credential);
13800                 }
13801                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13802                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13803                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13804                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13805                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13806                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
13807                 }
13808                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13809                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13810                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
13811                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13812                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13813                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13814                         NDR_PULL_ALLOC(ndr, r->in.query);
13815                 }
13816                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
13817                 NDR_PULL_SET_MEM_CTX(ndr, r->in.query, LIBNDR_FLAG_REF_ALLOC);
13818                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.query, r->in.level));
13819                 NDR_CHECK(ndr_pull_netr_WorkstationInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.query));
13820                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
13821                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13822                 *r->out.return_authenticator = *r->in.return_authenticator;
13823                 NDR_PULL_ALLOC(ndr, r->out.info);
13824                 ZERO_STRUCTP(r->out.info);
13825         }
13826         if (flags & NDR_OUT) {
13827                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13828                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13829                 }
13830                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13831                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13832                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13833                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13834                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13835                         NDR_PULL_ALLOC(ndr, r->out.info);
13836                 }
13837                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13838                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
13839                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
13840                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13841                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
13842                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13843         }
13844         return NDR_ERR_SUCCESS;
13845 }
13846
13847 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
13848 {
13849         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
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_LogonGetDomainInfo");
13856                 ndr->depth++;
13857                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13858                 ndr->depth++;
13859                 ndr_print_string(ndr, "server_name", r->in.server_name);
13860                 ndr->depth--;
13861                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13862                 ndr->depth++;
13863                 if (r->in.computer_name) {
13864                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13865                 }
13866                 ndr->depth--;
13867                 ndr_print_ptr(ndr, "credential", r->in.credential);
13868                 ndr->depth++;
13869                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13870                 ndr->depth--;
13871                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
13872                 ndr->depth++;
13873                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
13874                 ndr->depth--;
13875                 ndr_print_uint32(ndr, "level", r->in.level);
13876                 ndr_print_ptr(ndr, "query", r->in.query);
13877                 ndr->depth++;
13878                 ndr_print_set_switch_value(ndr, r->in.query, r->in.level);
13879                 ndr_print_netr_WorkstationInfo(ndr, "query", r->in.query);
13880                 ndr->depth--;
13881                 ndr->depth--;
13882         }
13883         if (flags & NDR_OUT) {
13884                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
13885                 ndr->depth++;
13886                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13887                 ndr->depth++;
13888                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13889                 ndr->depth--;
13890                 ndr_print_ptr(ndr, "info", r->out.info);
13891                 ndr->depth++;
13892                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
13893                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
13894                 ndr->depth--;
13895                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13896                 ndr->depth--;
13897         }
13898         ndr->depth--;
13899 }
13900
13901 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
13902 {
13903         if (flags & NDR_IN) {
13904                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13905                 if (r->in.server_name) {
13906                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_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.server_name, CH_UTF16)));
13909                         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));
13910                 }
13911                 if (r->in.account_name == NULL) {
13912                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13913                 }
13914                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13915                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13916                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13917                 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));
13918                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13919                 if (r->in.computer_name == NULL) {
13920                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13921                 }
13922                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13923                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13924                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13925                 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));
13926                 if (r->in.credential == NULL) {
13927                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13928                 }
13929                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13930                 if (r->in.new_password == NULL) {
13931                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13932                 }
13933                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
13934         }
13935         if (flags & NDR_OUT) {
13936                 if (r->out.return_authenticator == NULL) {
13937                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13938                 }
13939                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13940                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13941         }
13942         return NDR_ERR_SUCCESS;
13943 }
13944
13945 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
13946 {
13947         uint32_t _ptr_server_name;
13948         TALLOC_CTX *_mem_save_server_name_0;
13949         TALLOC_CTX *_mem_save_credential_0;
13950         TALLOC_CTX *_mem_save_return_authenticator_0;
13951         TALLOC_CTX *_mem_save_new_password_0;
13952         if (flags & NDR_IN) {
13953                 ZERO_STRUCT(r->out);
13954
13955                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13956                 if (_ptr_server_name) {
13957                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13958                 } else {
13959                         r->in.server_name = NULL;
13960                 }
13961                 if (r->in.server_name) {
13962                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13963                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13964                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13965                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13966                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13967                                 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));
13968                         }
13969                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13970                         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));
13971                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13972                 }
13973                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13974                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13975                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13976                         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));
13977                 }
13978                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13979                 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));
13980                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13981                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13982                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13983                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13984                         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));
13985                 }
13986                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13987                 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));
13988                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13989                         NDR_PULL_ALLOC(ndr, r->in.credential);
13990                 }
13991                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13992                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13993                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13994                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13995                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13996                         NDR_PULL_ALLOC(ndr, r->in.new_password);
13997                 }
13998                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
13999                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
14000                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
14001                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
14002                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14003                 ZERO_STRUCTP(r->out.return_authenticator);
14004         }
14005         if (flags & NDR_OUT) {
14006                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14007                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14008                 }
14009                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14010                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14011                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14012                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14013                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14014         }
14015         return NDR_ERR_SUCCESS;
14016 }
14017
14018 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
14019 {
14020         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
14021         ndr->depth++;
14022         if (flags & NDR_SET_VALUES) {
14023                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14024         }
14025         if (flags & NDR_IN) {
14026                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
14027                 ndr->depth++;
14028                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14029                 ndr->depth++;
14030                 if (r->in.server_name) {
14031                         ndr_print_string(ndr, "server_name", r->in.server_name);
14032                 }
14033                 ndr->depth--;
14034                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
14035                 ndr->depth++;
14036                 ndr_print_string(ndr, "account_name", r->in.account_name);
14037                 ndr->depth--;
14038                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
14039                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14040                 ndr->depth++;
14041                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
14042                 ndr->depth--;
14043                 ndr_print_ptr(ndr, "credential", r->in.credential);
14044                 ndr->depth++;
14045                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14046                 ndr->depth--;
14047                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
14048                 ndr->depth++;
14049                 ndr_print_netr_CryptPassword(ndr, "new_password", r->in.new_password);
14050                 ndr->depth--;
14051                 ndr->depth--;
14052         }
14053         if (flags & NDR_OUT) {
14054                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
14055                 ndr->depth++;
14056                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14057                 ndr->depth++;
14058                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14059                 ndr->depth--;
14060                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14061                 ndr->depth--;
14062         }
14063         ndr->depth--;
14064 }
14065
14066 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
14067 {
14068         if (flags & NDR_IN) {
14069                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14070                 if (r->in.server_name) {
14071                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14072                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14073                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14074                         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));
14075                 }
14076                 if (r->in.account_name == NULL) {
14077                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14078                 }
14079                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
14080                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14081                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
14082                 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));
14083                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
14084                 if (r->in.computer_name == NULL) {
14085                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14086                 }
14087                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14088                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14089                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14090                 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));
14091                 if (r->in.credential == NULL) {
14092                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14093                 }
14094                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14095         }
14096         if (flags & NDR_OUT) {
14097                 if (r->out.return_authenticator == NULL) {
14098                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14099                 }
14100                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14101                 if (r->out.password == NULL) {
14102                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14103                 }
14104                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
14105                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14106         }
14107         return NDR_ERR_SUCCESS;
14108 }
14109
14110 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
14111 {
14112         uint32_t _ptr_server_name;
14113         TALLOC_CTX *_mem_save_server_name_0;
14114         TALLOC_CTX *_mem_save_credential_0;
14115         TALLOC_CTX *_mem_save_return_authenticator_0;
14116         TALLOC_CTX *_mem_save_password_0;
14117         if (flags & NDR_IN) {
14118                 ZERO_STRUCT(r->out);
14119
14120                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14121                 if (_ptr_server_name) {
14122                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14123                 } else {
14124                         r->in.server_name = NULL;
14125                 }
14126                 if (r->in.server_name) {
14127                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14128                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14129                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14130                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14131                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14132                                 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));
14133                         }
14134                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14135                         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));
14136                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14137                 }
14138                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
14139                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
14140                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
14141                         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));
14142                 }
14143                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
14144                 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));
14145                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
14146                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14147                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14148                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14149                         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));
14150                 }
14151                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14152                 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));
14153                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14154                         NDR_PULL_ALLOC(ndr, r->in.credential);
14155                 }
14156                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14157                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14158                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14159                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14160                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14161                 ZERO_STRUCTP(r->out.return_authenticator);
14162                 NDR_PULL_ALLOC(ndr, r->out.password);
14163                 ZERO_STRUCTP(r->out.password);
14164         }
14165         if (flags & NDR_OUT) {
14166                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14167                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14168                 }
14169                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14170                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14171                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14172                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14173                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14174                         NDR_PULL_ALLOC(ndr, r->out.password);
14175                 }
14176                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
14177                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
14178                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
14179                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
14180                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14181         }
14182         return NDR_ERR_SUCCESS;
14183 }
14184
14185 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
14186 {
14187         ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
14188         ndr->depth++;
14189         if (flags & NDR_SET_VALUES) {
14190                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14191         }
14192         if (flags & NDR_IN) {
14193                 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
14194                 ndr->depth++;
14195                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14196                 ndr->depth++;
14197                 if (r->in.server_name) {
14198                         ndr_print_string(ndr, "server_name", r->in.server_name);
14199                 }
14200                 ndr->depth--;
14201                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
14202                 ndr->depth++;
14203                 ndr_print_string(ndr, "account_name", r->in.account_name);
14204                 ndr->depth--;
14205                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
14206                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14207                 ndr->depth++;
14208                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
14209                 ndr->depth--;
14210                 ndr_print_ptr(ndr, "credential", r->in.credential);
14211                 ndr->depth++;
14212                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14213                 ndr->depth--;
14214                 ndr->depth--;
14215         }
14216         if (flags & NDR_OUT) {
14217                 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
14218                 ndr->depth++;
14219                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14220                 ndr->depth++;
14221                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14222                 ndr->depth--;
14223                 ndr_print_ptr(ndr, "password", r->out.password);
14224                 ndr->depth++;
14225                 ndr_print_samr_Password(ndr, "password", r->out.password);
14226                 ndr->depth--;
14227                 ndr_print_WERROR(ndr, "result", r->out.result);
14228                 ndr->depth--;
14229         }
14230         ndr->depth--;
14231 }
14232
14233 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
14234 {
14235         if (flags & NDR_IN) {
14236         }
14237         if (flags & NDR_OUT) {
14238                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14239         }
14240         return NDR_ERR_SUCCESS;
14241 }
14242
14243 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
14244 {
14245         if (flags & NDR_IN) {
14246         }
14247         if (flags & NDR_OUT) {
14248                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14249         }
14250         return NDR_ERR_SUCCESS;
14251 }
14252
14253 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
14254 {
14255         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
14256         ndr->depth++;
14257         if (flags & NDR_SET_VALUES) {
14258                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14259         }
14260         if (flags & NDR_IN) {
14261                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
14262                 ndr->depth++;
14263                 ndr->depth--;
14264         }
14265         if (flags & NDR_OUT) {
14266                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
14267                 ndr->depth++;
14268                 ndr_print_WERROR(ndr, "result", r->out.result);
14269                 ndr->depth--;
14270         }
14271         ndr->depth--;
14272 }
14273
14274 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
14275 {
14276         uint32_t cntr_addresses_1;
14277         if (flags & NDR_IN) {
14278                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14279                 if (r->in.server_name) {
14280                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14281                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14282                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14283                         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));
14284                 }
14285                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14286                 if (r->in.addresses == NULL) {
14287                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14288                 }
14289                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14290                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14291                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14292                 }
14293                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14294                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14295                 }
14296         }
14297         if (flags & NDR_OUT) {
14298                 if (r->out.ctr == NULL) {
14299                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14300                 }
14301                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
14302                 if (*r->out.ctr) {
14303                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14304                 }
14305                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14306         }
14307         return NDR_ERR_SUCCESS;
14308 }
14309
14310 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
14311 {
14312         uint32_t _ptr_server_name;
14313         uint32_t cntr_addresses_1;
14314         uint32_t _ptr_ctr;
14315         TALLOC_CTX *_mem_save_server_name_0;
14316         TALLOC_CTX *_mem_save_addresses_1;
14317         TALLOC_CTX *_mem_save_ctr_0;
14318         TALLOC_CTX *_mem_save_ctr_1;
14319         if (flags & NDR_IN) {
14320                 ZERO_STRUCT(r->out);
14321
14322                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14323                 if (_ptr_server_name) {
14324                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14325                 } else {
14326                         r->in.server_name = NULL;
14327                 }
14328                 if (r->in.server_name) {
14329                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14330                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14331                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14332                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14333                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14334                                 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));
14335                         }
14336                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14337                         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));
14338                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14339                 }
14340                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14341                 if (r->in.count > 32000) {
14342                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
14343                 }
14344                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
14345                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14346                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
14347                 }
14348                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
14349                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
14350                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14351                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14352                 }
14353                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14354                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14355                 }
14356                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
14357                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14358                 ZERO_STRUCTP(r->out.ctr);
14359                 if (r->in.addresses) {
14360                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
14361                 }
14362         }
14363         if (flags & NDR_OUT) {
14364                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14365                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14366                 }
14367                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14368                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14369                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14370                 if (_ptr_ctr) {
14371                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
14372                 } else {
14373                         *r->out.ctr = NULL;
14374                 }
14375                 if (*r->out.ctr) {
14376                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
14377                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
14378                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14379                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
14380                 }
14381                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14382                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14383         }
14384         return NDR_ERR_SUCCESS;
14385 }
14386
14387 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
14388 {
14389         uint32_t cntr_addresses_1;
14390         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
14391         ndr->depth++;
14392         if (flags & NDR_SET_VALUES) {
14393                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14394         }
14395         if (flags & NDR_IN) {
14396                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
14397                 ndr->depth++;
14398                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14399                 ndr->depth++;
14400                 if (r->in.server_name) {
14401                         ndr_print_string(ndr, "server_name", r->in.server_name);
14402                 }
14403                 ndr->depth--;
14404                 ndr_print_uint32(ndr, "count", r->in.count);
14405                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
14406                 ndr->depth++;
14407                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
14408                 ndr->depth++;
14409                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
14410                         char *idx_1=NULL;
14411                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
14412                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
14413                                 free(idx_1);
14414                         }
14415                 }
14416                 ndr->depth--;
14417                 ndr->depth--;
14418                 ndr->depth--;
14419         }
14420         if (flags & NDR_OUT) {
14421                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
14422                 ndr->depth++;
14423                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14424                 ndr->depth++;
14425                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
14426                 ndr->depth++;
14427                 if (*r->out.ctr) {
14428                         ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
14429                 }
14430                 ndr->depth--;
14431                 ndr->depth--;
14432                 ndr_print_WERROR(ndr, "result", r->out.result);
14433                 ndr->depth--;
14434         }
14435         ndr->depth--;
14436 }
14437
14438 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
14439 {
14440         if (flags & NDR_IN) {
14441                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
14442                 if (r->in.server_unc) {
14443                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
14444                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14445                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
14446                         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));
14447                 }
14448                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
14449                 if (r->in.client_account) {
14450                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
14451                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14452                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
14453                         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));
14454                 }
14455                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
14456                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
14457                 if (r->in.domain_name) {
14458                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
14459                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14460                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
14461                         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));
14462                 }
14463                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
14464                 if (r->in.domain_guid) {
14465                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
14466                 }
14467                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
14468                 if (r->in.site_name) {
14469                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
14470                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14471                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
14472                         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));
14473                 }
14474                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
14475         }
14476         if (flags & NDR_OUT) {
14477                 if (r->out.info == NULL) {
14478                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14479                 }
14480                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
14481                 if (*r->out.info) {
14482                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
14483                 }
14484                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14485         }
14486         return NDR_ERR_SUCCESS;
14487 }
14488
14489 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
14490 {
14491         uint32_t _ptr_server_unc;
14492         uint32_t _ptr_client_account;
14493         uint32_t _ptr_domain_name;
14494         uint32_t _ptr_domain_guid;
14495         uint32_t _ptr_site_name;
14496         uint32_t _ptr_info;
14497         TALLOC_CTX *_mem_save_server_unc_0;
14498         TALLOC_CTX *_mem_save_client_account_0;
14499         TALLOC_CTX *_mem_save_domain_name_0;
14500         TALLOC_CTX *_mem_save_domain_guid_0;
14501         TALLOC_CTX *_mem_save_site_name_0;
14502         TALLOC_CTX *_mem_save_info_0;
14503         TALLOC_CTX *_mem_save_info_1;
14504         if (flags & NDR_IN) {
14505                 ZERO_STRUCT(r->out);
14506
14507                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
14508                 if (_ptr_server_unc) {
14509                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
14510                 } else {
14511                         r->in.server_unc = NULL;
14512                 }
14513                 if (r->in.server_unc) {
14514                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
14515                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
14516                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
14517                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
14518                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
14519                                 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));
14520                         }
14521                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
14522                         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));
14523                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
14524                 }
14525                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
14526                 if (_ptr_client_account) {
14527                         NDR_PULL_ALLOC(ndr, r->in.client_account);
14528                 } else {
14529                         r->in.client_account = NULL;
14530                 }
14531                 if (r->in.client_account) {
14532                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
14533                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
14534                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
14535                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
14536                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
14537                                 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));
14538                         }
14539                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
14540                         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));
14541                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
14542                 }
14543                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
14544                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
14545                 if (_ptr_domain_name) {
14546                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
14547                 } else {
14548                         r->in.domain_name = NULL;
14549                 }
14550                 if (r->in.domain_name) {
14551                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14552                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
14553                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
14554                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
14555                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
14556                                 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));
14557                         }
14558                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
14559                         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));
14560                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
14561                 }
14562                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
14563                 if (_ptr_domain_guid) {
14564                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
14565                 } else {
14566                         r->in.domain_guid = NULL;
14567                 }
14568                 if (r->in.domain_guid) {
14569                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
14570                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
14571                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
14572                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
14573                 }
14574                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
14575                 if (_ptr_site_name) {
14576                         NDR_PULL_ALLOC(ndr, r->in.site_name);
14577                 } else {
14578                         r->in.site_name = NULL;
14579                 }
14580                 if (r->in.site_name) {
14581                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14582                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
14583                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
14584                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
14585                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
14586                                 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));
14587                         }
14588                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
14589                         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));
14590                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
14591                 }
14592                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
14593                 NDR_PULL_ALLOC(ndr, r->out.info);
14594                 ZERO_STRUCTP(r->out.info);
14595         }
14596         if (flags & NDR_OUT) {
14597                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14598                         NDR_PULL_ALLOC(ndr, r->out.info);
14599                 }
14600                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14601                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
14602                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14603                 if (_ptr_info) {
14604                         NDR_PULL_ALLOC(ndr, *r->out.info);
14605                 } else {
14606                         *r->out.info = NULL;
14607                 }
14608                 if (*r->out.info) {
14609                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14610                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
14611                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
14612                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
14613                 }
14614                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
14615                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14616         }
14617         return NDR_ERR_SUCCESS;
14618 }
14619
14620 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
14621 {
14622         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
14623         ndr->depth++;
14624         if (flags & NDR_SET_VALUES) {
14625                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14626         }
14627         if (flags & NDR_IN) {
14628                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
14629                 ndr->depth++;
14630                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
14631                 ndr->depth++;
14632                 if (r->in.server_unc) {
14633                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
14634                 }
14635                 ndr->depth--;
14636                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
14637                 ndr->depth++;
14638                 if (r->in.client_account) {
14639                         ndr_print_string(ndr, "client_account", r->in.client_account);
14640                 }
14641                 ndr->depth--;
14642                 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
14643                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
14644                 ndr->depth++;
14645                 if (r->in.domain_name) {
14646                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
14647                 }
14648                 ndr->depth--;
14649                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
14650                 ndr->depth++;
14651                 if (r->in.domain_guid) {
14652                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
14653                 }
14654                 ndr->depth--;
14655                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
14656                 ndr->depth++;
14657                 if (r->in.site_name) {
14658                         ndr_print_string(ndr, "site_name", r->in.site_name);
14659                 }
14660                 ndr->depth--;
14661                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
14662                 ndr->depth--;
14663         }
14664         if (flags & NDR_OUT) {
14665                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
14666                 ndr->depth++;
14667                 ndr_print_ptr(ndr, "info", r->out.info);
14668                 ndr->depth++;
14669                 ndr_print_ptr(ndr, "info", *r->out.info);
14670                 ndr->depth++;
14671                 if (*r->out.info) {
14672                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
14673                 }
14674                 ndr->depth--;
14675                 ndr->depth--;
14676                 ndr_print_WERROR(ndr, "result", r->out.result);
14677                 ndr->depth--;
14678         }
14679         ndr->depth--;
14680 }
14681
14682 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
14683 {
14684         if (flags & NDR_IN) {
14685         }
14686         if (flags & NDR_OUT) {
14687                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14688         }
14689         return NDR_ERR_SUCCESS;
14690 }
14691
14692 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
14693 {
14694         if (flags & NDR_IN) {
14695         }
14696         if (flags & NDR_OUT) {
14697                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14698         }
14699         return NDR_ERR_SUCCESS;
14700 }
14701
14702 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
14703 {
14704         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14705         ndr->depth++;
14706         if (flags & NDR_SET_VALUES) {
14707                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14708         }
14709         if (flags & NDR_IN) {
14710                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14711                 ndr->depth++;
14712                 ndr->depth--;
14713         }
14714         if (flags & NDR_OUT) {
14715                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14716                 ndr->depth++;
14717                 ndr_print_WERROR(ndr, "result", r->out.result);
14718                 ndr->depth--;
14719         }
14720         ndr->depth--;
14721 }
14722
14723 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
14724 {
14725         if (flags & NDR_IN) {
14726                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14727                 if (r->in.server_name) {
14728                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14729                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14730                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14731                         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));
14732                 }
14733         }
14734         if (flags & NDR_OUT) {
14735                 if (r->out.dom_trust_list == NULL) {
14736                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14737                 }
14738                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
14739                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14740         }
14741         return NDR_ERR_SUCCESS;
14742 }
14743
14744 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
14745 {
14746         uint32_t _ptr_server_name;
14747         TALLOC_CTX *_mem_save_server_name_0;
14748         TALLOC_CTX *_mem_save_dom_trust_list_0;
14749         if (flags & NDR_IN) {
14750                 ZERO_STRUCT(r->out);
14751
14752                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14753                 if (_ptr_server_name) {
14754                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14755                 } else {
14756                         r->in.server_name = NULL;
14757                 }
14758                 if (r->in.server_name) {
14759                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14760                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14761                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14762                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14763                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14764                                 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));
14765                         }
14766                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14767                         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));
14768                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14769                 }
14770                 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
14771                 ZERO_STRUCTP(r->out.dom_trust_list);
14772         }
14773         if (flags & NDR_OUT) {
14774                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14775                         NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
14776                 }
14777                 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
14778                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
14779                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
14780                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
14781                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14782         }
14783         return NDR_ERR_SUCCESS;
14784 }
14785
14786 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
14787 {
14788         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
14789         ndr->depth++;
14790         if (flags & NDR_SET_VALUES) {
14791                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14792         }
14793         if (flags & NDR_IN) {
14794                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
14795                 ndr->depth++;
14796                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14797                 ndr->depth++;
14798                 if (r->in.server_name) {
14799                         ndr_print_string(ndr, "server_name", r->in.server_name);
14800                 }
14801                 ndr->depth--;
14802                 ndr->depth--;
14803         }
14804         if (flags & NDR_OUT) {
14805                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
14806                 ndr->depth++;
14807                 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
14808                 ndr->depth++;
14809                 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
14810                 ndr->depth--;
14811                 ndr_print_WERROR(ndr, "result", r->out.result);
14812                 ndr->depth--;
14813         }
14814         ndr->depth--;
14815 }
14816
14817 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
14818 {
14819         uint32_t cntr_addresses_1;
14820         if (flags & NDR_IN) {
14821                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14822                 if (r->in.server_name) {
14823                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14824                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14825                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14826                         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));
14827                 }
14828                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14829                 if (r->in.addresses == NULL) {
14830                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14831                 }
14832                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14833                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14834                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14835                 }
14836                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14837                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14838                 }
14839         }
14840         if (flags & NDR_OUT) {
14841                 if (r->out.ctr == NULL) {
14842                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14843                 }
14844                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
14845                 if (*r->out.ctr) {
14846                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14847                 }
14848                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14849         }
14850         return NDR_ERR_SUCCESS;
14851 }
14852
14853 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
14854 {
14855         uint32_t _ptr_server_name;
14856         uint32_t cntr_addresses_1;
14857         uint32_t _ptr_ctr;
14858         TALLOC_CTX *_mem_save_server_name_0;
14859         TALLOC_CTX *_mem_save_addresses_1;
14860         TALLOC_CTX *_mem_save_ctr_0;
14861         TALLOC_CTX *_mem_save_ctr_1;
14862         if (flags & NDR_IN) {
14863                 ZERO_STRUCT(r->out);
14864
14865                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14866                 if (_ptr_server_name) {
14867                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14868                 } else {
14869                         r->in.server_name = NULL;
14870                 }
14871                 if (r->in.server_name) {
14872                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14873                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14874                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14875                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14876                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14877                                 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));
14878                         }
14879                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14880                         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));
14881                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14882                 }
14883                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14884                 if (r->in.count > 32000) {
14885                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
14886                 }
14887                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
14888                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14889                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
14890                 }
14891                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
14892                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
14893                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14894                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14895                 }
14896                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14897                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14898                 }
14899                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
14900                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14901                 ZERO_STRUCTP(r->out.ctr);
14902                 if (r->in.addresses) {
14903                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
14904                 }
14905         }
14906         if (flags & NDR_OUT) {
14907                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14908                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14909                 }
14910                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14911                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14912                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14913                 if (_ptr_ctr) {
14914                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
14915                 } else {
14916                         *r->out.ctr = NULL;
14917                 }
14918                 if (*r->out.ctr) {
14919                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
14920                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
14921                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14922                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
14923                 }
14924                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14925                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14926         }
14927         return NDR_ERR_SUCCESS;
14928 }
14929
14930 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
14931 {
14932         uint32_t cntr_addresses_1;
14933         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
14934         ndr->depth++;
14935         if (flags & NDR_SET_VALUES) {
14936                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14937         }
14938         if (flags & NDR_IN) {
14939                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
14940                 ndr->depth++;
14941                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14942                 ndr->depth++;
14943                 if (r->in.server_name) {
14944                         ndr_print_string(ndr, "server_name", r->in.server_name);
14945                 }
14946                 ndr->depth--;
14947                 ndr_print_uint32(ndr, "count", r->in.count);
14948                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
14949                 ndr->depth++;
14950                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
14951                 ndr->depth++;
14952                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
14953                         char *idx_1=NULL;
14954                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
14955                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
14956                                 free(idx_1);
14957                         }
14958                 }
14959                 ndr->depth--;
14960                 ndr->depth--;
14961                 ndr->depth--;
14962         }
14963         if (flags & NDR_OUT) {
14964                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
14965                 ndr->depth++;
14966                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14967                 ndr->depth++;
14968                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
14969                 ndr->depth++;
14970                 if (*r->out.ctr) {
14971                         ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
14972                 }
14973                 ndr->depth--;
14974                 ndr->depth--;
14975                 ndr_print_WERROR(ndr, "result", r->out.result);
14976                 ndr->depth--;
14977         }
14978         ndr->depth--;
14979 }
14980
14981 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
14982 {
14983         if (flags & NDR_IN) {
14984                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14985                 if (r->in.server_name) {
14986                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14987                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14988                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14989                         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));
14990                 }
14991         }
14992         if (flags & NDR_OUT) {
14993                 if (r->out.ctr == NULL) {
14994                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14995                 }
14996                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
14997                 if (*r->out.ctr) {
14998                         NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14999                 }
15000                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15001         }
15002         return NDR_ERR_SUCCESS;
15003 }
15004
15005 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
15006 {
15007         uint32_t _ptr_server_name;
15008         uint32_t _ptr_ctr;
15009         TALLOC_CTX *_mem_save_server_name_0;
15010         TALLOC_CTX *_mem_save_ctr_0;
15011         TALLOC_CTX *_mem_save_ctr_1;
15012         if (flags & NDR_IN) {
15013                 ZERO_STRUCT(r->out);
15014
15015                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15016                 if (_ptr_server_name) {
15017                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15018                 } else {
15019                         r->in.server_name = NULL;
15020                 }
15021                 if (r->in.server_name) {
15022                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15023                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15024                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15025                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15026                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15027                                 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));
15028                         }
15029                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15030                         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));
15031                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15032                 }
15033                 NDR_PULL_ALLOC(ndr, r->out.ctr);
15034                 ZERO_STRUCTP(r->out.ctr);
15035         }
15036         if (flags & NDR_OUT) {
15037                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15038                         NDR_PULL_ALLOC(ndr, r->out.ctr);
15039                 }
15040                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15041                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
15042                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
15043                 if (_ptr_ctr) {
15044                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
15045                 } else {
15046                         *r->out.ctr = NULL;
15047                 }
15048                 if (*r->out.ctr) {
15049                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
15050                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
15051                         NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
15052                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
15053                 }
15054                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15055                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15056         }
15057         return NDR_ERR_SUCCESS;
15058 }
15059
15060 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
15061 {
15062         ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
15063         ndr->depth++;
15064         if (flags & NDR_SET_VALUES) {
15065                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15066         }
15067         if (flags & NDR_IN) {
15068                 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
15069                 ndr->depth++;
15070                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15071                 ndr->depth++;
15072                 if (r->in.server_name) {
15073                         ndr_print_string(ndr, "server_name", r->in.server_name);
15074                 }
15075                 ndr->depth--;
15076                 ndr->depth--;
15077         }
15078         if (flags & NDR_OUT) {
15079                 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
15080                 ndr->depth++;
15081                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
15082                 ndr->depth++;
15083                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
15084                 ndr->depth++;
15085                 if (*r->out.ctr) {
15086                         ndr_print_DcSitesCtr(ndr, "ctr", *r->out.ctr);
15087                 }
15088                 ndr->depth--;
15089                 ndr->depth--;
15090                 ndr_print_WERROR(ndr, "result", r->out.result);
15091                 ndr->depth--;
15092         }
15093         ndr->depth--;
15094 }
15095
15096 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
15097 {
15098         if (flags & NDR_IN) {
15099                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15100                 if (r->in.server_name) {
15101                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15102                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15103                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15104                         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));
15105                 }
15106                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
15107                 if (r->in.computer_name) {
15108                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15109                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15110                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15111                         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));
15112                 }
15113                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
15114                 if (r->in.logon == NULL) {
15115                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15116                 }
15117                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
15118                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
15119                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
15120                 if (r->in.flags == NULL) {
15121                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15122                 }
15123                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
15124         }
15125         if (flags & NDR_OUT) {
15126                 if (r->out.validation == NULL) {
15127                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15128                 }
15129                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
15130                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
15131                 if (r->out.authoritative == NULL) {
15132                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15133                 }
15134                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
15135                 if (r->out.flags == NULL) {
15136                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15137                 }
15138                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
15139                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
15140         }
15141         return NDR_ERR_SUCCESS;
15142 }
15143
15144 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
15145 {
15146         uint32_t _ptr_server_name;
15147         uint32_t _ptr_computer_name;
15148         TALLOC_CTX *_mem_save_server_name_0;
15149         TALLOC_CTX *_mem_save_computer_name_0;
15150         TALLOC_CTX *_mem_save_logon_0;
15151         TALLOC_CTX *_mem_save_validation_0;
15152         TALLOC_CTX *_mem_save_authoritative_0;
15153         TALLOC_CTX *_mem_save_flags_0;
15154         if (flags & NDR_IN) {
15155                 ZERO_STRUCT(r->out);
15156
15157                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15158                 if (_ptr_server_name) {
15159                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15160                 } else {
15161                         r->in.server_name = NULL;
15162                 }
15163                 if (r->in.server_name) {
15164                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15165                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15166                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15167                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15168                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15169                                 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));
15170                         }
15171                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15172                         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));
15173                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15174                 }
15175                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
15176                 if (_ptr_computer_name) {
15177                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
15178                 } else {
15179                         r->in.computer_name = NULL;
15180                 }
15181                 if (r->in.computer_name) {
15182                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15183                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
15184                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
15185                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
15186                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
15187                                 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));
15188                         }
15189                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
15190                         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));
15191                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
15192                 }
15193                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
15194                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15195                         NDR_PULL_ALLOC(ndr, r->in.logon);
15196                 }
15197                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
15198                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
15199                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
15200                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
15201                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
15202                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
15203                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15204                         NDR_PULL_ALLOC(ndr, r->in.flags);
15205                 }
15206                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
15207                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
15208                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
15209                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
15210                 NDR_PULL_ALLOC(ndr, r->out.validation);
15211                 ZERO_STRUCTP(r->out.validation);
15212                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
15213                 ZERO_STRUCTP(r->out.authoritative);
15214                 NDR_PULL_ALLOC(ndr, r->out.flags);
15215                 *r->out.flags = *r->in.flags;
15216         }
15217         if (flags & NDR_OUT) {
15218                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15219                         NDR_PULL_ALLOC(ndr, r->out.validation);
15220                 }
15221                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
15222                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
15223                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
15224                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
15225                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
15226                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15227                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
15228                 }
15229                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
15230                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
15231                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
15232                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
15233                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15234                         NDR_PULL_ALLOC(ndr, r->out.flags);
15235                 }
15236                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
15237                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
15238                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
15239                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
15240                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
15241         }
15242         return NDR_ERR_SUCCESS;
15243 }
15244
15245 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
15246 {
15247         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
15248         ndr->depth++;
15249         if (flags & NDR_SET_VALUES) {
15250                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15251         }
15252         if (flags & NDR_IN) {
15253                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
15254                 ndr->depth++;
15255                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15256                 ndr->depth++;
15257                 if (r->in.server_name) {
15258                         ndr_print_string(ndr, "server_name", r->in.server_name);
15259                 }
15260                 ndr->depth--;
15261                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
15262                 ndr->depth++;
15263                 if (r->in.computer_name) {
15264                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
15265                 }
15266                 ndr->depth--;
15267                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
15268                 ndr_print_ptr(ndr, "logon", r->in.logon);
15269                 ndr->depth++;
15270                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
15271                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
15272                 ndr->depth--;
15273                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
15274                 ndr_print_ptr(ndr, "flags", r->in.flags);
15275                 ndr->depth++;
15276                 ndr_print_uint32(ndr, "flags", *r->in.flags);
15277                 ndr->depth--;
15278                 ndr->depth--;
15279         }
15280         if (flags & NDR_OUT) {
15281                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
15282                 ndr->depth++;
15283                 ndr_print_ptr(ndr, "validation", r->out.validation);
15284                 ndr->depth++;
15285                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
15286                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
15287                 ndr->depth--;
15288                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
15289                 ndr->depth++;
15290                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
15291                 ndr->depth--;
15292                 ndr_print_ptr(ndr, "flags", r->out.flags);
15293                 ndr->depth++;
15294                 ndr_print_uint32(ndr, "flags", *r->out.flags);
15295                 ndr->depth--;
15296                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
15297                 ndr->depth--;
15298         }
15299         ndr->depth--;
15300 }
15301
15302 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
15303 {
15304         if (flags & NDR_IN) {
15305                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15306                 if (r->in.server_name) {
15307                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15308                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15309                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15310                         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));
15311                 }
15312                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
15313         }
15314         if (flags & NDR_OUT) {
15315                 if (r->out.trusts == NULL) {
15316                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15317                 }
15318                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
15319                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15320         }
15321         return NDR_ERR_SUCCESS;
15322 }
15323
15324 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
15325 {
15326         uint32_t _ptr_server_name;
15327         TALLOC_CTX *_mem_save_server_name_0;
15328         TALLOC_CTX *_mem_save_trusts_0;
15329         if (flags & NDR_IN) {
15330                 ZERO_STRUCT(r->out);
15331
15332                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15333                 if (_ptr_server_name) {
15334                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15335                 } else {
15336                         r->in.server_name = NULL;
15337                 }
15338                 if (r->in.server_name) {
15339                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15340                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15341                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15342                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15343                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15344                                 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));
15345                         }
15346                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15347                         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));
15348                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15349                 }
15350                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
15351                 NDR_PULL_ALLOC(ndr, r->out.trusts);
15352                 ZERO_STRUCTP(r->out.trusts);
15353         }
15354         if (flags & NDR_OUT) {
15355                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15356                         NDR_PULL_ALLOC(ndr, r->out.trusts);
15357                 }
15358                 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
15359                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
15360                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
15361                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
15362                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15363         }
15364         return NDR_ERR_SUCCESS;
15365 }
15366
15367 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
15368 {
15369         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
15370         ndr->depth++;
15371         if (flags & NDR_SET_VALUES) {
15372                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15373         }
15374         if (flags & NDR_IN) {
15375                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
15376                 ndr->depth++;
15377                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15378                 ndr->depth++;
15379                 if (r->in.server_name) {
15380                         ndr_print_string(ndr, "server_name", r->in.server_name);
15381                 }
15382                 ndr->depth--;
15383                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
15384                 ndr->depth--;
15385         }
15386         if (flags & NDR_OUT) {
15387                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
15388                 ndr->depth++;
15389                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
15390                 ndr->depth++;
15391                 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
15392                 ndr->depth--;
15393                 ndr_print_WERROR(ndr, "result", r->out.result);
15394                 ndr->depth--;
15395         }
15396         ndr->depth--;
15397 }
15398
15399 static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
15400 {
15401         if (flags & NDR_IN) {
15402                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15403                 if (r->in.server_name) {
15404                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15405                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15406                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15407                         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));
15408                 }
15409                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
15410                 if (r->in.domain) {
15411                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
15412                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15413                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
15414                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15415                 }
15416                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
15417                 if (r->in.domain_guid) {
15418                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
15419                 }
15420                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
15421                 if (r->in.dsa_guid) {
15422                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
15423                 }
15424                 if (r->in.dns_host == NULL) {
15425                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15426                 }
15427                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
15428                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15429                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
15430                 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));
15431         }
15432         if (flags & NDR_OUT) {
15433                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15434         }
15435         return NDR_ERR_SUCCESS;
15436 }
15437
15438 static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
15439 {
15440         uint32_t _ptr_server_name;
15441         uint32_t _ptr_domain;
15442         uint32_t _ptr_domain_guid;
15443         uint32_t _ptr_dsa_guid;
15444         TALLOC_CTX *_mem_save_server_name_0;
15445         TALLOC_CTX *_mem_save_domain_0;
15446         TALLOC_CTX *_mem_save_domain_guid_0;
15447         TALLOC_CTX *_mem_save_dsa_guid_0;
15448         if (flags & NDR_IN) {
15449                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15450                 if (_ptr_server_name) {
15451                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15452                 } else {
15453                         r->in.server_name = NULL;
15454                 }
15455                 if (r->in.server_name) {
15456                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15457                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15458                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15459                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15460                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15461                                 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));
15462                         }
15463                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15464                         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));
15465                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15466                 }
15467                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
15468                 if (_ptr_domain) {
15469                         NDR_PULL_ALLOC(ndr, r->in.domain);
15470                 } else {
15471                         r->in.domain = NULL;
15472                 }
15473                 if (r->in.domain) {
15474                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
15475                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
15476                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
15477                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
15478                         if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
15479                                 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));
15480                         }
15481                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
15482                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
15483                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
15484                 }
15485                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
15486                 if (_ptr_domain_guid) {
15487                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
15488                 } else {
15489                         r->in.domain_guid = NULL;
15490                 }
15491                 if (r->in.domain_guid) {
15492                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
15493                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
15494                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
15495                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
15496                 }
15497                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
15498                 if (_ptr_dsa_guid) {
15499                         NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
15500                 } else {
15501                         r->in.dsa_guid = NULL;
15502                 }
15503                 if (r->in.dsa_guid) {
15504                         _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
15505                         NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
15506                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
15507                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
15508                 }
15509                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
15510                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
15511                 if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
15512                         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));
15513                 }
15514                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
15515                 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));
15516         }
15517         if (flags & NDR_OUT) {
15518                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15519         }
15520         return NDR_ERR_SUCCESS;
15521 }
15522
15523 _PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
15524 {
15525         ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
15526         ndr->depth++;
15527         if (flags & NDR_SET_VALUES) {
15528                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15529         }
15530         if (flags & NDR_IN) {
15531                 ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
15532                 ndr->depth++;
15533                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15534                 ndr->depth++;
15535                 if (r->in.server_name) {
15536                         ndr_print_string(ndr, "server_name", r->in.server_name);
15537                 }
15538                 ndr->depth--;
15539                 ndr_print_ptr(ndr, "domain", r->in.domain);
15540                 ndr->depth++;
15541                 if (r->in.domain) {
15542                         ndr_print_string(ndr, "domain", r->in.domain);
15543                 }
15544                 ndr->depth--;
15545                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
15546                 ndr->depth++;
15547                 if (r->in.domain_guid) {
15548                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
15549                 }
15550                 ndr->depth--;
15551                 ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
15552                 ndr->depth++;
15553                 if (r->in.dsa_guid) {
15554                         ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
15555                 }
15556                 ndr->depth--;
15557                 ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
15558                 ndr->depth++;
15559                 ndr_print_string(ndr, "dns_host", r->in.dns_host);
15560                 ndr->depth--;
15561                 ndr->depth--;
15562         }
15563         if (flags & NDR_OUT) {
15564                 ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
15565                 ndr->depth++;
15566                 ndr_print_WERROR(ndr, "result", r->out.result);
15567                 ndr->depth--;
15568         }
15569         ndr->depth--;
15570 }
15571
15572 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
15573 {
15574         if (flags & NDR_IN) {
15575                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15576                 if (r->in.server_name) {
15577                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15578                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15579                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15580                         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));
15581                 }
15582                 if (r->in.account_name == NULL) {
15583                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15584                 }
15585                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
15586                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15587                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
15588                 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));
15589                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
15590                 if (r->in.computer_name == NULL) {
15591                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15592                 }
15593                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15594                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15595                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15596                 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));
15597                 if (r->in.credential == NULL) {
15598                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15599                 }
15600                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15601         }
15602         if (flags & NDR_OUT) {
15603                 if (r->out.return_authenticator == NULL) {
15604                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15605                 }
15606                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15607                 if (r->out.password == NULL) {
15608                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15609                 }
15610                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
15611                 if (r->out.password2 == NULL) {
15612                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15613                 }
15614                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password2));
15615                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
15616         }
15617         return NDR_ERR_SUCCESS;
15618 }
15619
15620 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
15621 {
15622         uint32_t _ptr_server_name;
15623         TALLOC_CTX *_mem_save_server_name_0;
15624         TALLOC_CTX *_mem_save_credential_0;
15625         TALLOC_CTX *_mem_save_return_authenticator_0;
15626         TALLOC_CTX *_mem_save_password_0;
15627         TALLOC_CTX *_mem_save_password2_0;
15628         if (flags & NDR_IN) {
15629                 ZERO_STRUCT(r->out);
15630
15631                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15632                 if (_ptr_server_name) {
15633                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15634                 } else {
15635                         r->in.server_name = NULL;
15636                 }
15637                 if (r->in.server_name) {
15638                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15639                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15640                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15641                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15642                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15643                                 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));
15644                         }
15645                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15646                         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));
15647                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15648                 }
15649                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
15650                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
15651                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
15652                         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));
15653                 }
15654                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
15655                 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));
15656                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
15657                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
15658                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
15659                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
15660                         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));
15661                 }
15662                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
15663                 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));
15664                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15665                         NDR_PULL_ALLOC(ndr, r->in.credential);
15666                 }
15667                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15668                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
15669                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15670                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
15671                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15672                 ZERO_STRUCTP(r->out.return_authenticator);
15673                 NDR_PULL_ALLOC(ndr, r->out.password);
15674                 ZERO_STRUCTP(r->out.password);
15675                 NDR_PULL_ALLOC(ndr, r->out.password2);
15676                 ZERO_STRUCTP(r->out.password2);
15677         }
15678         if (flags & NDR_OUT) {
15679                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15680                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15681                 }
15682                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15683                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
15684                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15685                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
15686                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15687                         NDR_PULL_ALLOC(ndr, r->out.password);
15688                 }
15689                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
15690                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
15691                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
15692                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
15693                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15694                         NDR_PULL_ALLOC(ndr, r->out.password2);
15695                 }
15696                 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
15697                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
15698                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password2));
15699                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
15700                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
15701         }
15702         return NDR_ERR_SUCCESS;
15703 }
15704
15705 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
15706 {
15707         ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
15708         ndr->depth++;
15709         if (flags & NDR_SET_VALUES) {
15710                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15711         }
15712         if (flags & NDR_IN) {
15713                 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
15714                 ndr->depth++;
15715                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15716                 ndr->depth++;
15717                 if (r->in.server_name) {
15718                         ndr_print_string(ndr, "server_name", r->in.server_name);
15719                 }
15720                 ndr->depth--;
15721                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
15722                 ndr->depth++;
15723                 ndr_print_string(ndr, "account_name", r->in.account_name);
15724                 ndr->depth--;
15725                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
15726                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
15727                 ndr->depth++;
15728                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
15729                 ndr->depth--;
15730                 ndr_print_ptr(ndr, "credential", r->in.credential);
15731                 ndr->depth++;
15732                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15733                 ndr->depth--;
15734                 ndr->depth--;
15735         }
15736         if (flags & NDR_OUT) {
15737                 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
15738                 ndr->depth++;
15739                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15740                 ndr->depth++;
15741                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15742                 ndr->depth--;
15743                 ndr_print_ptr(ndr, "password", r->out.password);
15744                 ndr->depth++;
15745                 ndr_print_samr_Password(ndr, "password", r->out.password);
15746                 ndr->depth--;
15747                 ndr_print_ptr(ndr, "password2", r->out.password2);
15748                 ndr->depth++;
15749                 ndr_print_samr_Password(ndr, "password2", r->out.password2);
15750                 ndr->depth--;
15751                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
15752                 ndr->depth--;
15753         }
15754         ndr->depth--;
15755 }
15756
15757 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
15758 {
15759         if (flags & NDR_IN) {
15760                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15761                 if (r->in.server_name) {
15762                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15763                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15764                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15765                         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));
15766                 }
15767                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
15768                 if (r->in.trusted_domain_name) {
15769                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15770                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15771                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15772                         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));
15773                 }
15774                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
15775         }
15776         if (flags & NDR_OUT) {
15777                 if (r->out.forest_trust_info == NULL) {
15778                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15779                 }
15780                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
15781                 if (*r->out.forest_trust_info) {
15782                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15783                 }
15784                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15785         }
15786         return NDR_ERR_SUCCESS;
15787 }
15788
15789 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
15790 {
15791         uint32_t _ptr_server_name;
15792         uint32_t _ptr_trusted_domain_name;
15793         uint32_t _ptr_forest_trust_info;
15794         TALLOC_CTX *_mem_save_server_name_0;
15795         TALLOC_CTX *_mem_save_trusted_domain_name_0;
15796         TALLOC_CTX *_mem_save_forest_trust_info_0;
15797         TALLOC_CTX *_mem_save_forest_trust_info_1;
15798         if (flags & NDR_IN) {
15799                 ZERO_STRUCT(r->out);
15800
15801                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15802                 if (_ptr_server_name) {
15803                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15804                 } else {
15805                         r->in.server_name = NULL;
15806                 }
15807                 if (r->in.server_name) {
15808                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15809                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15810                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15811                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15812                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15813                                 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));
15814                         }
15815                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15816                         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));
15817                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15818                 }
15819                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
15820                 if (_ptr_trusted_domain_name) {
15821                         NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
15822                 } else {
15823                         r->in.trusted_domain_name = NULL;
15824                 }
15825                 if (r->in.trusted_domain_name) {
15826                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15827                         NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
15828                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
15829                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
15830                         if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
15831                                 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));
15832                         }
15833                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
15834                         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));
15835                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
15836                 }
15837                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
15838                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15839                 ZERO_STRUCTP(r->out.forest_trust_info);
15840         }
15841         if (flags & NDR_OUT) {
15842                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15843                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15844                 }
15845                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15846                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
15847                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
15848                 if (_ptr_forest_trust_info) {
15849                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
15850                 } else {
15851                         *r->out.forest_trust_info = NULL;
15852                 }
15853                 if (*r->out.forest_trust_info) {
15854                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
15855                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
15856                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15857                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
15858                 }
15859                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
15860                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15861         }
15862         return NDR_ERR_SUCCESS;
15863 }
15864
15865 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
15866 {
15867         ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
15868         ndr->depth++;
15869         if (flags & NDR_SET_VALUES) {
15870                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15871         }
15872         if (flags & NDR_IN) {
15873                 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
15874                 ndr->depth++;
15875                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15876                 ndr->depth++;
15877                 if (r->in.server_name) {
15878                         ndr_print_string(ndr, "server_name", r->in.server_name);
15879                 }
15880                 ndr->depth--;
15881                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15882                 ndr->depth++;
15883                 if (r->in.trusted_domain_name) {
15884                         ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15885                 }
15886                 ndr->depth--;
15887                 ndr_print_uint32(ndr, "flags", r->in.flags);
15888                 ndr->depth--;
15889         }
15890         if (flags & NDR_OUT) {
15891                 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
15892                 ndr->depth++;
15893                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
15894                 ndr->depth++;
15895                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
15896                 ndr->depth++;
15897                 if (*r->out.forest_trust_info) {
15898                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
15899                 }
15900                 ndr->depth--;
15901                 ndr->depth--;
15902                 ndr_print_WERROR(ndr, "result", r->out.result);
15903                 ndr->depth--;
15904         }
15905         ndr->depth--;
15906 }
15907
15908 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
15909 {
15910         if (flags & NDR_IN) {
15911                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15912                 if (r->in.server_name) {
15913                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15914                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15915                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15916                         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));
15917                 }
15918                 if (r->in.trusted_domain_name == NULL) {
15919                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15920                 }
15921                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15922                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15923                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15924                 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));
15925                 if (r->in.credential == NULL) {
15926                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15927                 }
15928                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15929                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
15930         }
15931         if (flags & NDR_OUT) {
15932                 if (r->out.return_authenticator == NULL) {
15933                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15934                 }
15935                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15936                 if (r->out.forest_trust_info == NULL) {
15937                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15938                 }
15939                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
15940                 if (*r->out.forest_trust_info) {
15941                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15942                 }
15943                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15944         }
15945         return NDR_ERR_SUCCESS;
15946 }
15947
15948 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
15949 {
15950         uint32_t _ptr_server_name;
15951         uint32_t _ptr_forest_trust_info;
15952         TALLOC_CTX *_mem_save_server_name_0;
15953         TALLOC_CTX *_mem_save_credential_0;
15954         TALLOC_CTX *_mem_save_return_authenticator_0;
15955         TALLOC_CTX *_mem_save_forest_trust_info_0;
15956         TALLOC_CTX *_mem_save_forest_trust_info_1;
15957         if (flags & NDR_IN) {
15958                 ZERO_STRUCT(r->out);
15959
15960                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15961                 if (_ptr_server_name) {
15962                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15963                 } else {
15964                         r->in.server_name = NULL;
15965                 }
15966                 if (r->in.server_name) {
15967                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15968                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15969                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15970                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15971                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15972                                 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));
15973                         }
15974                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15975                         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));
15976                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15977                 }
15978                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
15979                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
15980                 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
15981                         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));
15982                 }
15983                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
15984                 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));
15985                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15986                         NDR_PULL_ALLOC(ndr, r->in.credential);
15987                 }
15988                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15989                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
15990                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15991                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
15992                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
15993                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15994                 ZERO_STRUCTP(r->out.return_authenticator);
15995                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15996                 ZERO_STRUCTP(r->out.forest_trust_info);
15997         }
15998         if (flags & NDR_OUT) {
15999                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16000                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
16001                 }
16002                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
16003                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
16004                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
16005                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
16006                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16007                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
16008                 }
16009                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16010                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
16011                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
16012                 if (_ptr_forest_trust_info) {
16013                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
16014                 } else {
16015                         *r->out.forest_trust_info = NULL;
16016                 }
16017                 if (*r->out.forest_trust_info) {
16018                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
16019                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
16020                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
16021                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
16022                 }
16023                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
16024                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16025         }
16026         return NDR_ERR_SUCCESS;
16027 }
16028
16029 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
16030 {
16031         ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
16032         ndr->depth++;
16033         if (flags & NDR_SET_VALUES) {
16034                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16035         }
16036         if (flags & NDR_IN) {
16037                 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
16038                 ndr->depth++;
16039                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
16040                 ndr->depth++;
16041                 if (r->in.server_name) {
16042                         ndr_print_string(ndr, "server_name", r->in.server_name);
16043                 }
16044                 ndr->depth--;
16045                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
16046                 ndr->depth++;
16047                 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
16048                 ndr->depth--;
16049                 ndr_print_ptr(ndr, "credential", r->in.credential);
16050                 ndr->depth++;
16051                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
16052                 ndr->depth--;
16053                 ndr_print_uint32(ndr, "flags", r->in.flags);
16054                 ndr->depth--;
16055         }
16056         if (flags & NDR_OUT) {
16057                 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
16058                 ndr->depth++;
16059                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
16060                 ndr->depth++;
16061                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
16062                 ndr->depth--;
16063                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
16064                 ndr->depth++;
16065                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
16066                 ndr->depth++;
16067                 if (*r->out.forest_trust_info) {
16068                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
16069                 }
16070                 ndr->depth--;
16071                 ndr->depth--;
16072                 ndr_print_WERROR(ndr, "result", r->out.result);
16073                 ndr->depth--;
16074         }
16075         ndr->depth--;
16076 }
16077
16078 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
16079 {
16080         if (flags & NDR_IN) {
16081                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
16082                 if (r->in.server_name) {
16083                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
16084                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16085                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
16086                         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));
16087                 }
16088                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
16089                 if (r->in.computer_name) {
16090                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
16091                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16092                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
16093                         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));
16094                 }
16095                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
16096                 if (r->in.credential) {
16097                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
16098                 }
16099                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
16100                 if (r->in.return_authenticator) {
16101                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
16102                 }
16103                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
16104                 if (r->in.logon == NULL) {
16105                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16106                 }
16107                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
16108                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
16109                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
16110                 if (r->in.flags == NULL) {
16111                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16112                 }
16113                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
16114         }
16115         if (flags & NDR_OUT) {
16116                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
16117                 if (r->out.return_authenticator) {
16118                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
16119                 }
16120                 if (r->out.validation == NULL) {
16121                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16122                 }
16123                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
16124                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
16125                 if (r->out.authoritative == NULL) {
16126                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16127                 }
16128                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
16129                 if (r->out.flags == NULL) {
16130                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16131                 }
16132                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
16133                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
16134         }
16135         return NDR_ERR_SUCCESS;
16136 }
16137
16138 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
16139 {
16140         uint32_t _ptr_server_name;
16141         uint32_t _ptr_computer_name;
16142         uint32_t _ptr_credential;
16143         uint32_t _ptr_return_authenticator;
16144         TALLOC_CTX *_mem_save_server_name_0;
16145         TALLOC_CTX *_mem_save_computer_name_0;
16146         TALLOC_CTX *_mem_save_credential_0;
16147         TALLOC_CTX *_mem_save_return_authenticator_0;
16148         TALLOC_CTX *_mem_save_logon_0;
16149         TALLOC_CTX *_mem_save_validation_0;
16150         TALLOC_CTX *_mem_save_authoritative_0;
16151         TALLOC_CTX *_mem_save_flags_0;
16152         if (flags & NDR_IN) {
16153                 ZERO_STRUCT(r->out);
16154
16155                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
16156                 if (_ptr_server_name) {
16157                         NDR_PULL_ALLOC(ndr, r->in.server_name);
16158                 } else {
16159                         r->in.server_name = NULL;
16160                 }
16161                 if (r->in.server_name) {
16162                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16163                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
16164                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
16165                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
16166                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
16167                                 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));
16168                         }
16169                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
16170                         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));
16171                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
16172                 }
16173                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
16174                 if (_ptr_computer_name) {
16175                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
16176                 } else {
16177                         r->in.computer_name = NULL;
16178                 }
16179                 if (r->in.computer_name) {
16180                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16181                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
16182                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
16183                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
16184                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
16185                                 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));
16186                         }
16187                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
16188                         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));
16189                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
16190                 }
16191                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
16192                 if (_ptr_credential) {
16193                         NDR_PULL_ALLOC(ndr, r->in.credential);
16194                 } else {
16195                         r->in.credential = NULL;
16196                 }
16197                 if (r->in.credential) {
16198                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
16199                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
16200                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
16201                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
16202                 }
16203                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
16204                 if (_ptr_return_authenticator) {
16205                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
16206                 } else {
16207                         r->in.return_authenticator = NULL;
16208                 }
16209                 if (r->in.return_authenticator) {
16210                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
16211                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
16212                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
16213                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
16214                 }
16215                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
16216                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16217                         NDR_PULL_ALLOC(ndr, r->in.logon);
16218                 }
16219                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
16220                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
16221                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
16222                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
16223                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
16224                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
16225                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16226                         NDR_PULL_ALLOC(ndr, r->in.flags);
16227                 }
16228                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
16229                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
16230                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
16231                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
16232                 NDR_PULL_ALLOC(ndr, r->out.validation);
16233                 ZERO_STRUCTP(r->out.validation);
16234                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
16235                 ZERO_STRUCTP(r->out.authoritative);
16236                 NDR_PULL_ALLOC(ndr, r->out.flags);
16237                 *r->out.flags = *r->in.flags;
16238         }
16239         if (flags & NDR_OUT) {
16240                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
16241                 if (_ptr_return_authenticator) {
16242                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
16243                 } else {
16244                         r->out.return_authenticator = NULL;
16245                 }
16246                 if (r->out.return_authenticator) {
16247                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
16248                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
16249                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
16250                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
16251                 }
16252                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16253                         NDR_PULL_ALLOC(ndr, r->out.validation);
16254                 }
16255                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
16256                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
16257                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
16258                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
16259                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
16260                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16261                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
16262                 }
16263                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
16264                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
16265                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
16266                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
16267                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16268                         NDR_PULL_ALLOC(ndr, r->out.flags);
16269                 }
16270                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
16271                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
16272                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
16273                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
16274                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
16275         }
16276         return NDR_ERR_SUCCESS;
16277 }
16278
16279 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
16280 {
16281         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
16282         ndr->depth++;
16283         if (flags & NDR_SET_VALUES) {
16284                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16285         }
16286         if (flags & NDR_IN) {
16287                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
16288                 ndr->depth++;
16289                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
16290                 ndr->depth++;
16291                 if (r->in.server_name) {
16292                         ndr_print_string(ndr, "server_name", r->in.server_name);
16293                 }
16294                 ndr->depth--;
16295                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
16296                 ndr->depth++;
16297                 if (r->in.computer_name) {
16298                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
16299                 }
16300                 ndr->depth--;
16301                 ndr_print_ptr(ndr, "credential", r->in.credential);
16302                 ndr->depth++;
16303                 if (r->in.credential) {
16304                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
16305                 }
16306                 ndr->depth--;
16307                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
16308                 ndr->depth++;
16309                 if (r->in.return_authenticator) {
16310                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
16311                 }
16312                 ndr->depth--;
16313                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
16314                 ndr_print_ptr(ndr, "logon", r->in.logon);
16315                 ndr->depth++;
16316                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
16317                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
16318                 ndr->depth--;
16319                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
16320                 ndr_print_ptr(ndr, "flags", r->in.flags);
16321                 ndr->depth++;
16322                 ndr_print_uint32(ndr, "flags", *r->in.flags);
16323                 ndr->depth--;
16324                 ndr->depth--;
16325         }
16326         if (flags & NDR_OUT) {
16327                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
16328                 ndr->depth++;
16329                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
16330                 ndr->depth++;
16331                 if (r->out.return_authenticator) {
16332                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
16333                 }
16334                 ndr->depth--;
16335                 ndr_print_ptr(ndr, "validation", r->out.validation);
16336                 ndr->depth++;
16337                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
16338                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
16339                 ndr->depth--;
16340                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
16341                 ndr->depth++;
16342                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
16343                 ndr->depth--;
16344                 ndr_print_ptr(ndr, "flags", r->out.flags);
16345                 ndr->depth++;
16346                 ndr_print_uint32(ndr, "flags", *r->out.flags);
16347                 ndr->depth--;
16348                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
16349                 ndr->depth--;
16350         }
16351         ndr->depth--;
16352 }
16353
16354 static enum ndr_err_code ndr_push_netr_ServerGetTrustInfo(struct ndr_push *ndr, int flags, const struct netr_ServerGetTrustInfo *r)
16355 {
16356         if (flags & NDR_IN) {
16357                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
16358                 if (r->in.server_name) {
16359                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
16360                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16361                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
16362                         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));
16363                 }
16364                 if (r->in.account_name == NULL) {
16365                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16366                 }
16367                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
16368                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16369                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
16370                 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));
16371                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
16372                 if (r->in.computer_name == NULL) {
16373                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16374                 }
16375                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
16376                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16377                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
16378                 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));
16379                 if (r->in.credential == NULL) {
16380                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16381                 }
16382                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
16383         }
16384         if (flags & NDR_OUT) {
16385                 if (r->out.return_authenticator == NULL) {
16386                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16387                 }
16388                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
16389                 if (r->out.new_owf_password == NULL) {
16390                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16391                 }
16392                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
16393                 if (r->out.old_owf_password == NULL) {
16394                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16395                 }
16396                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
16397                 if (r->out.trust_info == NULL) {
16398                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16399                 }
16400                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.trust_info));
16401                 if (*r->out.trust_info) {
16402                         NDR_CHECK(ndr_push_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
16403                 }
16404                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
16405         }
16406         return NDR_ERR_SUCCESS;
16407 }
16408
16409 static enum ndr_err_code ndr_pull_netr_ServerGetTrustInfo(struct ndr_pull *ndr, int flags, struct netr_ServerGetTrustInfo *r)
16410 {
16411         uint32_t _ptr_server_name;
16412         uint32_t _ptr_trust_info;
16413         TALLOC_CTX *_mem_save_server_name_0;
16414         TALLOC_CTX *_mem_save_credential_0;
16415         TALLOC_CTX *_mem_save_return_authenticator_0;
16416         TALLOC_CTX *_mem_save_new_owf_password_0;
16417         TALLOC_CTX *_mem_save_old_owf_password_0;
16418         TALLOC_CTX *_mem_save_trust_info_0;
16419         TALLOC_CTX *_mem_save_trust_info_1;
16420         if (flags & NDR_IN) {
16421                 ZERO_STRUCT(r->out);
16422
16423                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
16424                 if (_ptr_server_name) {
16425                         NDR_PULL_ALLOC(ndr, r->in.server_name);
16426                 } else {
16427                         r->in.server_name = NULL;
16428                 }
16429                 if (r->in.server_name) {
16430                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16431                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
16432                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
16433                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
16434                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
16435                                 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));
16436                         }
16437                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
16438                         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));
16439                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
16440                 }
16441                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
16442                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
16443                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
16444                         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));
16445                 }
16446                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
16447                 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));
16448                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
16449                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
16450                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
16451                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
16452                         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));
16453                 }
16454                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
16455                 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));
16456                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16457                         NDR_PULL_ALLOC(ndr, r->in.credential);
16458                 }
16459                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
16460                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
16461                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
16462                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
16463                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
16464                 ZERO_STRUCTP(r->out.return_authenticator);
16465                 NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
16466                 ZERO_STRUCTP(r->out.new_owf_password);
16467                 NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
16468                 ZERO_STRUCTP(r->out.old_owf_password);
16469                 NDR_PULL_ALLOC(ndr, r->out.trust_info);
16470                 ZERO_STRUCTP(r->out.trust_info);
16471         }
16472         if (flags & NDR_OUT) {
16473                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16474                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
16475                 }
16476                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
16477                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
16478                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
16479                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
16480                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16481                         NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
16482                 }
16483                 _mem_save_new_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
16484                 NDR_PULL_SET_MEM_CTX(ndr, r->out.new_owf_password, LIBNDR_FLAG_REF_ALLOC);
16485                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
16486                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
16487                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16488                         NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
16489                 }
16490                 _mem_save_old_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
16491                 NDR_PULL_SET_MEM_CTX(ndr, r->out.old_owf_password, LIBNDR_FLAG_REF_ALLOC);
16492                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
16493                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
16494                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16495                         NDR_PULL_ALLOC(ndr, r->out.trust_info);
16496                 }
16497                 _mem_save_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16498                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trust_info, LIBNDR_FLAG_REF_ALLOC);
16499                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trust_info));
16500                 if (_ptr_trust_info) {
16501                         NDR_PULL_ALLOC(ndr, *r->out.trust_info);
16502                 } else {
16503                         *r->out.trust_info = NULL;
16504                 }
16505                 if (*r->out.trust_info) {
16506                         _mem_save_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
16507                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.trust_info, 0);
16508                         NDR_CHECK(ndr_pull_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
16509                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_1, 0);
16510                 }
16511                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
16512                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
16513         }
16514         return NDR_ERR_SUCCESS;
16515 }
16516
16517 _PUBLIC_ void ndr_print_netr_ServerGetTrustInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerGetTrustInfo *r)
16518 {
16519         ndr_print_struct(ndr, name, "netr_ServerGetTrustInfo");
16520         ndr->depth++;
16521         if (flags & NDR_SET_VALUES) {
16522                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16523         }
16524         if (flags & NDR_IN) {
16525                 ndr_print_struct(ndr, "in", "netr_ServerGetTrustInfo");
16526                 ndr->depth++;
16527                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
16528                 ndr->depth++;
16529                 if (r->in.server_name) {
16530                         ndr_print_string(ndr, "server_name", r->in.server_name);
16531                 }
16532                 ndr->depth--;
16533                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
16534                 ndr->depth++;
16535                 ndr_print_string(ndr, "account_name", r->in.account_name);
16536                 ndr->depth--;
16537                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
16538                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
16539                 ndr->depth++;
16540                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
16541                 ndr->depth--;
16542                 ndr_print_ptr(ndr, "credential", r->in.credential);
16543                 ndr->depth++;
16544                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
16545                 ndr->depth--;
16546                 ndr->depth--;
16547         }
16548         if (flags & NDR_OUT) {
16549                 ndr_print_struct(ndr, "out", "netr_ServerGetTrustInfo");
16550                 ndr->depth++;
16551                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
16552                 ndr->depth++;
16553                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
16554                 ndr->depth--;
16555                 ndr_print_ptr(ndr, "new_owf_password", r->out.new_owf_password);
16556                 ndr->depth++;
16557                 ndr_print_samr_Password(ndr, "new_owf_password", r->out.new_owf_password);
16558                 ndr->depth--;
16559                 ndr_print_ptr(ndr, "old_owf_password", r->out.old_owf_password);
16560                 ndr->depth++;
16561                 ndr_print_samr_Password(ndr, "old_owf_password", r->out.old_owf_password);
16562                 ndr->depth--;
16563                 ndr_print_ptr(ndr, "trust_info", r->out.trust_info);
16564                 ndr->depth++;
16565                 ndr_print_ptr(ndr, "trust_info", *r->out.trust_info);
16566                 ndr->depth++;
16567                 if (*r->out.trust_info) {
16568                         ndr_print_netr_TrustInfo(ndr, "trust_info", *r->out.trust_info);
16569                 }
16570                 ndr->depth--;
16571                 ndr->depth--;
16572                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
16573                 ndr->depth--;
16574         }
16575         ndr->depth--;
16576 }
16577
16578 static const struct ndr_interface_call netlogon_calls[] = {
16579         {
16580                 "netr_LogonUasLogon",
16581                 sizeof(struct netr_LogonUasLogon),
16582                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
16583                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
16584                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
16585                 false,
16586         },
16587         {
16588                 "netr_LogonUasLogoff",
16589                 sizeof(struct netr_LogonUasLogoff),
16590                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
16591                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
16592                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
16593                 false,
16594         },
16595         {
16596                 "netr_LogonSamLogon",
16597                 sizeof(struct netr_LogonSamLogon),
16598                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
16599                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
16600                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
16601                 false,
16602         },
16603         {
16604                 "netr_LogonSamLogoff",
16605                 sizeof(struct netr_LogonSamLogoff),
16606                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
16607                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
16608                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
16609                 false,
16610         },
16611         {
16612                 "netr_ServerReqChallenge",
16613                 sizeof(struct netr_ServerReqChallenge),
16614                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
16615                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
16616                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
16617                 false,
16618         },
16619         {
16620                 "netr_ServerAuthenticate",
16621                 sizeof(struct netr_ServerAuthenticate),
16622                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
16623                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
16624                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
16625                 false,
16626         },
16627         {
16628                 "netr_ServerPasswordSet",
16629                 sizeof(struct netr_ServerPasswordSet),
16630                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
16631                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
16632                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
16633                 false,
16634         },
16635         {
16636                 "netr_DatabaseDeltas",
16637                 sizeof(struct netr_DatabaseDeltas),
16638                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
16639                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
16640                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
16641                 false,
16642         },
16643         {
16644                 "netr_DatabaseSync",
16645                 sizeof(struct netr_DatabaseSync),
16646                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
16647                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
16648                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
16649                 false,
16650         },
16651         {
16652                 "netr_AccountDeltas",
16653                 sizeof(struct netr_AccountDeltas),
16654                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
16655                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
16656                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
16657                 false,
16658         },
16659         {
16660                 "netr_AccountSync",
16661                 sizeof(struct netr_AccountSync),
16662                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
16663                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
16664                 (ndr_print_function_t) ndr_print_netr_AccountSync,
16665                 false,
16666         },
16667         {
16668                 "netr_GetDcName",
16669                 sizeof(struct netr_GetDcName),
16670                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
16671                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
16672                 (ndr_print_function_t) ndr_print_netr_GetDcName,
16673                 false,
16674         },
16675         {
16676                 "netr_LogonControl",
16677                 sizeof(struct netr_LogonControl),
16678                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
16679                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
16680                 (ndr_print_function_t) ndr_print_netr_LogonControl,
16681                 false,
16682         },
16683         {
16684                 "netr_GetAnyDCName",
16685                 sizeof(struct netr_GetAnyDCName),
16686                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
16687                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
16688                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
16689                 false,
16690         },
16691         {
16692                 "netr_LogonControl2",
16693                 sizeof(struct netr_LogonControl2),
16694                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
16695                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
16696                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
16697                 false,
16698         },
16699         {
16700                 "netr_ServerAuthenticate2",
16701                 sizeof(struct netr_ServerAuthenticate2),
16702                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
16703                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
16704                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
16705                 false,
16706         },
16707         {
16708                 "netr_DatabaseSync2",
16709                 sizeof(struct netr_DatabaseSync2),
16710                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
16711                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
16712                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
16713                 false,
16714         },
16715         {
16716                 "netr_DatabaseRedo",
16717                 sizeof(struct netr_DatabaseRedo),
16718                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
16719                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
16720                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
16721                 false,
16722         },
16723         {
16724                 "netr_LogonControl2Ex",
16725                 sizeof(struct netr_LogonControl2Ex),
16726                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
16727                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
16728                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
16729                 false,
16730         },
16731         {
16732                 "netr_NetrEnumerateTrustedDomains",
16733                 sizeof(struct netr_NetrEnumerateTrustedDomains),
16734                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
16735                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
16736                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
16737                 false,
16738         },
16739         {
16740                 "netr_DsRGetDCName",
16741                 sizeof(struct netr_DsRGetDCName),
16742                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
16743                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
16744                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
16745                 false,
16746         },
16747         {
16748                 "netr_LogonGetCapabilities",
16749                 sizeof(struct netr_LogonGetCapabilities),
16750                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetCapabilities,
16751                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetCapabilities,
16752                 (ndr_print_function_t) ndr_print_netr_LogonGetCapabilities,
16753                 false,
16754         },
16755         {
16756                 "netr_NETRLOGONSETSERVICEBITS",
16757                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
16758                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
16759                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
16760                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
16761                 false,
16762         },
16763         {
16764                 "netr_LogonGetTrustRid",
16765                 sizeof(struct netr_LogonGetTrustRid),
16766                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
16767                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
16768                 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
16769                 false,
16770         },
16771         {
16772                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
16773                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
16774                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
16775                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
16776                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
16777                 false,
16778         },
16779         {
16780                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
16781                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
16782                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
16783                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
16784                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
16785                 false,
16786         },
16787         {
16788                 "netr_ServerAuthenticate3",
16789                 sizeof(struct netr_ServerAuthenticate3),
16790                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
16791                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
16792                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
16793                 false,
16794         },
16795         {
16796                 "netr_DsRGetDCNameEx",
16797                 sizeof(struct netr_DsRGetDCNameEx),
16798                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
16799                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
16800                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
16801                 false,
16802         },
16803         {
16804                 "netr_DsRGetSiteName",
16805                 sizeof(struct netr_DsRGetSiteName),
16806                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
16807                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
16808                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
16809                 false,
16810         },
16811         {
16812                 "netr_LogonGetDomainInfo",
16813                 sizeof(struct netr_LogonGetDomainInfo),
16814                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
16815                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
16816                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
16817                 false,
16818         },
16819         {
16820                 "netr_ServerPasswordSet2",
16821                 sizeof(struct netr_ServerPasswordSet2),
16822                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
16823                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
16824                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
16825                 false,
16826         },
16827         {
16828                 "netr_ServerPasswordGet",
16829                 sizeof(struct netr_ServerPasswordGet),
16830                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
16831                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
16832                 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
16833                 false,
16834         },
16835         {
16836                 "netr_NETRLOGONSENDTOSAM",
16837                 sizeof(struct netr_NETRLOGONSENDTOSAM),
16838                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
16839                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
16840                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
16841                 false,
16842         },
16843         {
16844                 "netr_DsRAddressToSitenamesW",
16845                 sizeof(struct netr_DsRAddressToSitenamesW),
16846                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
16847                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
16848                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
16849                 false,
16850         },
16851         {
16852                 "netr_DsRGetDCNameEx2",
16853                 sizeof(struct netr_DsRGetDCNameEx2),
16854                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
16855                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
16856                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
16857                 false,
16858         },
16859         {
16860                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
16861                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
16862                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16863                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16864                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16865                 false,
16866         },
16867         {
16868                 "netr_NetrEnumerateTrustedDomainsEx",
16869                 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
16870                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
16871                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
16872                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
16873                 false,
16874         },
16875         {
16876                 "netr_DsRAddressToSitenamesExW",
16877                 sizeof(struct netr_DsRAddressToSitenamesExW),
16878                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
16879                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
16880                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
16881                 false,
16882         },
16883         {
16884                 "netr_DsrGetDcSiteCoverageW",
16885                 sizeof(struct netr_DsrGetDcSiteCoverageW),
16886                 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
16887                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
16888                 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
16889                 false,
16890         },
16891         {
16892                 "netr_LogonSamLogonEx",
16893                 sizeof(struct netr_LogonSamLogonEx),
16894                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
16895                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
16896                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
16897                 false,
16898         },
16899         {
16900                 "netr_DsrEnumerateDomainTrusts",
16901                 sizeof(struct netr_DsrEnumerateDomainTrusts),
16902                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
16903                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
16904                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
16905                 false,
16906         },
16907         {
16908                 "netr_DsrDeregisterDNSHostRecords",
16909                 sizeof(struct netr_DsrDeregisterDNSHostRecords),
16910                 (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
16911                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
16912                 (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
16913                 false,
16914         },
16915         {
16916                 "netr_ServerTrustPasswordsGet",
16917                 sizeof(struct netr_ServerTrustPasswordsGet),
16918                 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
16919                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
16920                 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
16921                 false,
16922         },
16923         {
16924                 "netr_DsRGetForestTrustInformation",
16925                 sizeof(struct netr_DsRGetForestTrustInformation),
16926                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
16927                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
16928                 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
16929                 false,
16930         },
16931         {
16932                 "netr_GetForestTrustInformation",
16933                 sizeof(struct netr_GetForestTrustInformation),
16934                 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
16935                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
16936                 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
16937                 false,
16938         },
16939         {
16940                 "netr_LogonSamLogonWithFlags",
16941                 sizeof(struct netr_LogonSamLogonWithFlags),
16942                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
16943                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
16944                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
16945                 false,
16946         },
16947         {
16948                 "netr_ServerGetTrustInfo",
16949                 sizeof(struct netr_ServerGetTrustInfo),
16950                 (ndr_push_flags_fn_t) ndr_push_netr_ServerGetTrustInfo,
16951                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerGetTrustInfo,
16952                 (ndr_print_function_t) ndr_print_netr_ServerGetTrustInfo,
16953                 false,
16954         },
16955         { NULL, 0, NULL, NULL, NULL, false }
16956 };
16957
16958 static const char * const netlogon_endpoint_strings[] = {
16959         "ncacn_np:[\\pipe\\netlogon]", 
16960         "ncacn_ip_tcp:", 
16961         "ncalrpc:", 
16962 };
16963
16964 static const struct ndr_interface_string_array netlogon_endpoints = {
16965         .count  = 3,
16966         .names  = netlogon_endpoint_strings
16967 };
16968
16969 static const char * const netlogon_authservice_strings[] = {
16970         "host", 
16971 };
16972
16973 static const struct ndr_interface_string_array netlogon_authservices = {
16974         .count  = 1,
16975         .names  = netlogon_authservice_strings
16976 };
16977
16978
16979 const struct ndr_interface_table ndr_table_netlogon = {
16980         .name           = "netlogon",
16981         .syntax_id      = {
16982                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
16983                 NDR_NETLOGON_VERSION
16984         },
16985         .helpstring     = NDR_NETLOGON_HELPSTRING,
16986         .num_calls      = 47,
16987         .calls          = netlogon_calls,
16988         .endpoints      = &netlogon_endpoints,
16989         .authservices   = &netlogon_authservices
16990 };
16991