Remove compiler warnings about unknown structure pointer
[Samba.git] / source / librpc / gen_ndr / ndr_netlogon.c
blobf35150c4211cf0c26489ab6d86090d6e5be5cc73
1 /* parser auto-generated by pidl */
3 #include "includes.h"
4 #include "librpc/gen_ndr/ndr_netlogon.h"
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 #include "librpc/gen_ndr/ndr_samr.h"
8 #include "librpc/gen_ndr/ndr_security.h"
9 #include "librpc/gen_ndr/ndr_nbt.h"
10 static enum ndr_err_code ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r)
12 if (ndr_flags & NDR_SCALARS) {
13 NDR_CHECK(ndr_push_align(ndr, 4));
14 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
15 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv));
16 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags));
17 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count));
18 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count));
19 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon));
20 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff));
21 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time));
22 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time));
23 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age));
24 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change));
25 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change));
26 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer));
27 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
28 NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path));
29 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
31 if (ndr_flags & NDR_BUFFERS) {
32 if (r->account_name) {
33 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
34 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
35 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
36 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
38 if (r->computer) {
39 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
40 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
41 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
42 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
44 if (r->domain) {
45 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
46 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
47 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
48 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
50 if (r->script_path) {
51 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
52 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
53 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
54 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
57 return NDR_ERR_SUCCESS;
60 static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r)
62 uint32_t _ptr_account_name;
63 TALLOC_CTX *_mem_save_account_name_0;
64 uint32_t _ptr_computer;
65 TALLOC_CTX *_mem_save_computer_0;
66 uint32_t _ptr_domain;
67 TALLOC_CTX *_mem_save_domain_0;
68 uint32_t _ptr_script_path;
69 TALLOC_CTX *_mem_save_script_path_0;
70 if (ndr_flags & NDR_SCALARS) {
71 NDR_CHECK(ndr_pull_align(ndr, 4));
72 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
73 if (_ptr_account_name) {
74 NDR_PULL_ALLOC(ndr, r->account_name);
75 } else {
76 r->account_name = NULL;
78 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv));
79 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags));
80 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count));
81 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count));
82 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon));
83 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff));
84 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time));
85 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time));
86 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age));
87 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change));
88 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change));
89 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer));
90 if (_ptr_computer) {
91 NDR_PULL_ALLOC(ndr, r->computer);
92 } else {
93 r->computer = NULL;
95 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
96 if (_ptr_domain) {
97 NDR_PULL_ALLOC(ndr, r->domain);
98 } else {
99 r->domain = NULL;
101 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path));
102 if (_ptr_script_path) {
103 NDR_PULL_ALLOC(ndr, r->script_path);
104 } else {
105 r->script_path = NULL;
107 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
109 if (ndr_flags & NDR_BUFFERS) {
110 if (r->account_name) {
111 _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
112 NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
113 NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
114 NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
115 if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
116 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
118 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
119 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
122 if (r->computer) {
123 _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr);
124 NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0);
125 NDR_CHECK(ndr_pull_array_size(ndr, &r->computer));
126 NDR_CHECK(ndr_pull_array_length(ndr, &r->computer));
127 if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) {
128 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer), ndr_get_array_length(ndr, &r->computer));
130 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t)));
131 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16));
132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0);
134 if (r->domain) {
135 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
136 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
137 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
138 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
139 if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
140 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
142 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
143 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
144 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
146 if (r->script_path) {
147 _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
148 NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0);
149 NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path));
150 NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path));
151 if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) {
152 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->script_path), ndr_get_array_length(ndr, &r->script_path));
154 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t)));
155 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16));
156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0);
159 return NDR_ERR_SUCCESS;
162 _PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r)
164 ndr_print_struct(ndr, name, "netr_UasInfo");
165 ndr->depth++;
166 ndr_print_ptr(ndr, "account_name", r->account_name);
167 ndr->depth++;
168 if (r->account_name) {
169 ndr_print_string(ndr, "account_name", r->account_name);
171 ndr->depth--;
172 ndr_print_uint32(ndr, "priv", r->priv);
173 ndr_print_uint32(ndr, "auth_flags", r->auth_flags);
174 ndr_print_uint32(ndr, "logon_count", r->logon_count);
175 ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count);
176 ndr_print_time_t(ndr, "last_logon", r->last_logon);
177 ndr_print_time_t(ndr, "last_logoff", r->last_logoff);
178 ndr_print_time_t(ndr, "logoff_time", r->logoff_time);
179 ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time);
180 ndr_print_uint32(ndr, "password_age", r->password_age);
181 ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change);
182 ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change);
183 ndr_print_ptr(ndr, "computer", r->computer);
184 ndr->depth++;
185 if (r->computer) {
186 ndr_print_string(ndr, "computer", r->computer);
188 ndr->depth--;
189 ndr_print_ptr(ndr, "domain", r->domain);
190 ndr->depth++;
191 if (r->domain) {
192 ndr_print_string(ndr, "domain", r->domain);
194 ndr->depth--;
195 ndr_print_ptr(ndr, "script_path", r->script_path);
196 ndr->depth++;
197 if (r->script_path) {
198 ndr_print_string(ndr, "script_path", r->script_path);
200 ndr->depth--;
201 ndr_print_uint32(ndr, "unknown", r->unknown);
202 ndr->depth--;
205 static enum ndr_err_code ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r)
207 if (ndr_flags & NDR_SCALARS) {
208 NDR_CHECK(ndr_push_align(ndr, 4));
209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration));
210 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
212 if (ndr_flags & NDR_BUFFERS) {
214 return NDR_ERR_SUCCESS;
217 static enum ndr_err_code ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r)
219 if (ndr_flags & NDR_SCALARS) {
220 NDR_CHECK(ndr_pull_align(ndr, 4));
221 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration));
222 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
224 if (ndr_flags & NDR_BUFFERS) {
226 return NDR_ERR_SUCCESS;
229 _PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r)
231 ndr_print_struct(ndr, name, "netr_UasLogoffInfo");
232 ndr->depth++;
233 ndr_print_uint32(ndr, "duration", r->duration);
234 ndr_print_uint16(ndr, "logon_count", r->logon_count);
235 ndr->depth--;
238 _PUBLIC_ enum ndr_err_code ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r)
240 if (ndr_flags & NDR_SCALARS) {
241 NDR_CHECK(ndr_push_align(ndr, 4));
242 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->lockout_duration));
243 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reset_count));
244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_attempt_lockout));
245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy));
247 if (ndr_flags & NDR_BUFFERS) {
249 return NDR_ERR_SUCCESS;
252 _PUBLIC_ enum ndr_err_code ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r)
254 if (ndr_flags & NDR_SCALARS) {
255 NDR_CHECK(ndr_pull_align(ndr, 4));
256 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->lockout_duration));
257 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reset_count));
258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_attempt_lockout));
259 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
261 if (ndr_flags & NDR_BUFFERS) {
263 return NDR_ERR_SUCCESS;
266 _PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r)
268 ndr_print_struct(ndr, name, "netr_AcctLockStr");
269 ndr->depth++;
270 ndr_print_dlong(ndr, "lockout_duration", r->lockout_duration);
271 ndr_print_udlong(ndr, "reset_count", r->reset_count);
272 ndr_print_uint32(ndr, "bad_attempt_lockout", r->bad_attempt_lockout);
273 ndr_print_uint32(ndr, "dummy", r->dummy);
274 ndr->depth--;
277 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonParameterControl(struct ndr_push *ndr, int ndr_flags, uint32_t r)
279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
280 return NDR_ERR_SUCCESS;
283 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonParameterControl(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
285 uint32_t v;
286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
287 *r = v;
288 return NDR_ERR_SUCCESS;
291 _PUBLIC_ void ndr_print_netr_LogonParameterControl(struct ndr_print *ndr, const char *name, uint32_t r)
293 ndr_print_uint32(ndr, name, r);
294 ndr->depth++;
295 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED, r);
296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS, r);
297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS, r);
298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT, r);
299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH, r);
300 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, r);
301 ndr->depth--;
304 static enum ndr_err_code ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
306 if (ndr_flags & NDR_SCALARS) {
307 NDR_CHECK(ndr_push_align(ndr, 4));
308 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
309 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr, NDR_SCALARS, r->parameter_control));
310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
312 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
313 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
315 if (ndr_flags & NDR_BUFFERS) {
316 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
317 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
318 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
320 return NDR_ERR_SUCCESS;
323 static enum ndr_err_code ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
325 if (ndr_flags & NDR_SCALARS) {
326 NDR_CHECK(ndr_pull_align(ndr, 4));
327 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
328 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr, NDR_SCALARS, &r->parameter_control));
329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
331 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
332 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
334 if (ndr_flags & NDR_BUFFERS) {
335 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
336 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
337 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
339 return NDR_ERR_SUCCESS;
342 _PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
344 ndr_print_struct(ndr, name, "netr_IdentityInfo");
345 ndr->depth++;
346 ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
347 ndr_print_netr_LogonParameterControl(ndr, "parameter_control", r->parameter_control);
348 ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
349 ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
350 ndr_print_lsa_String(ndr, "account_name", &r->account_name);
351 ndr_print_lsa_String(ndr, "workstation", &r->workstation);
352 ndr->depth--;
355 static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
357 if (ndr_flags & NDR_SCALARS) {
358 NDR_CHECK(ndr_push_align(ndr, 4));
359 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
360 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
361 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
363 if (ndr_flags & NDR_BUFFERS) {
364 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
365 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
366 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
368 return NDR_ERR_SUCCESS;
371 static enum ndr_err_code ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r)
373 if (ndr_flags & NDR_SCALARS) {
374 NDR_CHECK(ndr_pull_align(ndr, 4));
375 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
376 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
377 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
379 if (ndr_flags & NDR_BUFFERS) {
380 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
381 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
382 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
384 return NDR_ERR_SUCCESS;
387 _PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
389 ndr_print_struct(ndr, name, "netr_PasswordInfo");
390 ndr->depth++;
391 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
392 ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
393 ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
394 ndr->depth--;
397 static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
400 uint32_t _flags_save_STRUCT = ndr->flags;
401 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
402 if (ndr_flags & NDR_SCALARS) {
403 NDR_CHECK(ndr_push_align(ndr, 4));
404 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
405 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
406 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
408 if (ndr_flags & NDR_BUFFERS) {
409 if (r->data) {
410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
413 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
416 ndr->flags = _flags_save_STRUCT;
418 return NDR_ERR_SUCCESS;
421 static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
423 uint32_t _ptr_data;
424 TALLOC_CTX *_mem_save_data_0;
426 uint32_t _flags_save_STRUCT = ndr->flags;
427 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
428 if (ndr_flags & NDR_SCALARS) {
429 NDR_CHECK(ndr_pull_align(ndr, 4));
430 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
431 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
432 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
433 if (_ptr_data) {
434 NDR_PULL_ALLOC(ndr, r->data);
435 } else {
436 r->data = NULL;
439 if (ndr_flags & NDR_BUFFERS) {
440 if (r->data) {
441 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
442 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
443 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
444 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
445 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
446 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));
448 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
449 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
452 if (r->data) {
453 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
455 if (r->data) {
456 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
459 ndr->flags = _flags_save_STRUCT;
461 return NDR_ERR_SUCCESS;
464 _PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
466 ndr_print_struct(ndr, name, "netr_ChallengeResponse");
468 uint32_t _flags_save_STRUCT = ndr->flags;
469 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
470 ndr->depth++;
471 ndr_print_uint16(ndr, "length", r->length);
472 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
473 ndr_print_ptr(ndr, "data", r->data);
474 ndr->depth++;
475 if (r->data) {
476 ndr_print_array_uint8(ndr, "data", r->data, r->length);
478 ndr->depth--;
479 ndr->depth--;
480 ndr->flags = _flags_save_STRUCT;
484 static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
487 uint32_t _flags_save_STRUCT = ndr->flags;
488 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
489 if (ndr_flags & NDR_SCALARS) {
490 NDR_CHECK(ndr_push_align(ndr, 4));
491 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
492 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
493 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
494 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
496 if (ndr_flags & NDR_BUFFERS) {
497 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
498 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
499 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
501 ndr->flags = _flags_save_STRUCT;
503 return NDR_ERR_SUCCESS;
506 static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
509 uint32_t _flags_save_STRUCT = ndr->flags;
510 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
511 if (ndr_flags & NDR_SCALARS) {
512 NDR_CHECK(ndr_pull_align(ndr, 4));
513 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
514 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
515 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
516 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
518 if (ndr_flags & NDR_BUFFERS) {
519 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
520 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
521 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
523 ndr->flags = _flags_save_STRUCT;
525 return NDR_ERR_SUCCESS;
528 _PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
530 ndr_print_struct(ndr, name, "netr_NetworkInfo");
532 uint32_t _flags_save_STRUCT = ndr->flags;
533 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
534 ndr->depth++;
535 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
536 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
537 ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
538 ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
539 ndr->depth--;
540 ndr->flags = _flags_save_STRUCT;
544 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonInfo(struct ndr_push *ndr, int ndr_flags, const union netr_LogonInfo *r)
546 if (ndr_flags & NDR_SCALARS) {
547 int level = ndr_push_get_switch_value(ndr, r);
548 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
549 switch (level) {
550 case 1: {
551 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
552 break; }
554 case 2: {
555 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
556 break; }
558 case 3: {
559 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
560 break; }
562 case 5: {
563 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
564 break; }
566 case 6: {
567 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
568 break; }
570 default:
571 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
574 if (ndr_flags & NDR_BUFFERS) {
575 int level = ndr_push_get_switch_value(ndr, r);
576 switch (level) {
577 case 1:
578 if (r->password) {
579 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
581 break;
583 case 2:
584 if (r->network) {
585 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
587 break;
589 case 3:
590 if (r->password) {
591 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
593 break;
595 case 5:
596 if (r->password) {
597 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
599 break;
601 case 6:
602 if (r->network) {
603 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
605 break;
607 default:
608 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
611 return NDR_ERR_SUCCESS;
614 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonInfo(struct ndr_pull *ndr, int ndr_flags, union netr_LogonInfo *r)
616 int level;
617 uint16_t _level;
618 TALLOC_CTX *_mem_save_password_0;
619 TALLOC_CTX *_mem_save_network_0;
620 level = ndr_pull_get_switch_value(ndr, r);
621 if (ndr_flags & NDR_SCALARS) {
622 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
623 if (_level != level) {
624 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
626 switch (level) {
627 case 1: {
628 uint32_t _ptr_password;
629 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
630 if (_ptr_password) {
631 NDR_PULL_ALLOC(ndr, r->password);
632 } else {
633 r->password = NULL;
635 break; }
637 case 2: {
638 uint32_t _ptr_network;
639 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
640 if (_ptr_network) {
641 NDR_PULL_ALLOC(ndr, r->network);
642 } else {
643 r->network = NULL;
645 break; }
647 case 3: {
648 uint32_t _ptr_password;
649 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
650 if (_ptr_password) {
651 NDR_PULL_ALLOC(ndr, r->password);
652 } else {
653 r->password = NULL;
655 break; }
657 case 5: {
658 uint32_t _ptr_password;
659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
660 if (_ptr_password) {
661 NDR_PULL_ALLOC(ndr, r->password);
662 } else {
663 r->password = NULL;
665 break; }
667 case 6: {
668 uint32_t _ptr_network;
669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
670 if (_ptr_network) {
671 NDR_PULL_ALLOC(ndr, r->network);
672 } else {
673 r->network = NULL;
675 break; }
677 default:
678 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
681 if (ndr_flags & NDR_BUFFERS) {
682 switch (level) {
683 case 1:
684 if (r->password) {
685 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
686 NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
687 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
690 break;
692 case 2:
693 if (r->network) {
694 _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
695 NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
696 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
697 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
699 break;
701 case 3:
702 if (r->password) {
703 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
704 NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
705 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
708 break;
710 case 5:
711 if (r->password) {
712 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
713 NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
714 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
717 break;
719 case 6:
720 if (r->network) {
721 _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
722 NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
723 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
726 break;
728 default:
729 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
732 return NDR_ERR_SUCCESS;
735 _PUBLIC_ void ndr_print_netr_LogonInfo(struct ndr_print *ndr, const char *name, const union netr_LogonInfo *r)
737 int level;
738 level = ndr_print_get_switch_value(ndr, r);
739 ndr_print_union(ndr, name, level, "netr_LogonInfo");
740 switch (level) {
741 case 1:
742 ndr_print_ptr(ndr, "password", r->password);
743 ndr->depth++;
744 if (r->password) {
745 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
747 ndr->depth--;
748 break;
750 case 2:
751 ndr_print_ptr(ndr, "network", r->network);
752 ndr->depth++;
753 if (r->network) {
754 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
756 ndr->depth--;
757 break;
759 case 3:
760 ndr_print_ptr(ndr, "password", r->password);
761 ndr->depth++;
762 if (r->password) {
763 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
765 ndr->depth--;
766 break;
768 case 5:
769 ndr_print_ptr(ndr, "password", r->password);
770 ndr->depth++;
771 if (r->password) {
772 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
774 ndr->depth--;
775 break;
777 case 6:
778 ndr_print_ptr(ndr, "network", r->network);
779 ndr->depth++;
780 if (r->network) {
781 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
783 ndr->depth--;
784 break;
786 default:
787 ndr_print_bad_level(ndr, name, level);
791 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
794 uint32_t _flags_save_STRUCT = ndr->flags;
795 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
796 if (ndr_flags & NDR_SCALARS) {
797 NDR_CHECK(ndr_push_align(ndr, 1));
798 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
800 if (ndr_flags & NDR_BUFFERS) {
802 ndr->flags = _flags_save_STRUCT;
804 return NDR_ERR_SUCCESS;
807 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
810 uint32_t _flags_save_STRUCT = ndr->flags;
811 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
812 if (ndr_flags & NDR_SCALARS) {
813 NDR_CHECK(ndr_pull_align(ndr, 1));
814 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
816 if (ndr_flags & NDR_BUFFERS) {
818 ndr->flags = _flags_save_STRUCT;
820 return NDR_ERR_SUCCESS;
823 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
825 ndr_print_struct(ndr, name, "netr_UserSessionKey");
827 uint32_t _flags_save_STRUCT = ndr->flags;
828 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
829 ndr->depth++;
830 ndr_print_array_uint8(ndr, "key", r->key, 16);
831 ndr->depth--;
832 ndr->flags = _flags_save_STRUCT;
836 _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
839 uint32_t _flags_save_STRUCT = ndr->flags;
840 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
841 if (ndr_flags & NDR_SCALARS) {
842 NDR_CHECK(ndr_push_align(ndr, 1));
843 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
845 if (ndr_flags & NDR_BUFFERS) {
847 ndr->flags = _flags_save_STRUCT;
849 return NDR_ERR_SUCCESS;
852 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
855 uint32_t _flags_save_STRUCT = ndr->flags;
856 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
857 if (ndr_flags & NDR_SCALARS) {
858 NDR_CHECK(ndr_pull_align(ndr, 1));
859 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
861 if (ndr_flags & NDR_BUFFERS) {
863 ndr->flags = _flags_save_STRUCT;
865 return NDR_ERR_SUCCESS;
868 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
870 ndr_print_struct(ndr, name, "netr_LMSessionKey");
872 uint32_t _flags_save_STRUCT = ndr->flags;
873 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
874 ndr->depth++;
875 ndr_print_array_uint8(ndr, "key", r->key, 8);
876 ndr->depth--;
877 ndr->flags = _flags_save_STRUCT;
881 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
883 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
884 return NDR_ERR_SUCCESS;
887 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
889 uint32_t v;
890 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
891 *r = v;
892 return NDR_ERR_SUCCESS;
895 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
897 ndr_print_uint32(ndr, name, r);
898 ndr->depth++;
899 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
900 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
901 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
902 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
903 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
904 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
905 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
906 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
907 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
908 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
909 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON, r);
910 ndr->depth--;
913 static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
915 uint32_t cntr_unknown_0;
916 if (ndr_flags & NDR_SCALARS) {
917 NDR_CHECK(ndr_push_align(ndr, 4));
918 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
919 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
920 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
921 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
922 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
923 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
924 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
925 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
926 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
927 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
928 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
929 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
930 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
931 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
932 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
934 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
935 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
936 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
937 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
938 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
939 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
940 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
941 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
942 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
946 if (ndr_flags & NDR_BUFFERS) {
947 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
948 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
949 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
950 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
951 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
952 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
953 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
954 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
955 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
956 if (r->domain_sid) {
957 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
960 return NDR_ERR_SUCCESS;
963 static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
965 uint32_t _ptr_domain_sid;
966 TALLOC_CTX *_mem_save_domain_sid_0;
967 uint32_t cntr_unknown_0;
968 if (ndr_flags & NDR_SCALARS) {
969 NDR_CHECK(ndr_pull_align(ndr, 4));
970 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
971 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
972 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
973 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
974 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
975 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
976 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
977 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
978 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
979 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
980 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
981 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
982 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
983 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
984 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
985 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
986 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
987 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
988 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
989 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
990 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
991 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
992 if (_ptr_domain_sid) {
993 NDR_PULL_ALLOC(ndr, r->domain_sid);
994 } else {
995 r->domain_sid = NULL;
997 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
998 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
999 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1000 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
1003 if (ndr_flags & NDR_BUFFERS) {
1004 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1005 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1006 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1007 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1008 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1009 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1010 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1011 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1012 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1013 if (r->domain_sid) {
1014 _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1015 NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1016 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1020 return NDR_ERR_SUCCESS;
1023 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
1025 uint32_t cntr_unknown_0;
1026 ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1027 ndr->depth++;
1028 ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1029 ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1030 ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1031 ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1032 ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1033 ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1034 ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1035 ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1036 ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1037 ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1038 ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1039 ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1040 ndr_print_uint16(ndr, "logon_count", r->logon_count);
1041 ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1042 ndr_print_uint32(ndr, "rid", r->rid);
1043 ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1044 ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1045 ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1046 ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1047 ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1048 ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1049 ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1050 ndr->depth++;
1051 if (r->domain_sid) {
1052 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1054 ndr->depth--;
1055 ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1056 ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1057 ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)7);
1058 ndr->depth++;
1059 for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1060 char *idx_0=NULL;
1061 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
1062 ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1063 free(idx_0);
1066 ndr->depth--;
1067 ndr->depth--;
1070 static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
1072 if (ndr_flags & NDR_SCALARS) {
1073 NDR_CHECK(ndr_push_align(ndr, 4));
1074 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1076 if (ndr_flags & NDR_BUFFERS) {
1077 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1079 return NDR_ERR_SUCCESS;
1082 static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
1084 if (ndr_flags & NDR_SCALARS) {
1085 NDR_CHECK(ndr_pull_align(ndr, 4));
1086 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1088 if (ndr_flags & NDR_BUFFERS) {
1089 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1091 return NDR_ERR_SUCCESS;
1094 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
1096 ndr_print_struct(ndr, name, "netr_SamInfo2");
1097 ndr->depth++;
1098 ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1099 ndr->depth--;
1102 static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
1104 if (ndr_flags & NDR_SCALARS) {
1105 NDR_CHECK(ndr_push_align(ndr, 4));
1106 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1107 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1109 if (ndr_flags & NDR_BUFFERS) {
1110 if (r->sid) {
1111 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1114 return NDR_ERR_SUCCESS;
1117 static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
1119 uint32_t _ptr_sid;
1120 TALLOC_CTX *_mem_save_sid_0;
1121 if (ndr_flags & NDR_SCALARS) {
1122 NDR_CHECK(ndr_pull_align(ndr, 4));
1123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1124 if (_ptr_sid) {
1125 NDR_PULL_ALLOC(ndr, r->sid);
1126 } else {
1127 r->sid = NULL;
1129 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1131 if (ndr_flags & NDR_BUFFERS) {
1132 if (r->sid) {
1133 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1134 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1135 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1139 return NDR_ERR_SUCCESS;
1142 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
1144 ndr_print_struct(ndr, name, "netr_SidAttr");
1145 ndr->depth++;
1146 ndr_print_ptr(ndr, "sid", r->sid);
1147 ndr->depth++;
1148 if (r->sid) {
1149 ndr_print_dom_sid2(ndr, "sid", r->sid);
1151 ndr->depth--;
1152 ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1153 ndr->depth--;
1156 _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
1158 uint32_t cntr_sids_1;
1159 if (ndr_flags & NDR_SCALARS) {
1160 NDR_CHECK(ndr_push_align(ndr, 4));
1161 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1163 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1165 if (ndr_flags & NDR_BUFFERS) {
1166 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1167 if (r->sids) {
1168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1169 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1170 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1172 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1173 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1177 return NDR_ERR_SUCCESS;
1180 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
1182 uint32_t _ptr_sids;
1183 uint32_t cntr_sids_1;
1184 TALLOC_CTX *_mem_save_sids_0;
1185 TALLOC_CTX *_mem_save_sids_1;
1186 if (ndr_flags & NDR_SCALARS) {
1187 NDR_CHECK(ndr_pull_align(ndr, 4));
1188 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1189 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1191 if (_ptr_sids) {
1192 NDR_PULL_ALLOC(ndr, r->sids);
1193 } else {
1194 r->sids = NULL;
1197 if (ndr_flags & NDR_BUFFERS) {
1198 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1199 if (r->sids) {
1200 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1201 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1202 NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1203 NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1204 _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1205 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1206 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1207 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1209 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1210 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1215 if (r->sids) {
1216 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1219 return NDR_ERR_SUCCESS;
1222 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
1224 uint32_t cntr_sids_1;
1225 ndr_print_struct(ndr, name, "netr_SamInfo3");
1226 ndr->depth++;
1227 ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1228 ndr_print_uint32(ndr, "sidcount", r->sidcount);
1229 ndr_print_ptr(ndr, "sids", r->sids);
1230 ndr->depth++;
1231 if (r->sids) {
1232 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1233 ndr->depth++;
1234 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1235 char *idx_1=NULL;
1236 if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1237 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1238 free(idx_1);
1241 ndr->depth--;
1243 ndr->depth--;
1244 ndr->depth--;
1247 static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
1249 uint32_t cntr_sids_1;
1250 uint32_t cntr_unknown4_0;
1251 if (ndr_flags & NDR_SCALARS) {
1252 NDR_CHECK(ndr_push_align(ndr, 4));
1253 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1255 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1256 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1257 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1258 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1262 if (ndr_flags & NDR_BUFFERS) {
1263 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1264 if (r->sids) {
1265 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1266 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1267 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1269 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1270 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1273 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1274 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1276 return NDR_ERR_SUCCESS;
1279 static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
1281 uint32_t _ptr_sids;
1282 uint32_t cntr_sids_1;
1283 TALLOC_CTX *_mem_save_sids_0;
1284 TALLOC_CTX *_mem_save_sids_1;
1285 uint32_t cntr_unknown4_0;
1286 if (ndr_flags & NDR_SCALARS) {
1287 NDR_CHECK(ndr_pull_align(ndr, 4));
1288 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1289 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1290 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1291 if (_ptr_sids) {
1292 NDR_PULL_ALLOC(ndr, r->sids);
1293 } else {
1294 r->sids = NULL;
1296 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1297 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1298 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1299 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1302 if (ndr_flags & NDR_BUFFERS) {
1303 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1304 if (r->sids) {
1305 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1306 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1307 NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1308 NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1309 _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1310 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1311 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1312 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1314 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1315 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1317 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1320 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1321 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1322 if (r->sids) {
1323 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1326 return NDR_ERR_SUCCESS;
1329 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
1331 uint32_t cntr_sids_1;
1332 uint32_t cntr_unknown4_0;
1333 ndr_print_struct(ndr, name, "netr_SamInfo6");
1334 ndr->depth++;
1335 ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1336 ndr_print_uint32(ndr, "sidcount", r->sidcount);
1337 ndr_print_ptr(ndr, "sids", r->sids);
1338 ndr->depth++;
1339 if (r->sids) {
1340 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1341 ndr->depth++;
1342 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1343 char *idx_1=NULL;
1344 if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1345 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1346 free(idx_1);
1349 ndr->depth--;
1351 ndr->depth--;
1352 ndr_print_lsa_String(ndr, "forest", &r->forest);
1353 ndr_print_lsa_String(ndr, "principle", &r->principle);
1354 ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", (int)20);
1355 ndr->depth++;
1356 for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1357 char *idx_0=NULL;
1358 if (asprintf(&idx_0, "[%d]", cntr_unknown4_0) != -1) {
1359 ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1360 free(idx_0);
1363 ndr->depth--;
1364 ndr->depth--;
1367 static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
1369 uint32_t cntr_expansionroom_0;
1370 if (ndr_flags & NDR_SCALARS) {
1371 NDR_CHECK(ndr_push_align(ndr, 4));
1372 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1373 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1374 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1375 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1376 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1378 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1379 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1380 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1383 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1384 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1385 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1386 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1388 if (ndr_flags & NDR_BUFFERS) {
1389 if (r->pac) {
1390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1391 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1393 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1394 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1395 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1396 if (r->auth) {
1397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1398 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1400 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1401 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1402 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1403 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1405 return NDR_ERR_SUCCESS;
1408 static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
1410 uint32_t _ptr_pac;
1411 TALLOC_CTX *_mem_save_pac_0;
1412 uint32_t _ptr_auth;
1413 TALLOC_CTX *_mem_save_auth_0;
1414 uint32_t cntr_expansionroom_0;
1415 if (ndr_flags & NDR_SCALARS) {
1416 NDR_CHECK(ndr_pull_align(ndr, 4));
1417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1418 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1419 if (_ptr_pac) {
1420 NDR_PULL_ALLOC(ndr, r->pac);
1421 } else {
1422 r->pac = NULL;
1424 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1425 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1426 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1428 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1429 if (_ptr_auth) {
1430 NDR_PULL_ALLOC(ndr, r->auth);
1431 } else {
1432 r->auth = NULL;
1434 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1435 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1436 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1438 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1439 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1440 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1441 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1443 if (ndr_flags & NDR_BUFFERS) {
1444 if (r->pac) {
1445 _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1446 NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1447 NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1448 NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1449 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1452 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1453 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1454 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1455 if (r->auth) {
1456 _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1457 NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1458 NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1459 NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1460 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1463 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1464 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1465 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1466 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1467 if (r->pac) {
1468 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1470 if (r->auth) {
1471 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1474 return NDR_ERR_SUCCESS;
1477 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
1479 uint32_t cntr_expansionroom_0;
1480 ndr_print_struct(ndr, name, "netr_PacInfo");
1481 ndr->depth++;
1482 ndr_print_uint32(ndr, "pac_size", r->pac_size);
1483 ndr_print_ptr(ndr, "pac", r->pac);
1484 ndr->depth++;
1485 if (r->pac) {
1486 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1488 ndr->depth--;
1489 ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1490 ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1491 ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1492 ndr_print_uint32(ndr, "auth_size", r->auth_size);
1493 ndr_print_ptr(ndr, "auth", r->auth);
1494 ndr->depth++;
1495 if (r->auth) {
1496 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1498 ndr->depth--;
1499 ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1500 ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", (int)10);
1501 ndr->depth++;
1502 for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1503 char *idx_0=NULL;
1504 if (asprintf(&idx_0, "[%d]", cntr_expansionroom_0) != -1) {
1505 ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1506 free(idx_0);
1509 ndr->depth--;
1510 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1511 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1512 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1513 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1514 ndr->depth--;
1517 _PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
1519 if (ndr_flags & NDR_SCALARS) {
1520 int level = ndr_push_get_switch_value(ndr, r);
1521 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1522 switch (level) {
1523 case 2: {
1524 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1525 break; }
1527 case 3: {
1528 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1529 break; }
1531 case 4: {
1532 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1533 break; }
1535 case 5: {
1536 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1537 break; }
1539 case 6: {
1540 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1541 break; }
1543 default:
1544 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1547 if (ndr_flags & NDR_BUFFERS) {
1548 int level = ndr_push_get_switch_value(ndr, r);
1549 switch (level) {
1550 case 2:
1551 if (r->sam2) {
1552 NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1554 break;
1556 case 3:
1557 if (r->sam3) {
1558 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1560 break;
1562 case 4:
1563 if (r->pac) {
1564 NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1566 break;
1568 case 5:
1569 if (r->pac) {
1570 NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1572 break;
1574 case 6:
1575 if (r->sam6) {
1576 NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1578 break;
1580 default:
1581 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1584 return NDR_ERR_SUCCESS;
1587 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
1589 int level;
1590 uint16_t _level;
1591 TALLOC_CTX *_mem_save_sam2_0;
1592 TALLOC_CTX *_mem_save_sam3_0;
1593 TALLOC_CTX *_mem_save_pac_0;
1594 TALLOC_CTX *_mem_save_sam6_0;
1595 level = ndr_pull_get_switch_value(ndr, r);
1596 if (ndr_flags & NDR_SCALARS) {
1597 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1598 if (_level != level) {
1599 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1601 switch (level) {
1602 case 2: {
1603 uint32_t _ptr_sam2;
1604 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1605 if (_ptr_sam2) {
1606 NDR_PULL_ALLOC(ndr, r->sam2);
1607 } else {
1608 r->sam2 = NULL;
1610 break; }
1612 case 3: {
1613 uint32_t _ptr_sam3;
1614 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1615 if (_ptr_sam3) {
1616 NDR_PULL_ALLOC(ndr, r->sam3);
1617 } else {
1618 r->sam3 = NULL;
1620 break; }
1622 case 4: {
1623 uint32_t _ptr_pac;
1624 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1625 if (_ptr_pac) {
1626 NDR_PULL_ALLOC(ndr, r->pac);
1627 } else {
1628 r->pac = NULL;
1630 break; }
1632 case 5: {
1633 uint32_t _ptr_pac;
1634 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1635 if (_ptr_pac) {
1636 NDR_PULL_ALLOC(ndr, r->pac);
1637 } else {
1638 r->pac = NULL;
1640 break; }
1642 case 6: {
1643 uint32_t _ptr_sam6;
1644 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1645 if (_ptr_sam6) {
1646 NDR_PULL_ALLOC(ndr, r->sam6);
1647 } else {
1648 r->sam6 = NULL;
1650 break; }
1652 default:
1653 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1656 if (ndr_flags & NDR_BUFFERS) {
1657 switch (level) {
1658 case 2:
1659 if (r->sam2) {
1660 _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1661 NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1662 NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1665 break;
1667 case 3:
1668 if (r->sam3) {
1669 _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1670 NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1671 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1674 break;
1676 case 4:
1677 if (r->pac) {
1678 _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1679 NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1680 NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1683 break;
1685 case 5:
1686 if (r->pac) {
1687 _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1688 NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1689 NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1692 break;
1694 case 6:
1695 if (r->sam6) {
1696 _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1697 NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1698 NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1701 break;
1703 default:
1704 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1707 return NDR_ERR_SUCCESS;
1710 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
1712 int level;
1713 level = ndr_print_get_switch_value(ndr, r);
1714 ndr_print_union(ndr, name, level, "netr_Validation");
1715 switch (level) {
1716 case 2:
1717 ndr_print_ptr(ndr, "sam2", r->sam2);
1718 ndr->depth++;
1719 if (r->sam2) {
1720 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
1722 ndr->depth--;
1723 break;
1725 case 3:
1726 ndr_print_ptr(ndr, "sam3", r->sam3);
1727 ndr->depth++;
1728 if (r->sam3) {
1729 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
1731 ndr->depth--;
1732 break;
1734 case 4:
1735 ndr_print_ptr(ndr, "pac", r->pac);
1736 ndr->depth++;
1737 if (r->pac) {
1738 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1740 ndr->depth--;
1741 break;
1743 case 5:
1744 ndr_print_ptr(ndr, "pac", r->pac);
1745 ndr->depth++;
1746 if (r->pac) {
1747 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1749 ndr->depth--;
1750 break;
1752 case 6:
1753 ndr_print_ptr(ndr, "sam6", r->sam6);
1754 ndr->depth++;
1755 if (r->sam6) {
1756 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
1758 ndr->depth--;
1759 break;
1761 default:
1762 ndr_print_bad_level(ndr, name, level);
1766 _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
1769 uint32_t _flags_save_STRUCT = ndr->flags;
1770 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1771 if (ndr_flags & NDR_SCALARS) {
1772 NDR_CHECK(ndr_push_align(ndr, 1));
1773 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1775 if (ndr_flags & NDR_BUFFERS) {
1777 ndr->flags = _flags_save_STRUCT;
1779 return NDR_ERR_SUCCESS;
1782 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
1785 uint32_t _flags_save_STRUCT = ndr->flags;
1786 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1787 if (ndr_flags & NDR_SCALARS) {
1788 NDR_CHECK(ndr_pull_align(ndr, 1));
1789 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1791 if (ndr_flags & NDR_BUFFERS) {
1793 ndr->flags = _flags_save_STRUCT;
1795 return NDR_ERR_SUCCESS;
1798 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
1800 ndr_print_struct(ndr, name, "netr_Credential");
1802 uint32_t _flags_save_STRUCT = ndr->flags;
1803 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1804 ndr->depth++;
1805 ndr_print_array_uint8(ndr, "data", r->data, 8);
1806 ndr->depth--;
1807 ndr->flags = _flags_save_STRUCT;
1811 _PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
1813 if (ndr_flags & NDR_SCALARS) {
1814 NDR_CHECK(ndr_push_align(ndr, 4));
1815 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1816 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
1818 if (ndr_flags & NDR_BUFFERS) {
1820 return NDR_ERR_SUCCESS;
1823 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
1825 if (ndr_flags & NDR_SCALARS) {
1826 NDR_CHECK(ndr_pull_align(ndr, 4));
1827 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1828 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
1830 if (ndr_flags & NDR_BUFFERS) {
1832 return NDR_ERR_SUCCESS;
1835 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
1837 ndr_print_struct(ndr, name, "netr_Authenticator");
1838 ndr->depth++;
1839 ndr_print_netr_Credential(ndr, "cred", &r->cred);
1840 ndr_print_time_t(ndr, "timestamp", r->timestamp);
1841 ndr->depth--;
1844 static enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, enum netr_LogonLevel r)
1846 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
1847 return NDR_ERR_SUCCESS;
1850 static enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonLevel *r)
1852 uint16_t v;
1853 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
1854 *r = v;
1855 return NDR_ERR_SUCCESS;
1858 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, enum netr_LogonLevel r)
1860 const char *val = NULL;
1862 switch (r) {
1863 case INTERACTIVE_LOGON_TYPE: val = "INTERACTIVE_LOGON_TYPE"; break;
1864 case NET_LOGON_TYPE: val = "NET_LOGON_TYPE"; break;
1866 ndr_print_enum(ndr, name, "ENUM", val, r);
1869 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)
1871 if (ndr_flags & NDR_SCALARS) {
1872 NDR_CHECK(ndr_push_align(ndr, 4));
1873 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
1874 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1875 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1876 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1877 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
1879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
1880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
1881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
1883 if (ndr_flags & NDR_BUFFERS) {
1884 if (r->account_name) {
1885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1888 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
1890 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1891 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1892 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1893 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1895 return NDR_ERR_SUCCESS;
1898 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
1900 uint32_t _ptr_account_name;
1901 TALLOC_CTX *_mem_save_account_name_0;
1902 if (ndr_flags & NDR_SCALARS) {
1903 NDR_CHECK(ndr_pull_align(ndr, 4));
1904 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
1905 if (_ptr_account_name) {
1906 NDR_PULL_ALLOC(ndr, r->account_name);
1907 } else {
1908 r->account_name = NULL;
1910 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1911 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1912 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1913 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1914 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
1915 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
1916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
1917 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
1919 if (ndr_flags & NDR_BUFFERS) {
1920 if (r->account_name) {
1921 _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1922 NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
1923 NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
1924 NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
1925 if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
1926 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));
1928 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
1929 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
1930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
1932 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1933 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1934 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1935 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1937 return NDR_ERR_SUCCESS;
1940 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
1942 ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
1943 ndr->depth++;
1944 ndr_print_ptr(ndr, "account_name", r->account_name);
1945 ndr->depth++;
1946 if (r->account_name) {
1947 ndr_print_string(ndr, "account_name", r->account_name);
1949 ndr->depth--;
1950 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1951 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1952 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1953 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1954 ndr_print_uint32(ndr, "unknown5", r->unknown5);
1955 ndr_print_uint32(ndr, "unknown6", r->unknown6);
1956 ndr_print_uint32(ndr, "unknown7", r->unknown7);
1957 ndr_print_uint32(ndr, "unknown8", r->unknown8);
1958 ndr->depth--;
1961 static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
1963 if (ndr_flags & NDR_SCALARS) {
1964 NDR_CHECK(ndr_push_align(ndr, 4));
1965 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1966 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
1968 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
1970 if (ndr_flags & NDR_BUFFERS) {
1971 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
1973 return NDR_ERR_SUCCESS;
1976 static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
1978 if (ndr_flags & NDR_SCALARS) {
1979 NDR_CHECK(ndr_pull_align(ndr, 4));
1980 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
1981 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1982 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
1983 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
1985 if (ndr_flags & NDR_BUFFERS) {
1986 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
1988 return NDR_ERR_SUCCESS;
1991 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
1993 ndr_print_struct(ndr, name, "netr_USER_KEY16");
1994 ndr->depth++;
1995 ndr_print_uint16(ndr, "length", r->length);
1996 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
1997 ndr_print_uint32(ndr, "flags", r->flags);
1998 ndr_print_samr_Password(ndr, "pwd", &r->pwd);
1999 ndr->depth--;
2002 static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
2004 if (ndr_flags & NDR_SCALARS) {
2005 NDR_CHECK(ndr_push_align(ndr, 4));
2006 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2007 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2009 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2010 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2012 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2013 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2015 if (ndr_flags & NDR_BUFFERS) {
2017 return NDR_ERR_SUCCESS;
2020 static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
2022 if (ndr_flags & NDR_SCALARS) {
2023 NDR_CHECK(ndr_pull_align(ndr, 4));
2024 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
2025 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2026 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2027 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2028 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2029 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2030 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2031 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2032 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2033 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2035 if (ndr_flags & NDR_BUFFERS) {
2037 return NDR_ERR_SUCCESS;
2040 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
2042 ndr_print_struct(ndr, name, "netr_PasswordHistory");
2043 ndr->depth++;
2044 ndr_print_uint16(ndr, "nt_length", r->nt_length);
2045 ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
2046 ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2047 ndr_print_uint16(ndr, "lm_length", r->lm_length);
2048 ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
2049 ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2050 ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2051 ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2052 ndr->depth--;
2055 static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
2057 if (ndr_flags & NDR_SCALARS) {
2058 NDR_CHECK(ndr_push_align(ndr, 4));
2059 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2060 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2061 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2063 if (ndr_flags & NDR_BUFFERS) {
2064 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2065 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2067 return NDR_ERR_SUCCESS;
2070 static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
2072 if (ndr_flags & NDR_SCALARS) {
2073 NDR_CHECK(ndr_pull_align(ndr, 4));
2074 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2075 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2076 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2078 if (ndr_flags & NDR_BUFFERS) {
2079 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2080 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2082 return NDR_ERR_SUCCESS;
2085 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
2087 ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2088 ndr->depth++;
2089 ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2090 ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2091 ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
2092 ndr->depth--;
2095 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)
2097 if (ndr_flags & NDR_SCALARS) {
2098 NDR_CHECK(ndr_push_align(ndr, 4));
2099 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2101 if (ndr_flags & NDR_BUFFERS) {
2102 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2104 return NDR_ERR_SUCCESS;
2107 static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
2109 if (ndr_flags & NDR_SCALARS) {
2110 NDR_CHECK(ndr_pull_align(ndr, 4));
2111 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2113 if (ndr_flags & NDR_BUFFERS) {
2114 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2116 return NDR_ERR_SUCCESS;
2119 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
2121 ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2122 ndr->depth++;
2123 ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2124 ndr->depth--;
2127 _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
2129 if (ndr_flags & NDR_SCALARS) {
2130 NDR_CHECK(ndr_push_align(ndr, 4));
2131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2132 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2134 if (ndr_flags & NDR_BUFFERS) {
2135 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2137 return NDR_ERR_SUCCESS;
2140 _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
2142 if (ndr_flags & NDR_SCALARS) {
2143 NDR_CHECK(ndr_pull_align(ndr, 4));
2144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2145 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2147 if (ndr_flags & NDR_BUFFERS) {
2148 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2150 return NDR_ERR_SUCCESS;
2153 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
2155 ndr_print_struct(ndr, name, "netr_USER_KEYS");
2156 ndr->depth++;
2157 ndr_print_uint32(ndr, "version", r->version);
2158 ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2159 ndr->depth--;
2162 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)
2164 if (ndr_flags & NDR_SCALARS) {
2165 NDR_CHECK(ndr_push_align(ndr, 4));
2166 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2167 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2169 uint32_t _flags_save_uint8 = ndr->flags;
2170 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2171 NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
2172 ndr->flags = _flags_save_uint8;
2175 if (ndr_flags & NDR_BUFFERS) {
2177 uint32_t _flags_save_uint8 = ndr->flags;
2178 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2179 if (r->SensitiveData) {
2180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2181 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2183 ndr->flags = _flags_save_uint8;
2186 return NDR_ERR_SUCCESS;
2189 static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
2191 uint32_t _ptr_SensitiveData;
2192 TALLOC_CTX *_mem_save_SensitiveData_0;
2193 if (ndr_flags & NDR_SCALARS) {
2194 NDR_CHECK(ndr_pull_align(ndr, 4));
2195 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2198 uint32_t _flags_save_uint8 = ndr->flags;
2199 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2201 if (_ptr_SensitiveData) {
2202 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2203 } else {
2204 r->SensitiveData = NULL;
2206 ndr->flags = _flags_save_uint8;
2209 if (ndr_flags & NDR_BUFFERS) {
2211 uint32_t _flags_save_uint8 = ndr->flags;
2212 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2213 if (r->SensitiveData) {
2214 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2215 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2216 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2217 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2218 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2221 ndr->flags = _flags_save_uint8;
2223 if (r->SensitiveData) {
2224 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2227 return NDR_ERR_SUCCESS;
2230 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
2232 ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2233 ndr->depth++;
2234 ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2235 ndr_print_uint32(ndr, "DataLength", r->DataLength);
2236 ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2237 ndr->depth++;
2238 if (r->SensitiveData) {
2239 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2241 ndr->depth--;
2242 ndr->depth--;
2245 static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
2247 if (ndr_flags & NDR_SCALARS) {
2248 NDR_CHECK(ndr_push_align(ndr, 4));
2249 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2250 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2253 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2254 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2255 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2256 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2257 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2258 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2259 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2260 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2261 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2262 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2263 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2264 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2265 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2266 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2267 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2268 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2269 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2270 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2271 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2272 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2273 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2274 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2275 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2277 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2278 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2279 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2280 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2281 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2282 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2287 if (ndr_flags & NDR_BUFFERS) {
2288 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2289 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2290 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2291 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2292 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2293 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2294 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2295 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2296 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2297 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2298 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2299 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2300 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2301 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2302 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2303 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2304 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2305 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2307 return NDR_ERR_SUCCESS;
2310 static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
2312 if (ndr_flags & NDR_SCALARS) {
2313 NDR_CHECK(ndr_pull_align(ndr, 4));
2314 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2315 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2316 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2317 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2318 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2319 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2320 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2321 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2322 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2323 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2324 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2325 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2326 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2327 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2328 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2329 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2330 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2331 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2332 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2333 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2334 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2335 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2336 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2337 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2338 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2339 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2340 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2341 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2342 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2343 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2344 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2345 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2346 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2347 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2348 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2350 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2352 if (ndr_flags & NDR_BUFFERS) {
2353 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2354 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2355 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2356 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2357 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2358 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2359 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2360 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2361 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2362 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2363 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2364 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2365 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2366 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2367 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2368 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2369 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2370 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2372 return NDR_ERR_SUCCESS;
2375 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
2377 ndr_print_struct(ndr, name, "netr_DELTA_USER");
2378 ndr->depth++;
2379 ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2380 ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2381 ndr_print_uint32(ndr, "rid", r->rid);
2382 ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2383 ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2384 ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2385 ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2386 ndr_print_lsa_String(ndr, "description", &r->description);
2387 ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2388 ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2389 ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2390 ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2391 ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2392 ndr_print_uint16(ndr, "logon_count", r->logon_count);
2393 ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2394 ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2395 ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2396 ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2397 ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2398 ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2399 ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2400 ndr_print_uint8(ndr, "password_expired", r->password_expired);
2401 ndr_print_lsa_String(ndr, "comment", &r->comment);
2402 ndr_print_lsa_BinaryString(ndr, "parameters", &r->parameters);
2403 ndr_print_uint16(ndr, "country_code", r->country_code);
2404 ndr_print_uint16(ndr, "code_page", r->code_page);
2405 ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2406 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2407 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2408 ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2409 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2410 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2411 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2412 ndr_print_uint32(ndr, "unknown5", r->unknown5);
2413 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2414 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2415 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2416 ndr->depth--;
2419 static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
2421 if (ndr_flags & NDR_SCALARS) {
2422 NDR_CHECK(ndr_push_align(ndr, 4));
2423 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2424 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2425 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2426 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2427 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2428 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2429 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2430 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2431 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2433 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2434 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2435 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2436 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2437 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2443 if (ndr_flags & NDR_BUFFERS) {
2444 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2445 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2446 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2447 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2448 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2449 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2450 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2452 return NDR_ERR_SUCCESS;
2455 static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
2457 if (ndr_flags & NDR_SCALARS) {
2458 NDR_CHECK(ndr_pull_align(ndr, 4));
2459 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2460 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2461 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2462 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2463 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2464 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2465 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2466 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2467 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2468 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2469 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2470 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2471 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2472 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2473 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2474 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2475 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2476 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2477 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2479 if (ndr_flags & NDR_BUFFERS) {
2480 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2481 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2482 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2483 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2484 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2485 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2486 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2488 return NDR_ERR_SUCCESS;
2491 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
2493 ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2494 ndr->depth++;
2495 ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2496 ndr_print_lsa_String(ndr, "comment", &r->comment);
2497 ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2498 ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2499 ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2500 ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2501 ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2502 ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2503 ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2504 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2505 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2506 ndr_print_lsa_BinaryString(ndr, "account_lockout", &r->account_lockout);
2507 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2508 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2509 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2510 ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2511 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2512 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2513 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2514 ndr->depth--;
2517 static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
2519 if (ndr_flags & NDR_SCALARS) {
2520 NDR_CHECK(ndr_push_align(ndr, 4));
2521 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2523 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2524 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2526 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2527 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2528 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2529 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2530 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2536 if (ndr_flags & NDR_BUFFERS) {
2537 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2538 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2539 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2540 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2541 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2542 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2543 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2545 return NDR_ERR_SUCCESS;
2548 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
2550 if (ndr_flags & NDR_SCALARS) {
2551 NDR_CHECK(ndr_pull_align(ndr, 4));
2552 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2553 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2555 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2556 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2557 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2558 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2559 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2560 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2561 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2563 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2565 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2567 if (ndr_flags & NDR_BUFFERS) {
2568 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2569 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2570 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2571 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2572 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2573 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2574 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2576 return NDR_ERR_SUCCESS;
2579 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
2581 ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2582 ndr->depth++;
2583 ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2584 ndr_print_uint32(ndr, "rid", r->rid);
2585 ndr_print_uint32(ndr, "attributes", r->attributes);
2586 ndr_print_lsa_String(ndr, "description", &r->description);
2587 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2588 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2589 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2590 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2591 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2592 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2593 ndr_print_uint32(ndr, "unknown5", r->unknown5);
2594 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2595 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2596 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2597 ndr->depth--;
2600 static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
2602 if (ndr_flags & NDR_SCALARS) {
2603 NDR_CHECK(ndr_push_align(ndr, 4));
2604 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2605 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2606 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2607 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2608 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2609 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2615 if (ndr_flags & NDR_BUFFERS) {
2616 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2617 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2618 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2619 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2620 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2621 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2623 return NDR_ERR_SUCCESS;
2626 static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
2628 if (ndr_flags & NDR_SCALARS) {
2629 NDR_CHECK(ndr_pull_align(ndr, 4));
2630 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2631 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2632 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2633 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2634 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2635 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2636 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2637 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2638 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2639 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2641 if (ndr_flags & NDR_BUFFERS) {
2642 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2643 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2644 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2645 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2646 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2647 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2649 return NDR_ERR_SUCCESS;
2652 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
2654 ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2655 ndr->depth++;
2656 ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2657 ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2658 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2659 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2660 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2661 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2662 ndr_print_uint32(ndr, "unknown5", r->unknown5);
2663 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2664 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2665 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2666 ndr->depth--;
2669 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)
2671 uint32_t cntr_rids_1;
2672 uint32_t cntr_attribs_1;
2673 if (ndr_flags & NDR_SCALARS) {
2674 NDR_CHECK(ndr_push_align(ndr, 4));
2675 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2676 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2683 if (ndr_flags & NDR_BUFFERS) {
2684 if (r->rids) {
2685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2686 for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2690 if (r->attribs) {
2691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2692 for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2697 return NDR_ERR_SUCCESS;
2700 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
2702 uint32_t _ptr_rids;
2703 uint32_t cntr_rids_1;
2704 TALLOC_CTX *_mem_save_rids_0;
2705 TALLOC_CTX *_mem_save_rids_1;
2706 uint32_t _ptr_attribs;
2707 uint32_t cntr_attribs_1;
2708 TALLOC_CTX *_mem_save_attribs_0;
2709 TALLOC_CTX *_mem_save_attribs_1;
2710 if (ndr_flags & NDR_SCALARS) {
2711 NDR_CHECK(ndr_pull_align(ndr, 4));
2712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2713 if (_ptr_rids) {
2714 NDR_PULL_ALLOC(ndr, r->rids);
2715 } else {
2716 r->rids = NULL;
2718 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2719 if (_ptr_attribs) {
2720 NDR_PULL_ALLOC(ndr, r->attribs);
2721 } else {
2722 r->attribs = NULL;
2724 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2725 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2726 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2727 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2728 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2730 if (ndr_flags & NDR_BUFFERS) {
2731 if (r->rids) {
2732 _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2733 NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2734 NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2735 NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2736 _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2737 NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2738 for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2739 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2744 if (r->attribs) {
2745 _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2746 NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2747 NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2748 NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2749 _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2750 NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2751 for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2752 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2754 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2755 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2757 if (r->rids) {
2758 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2760 if (r->attribs) {
2761 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
2764 return NDR_ERR_SUCCESS;
2767 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
2769 uint32_t cntr_rids_1;
2770 uint32_t cntr_attribs_1;
2771 ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
2772 ndr->depth++;
2773 ndr_print_ptr(ndr, "rids", r->rids);
2774 ndr->depth++;
2775 if (r->rids) {
2776 ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->num_rids);
2777 ndr->depth++;
2778 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
2779 char *idx_1=NULL;
2780 if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
2781 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
2782 free(idx_1);
2785 ndr->depth--;
2787 ndr->depth--;
2788 ndr_print_ptr(ndr, "attribs", r->attribs);
2789 ndr->depth++;
2790 if (r->attribs) {
2791 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", (int)r->num_rids);
2792 ndr->depth++;
2793 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
2794 char *idx_1=NULL;
2795 if (asprintf(&idx_1, "[%d]", cntr_attribs_1) != -1) {
2796 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
2797 free(idx_1);
2800 ndr->depth--;
2802 ndr->depth--;
2803 ndr_print_uint32(ndr, "num_rids", r->num_rids);
2804 ndr_print_uint32(ndr, "unknown1", r->unknown1);
2805 ndr_print_uint32(ndr, "unknown2", r->unknown2);
2806 ndr_print_uint32(ndr, "unknown3", r->unknown3);
2807 ndr_print_uint32(ndr, "unknown4", r->unknown4);
2808 ndr->depth--;
2811 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
2813 if (ndr_flags & NDR_SCALARS) {
2814 NDR_CHECK(ndr_push_align(ndr, 4));
2815 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2818 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2819 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2820 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2821 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2822 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2828 if (ndr_flags & NDR_BUFFERS) {
2829 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2830 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2831 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2832 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2833 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2834 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2836 return NDR_ERR_SUCCESS;
2839 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
2841 if (ndr_flags & NDR_SCALARS) {
2842 NDR_CHECK(ndr_pull_align(ndr, 4));
2843 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2844 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2845 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2846 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2847 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2848 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2849 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2850 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2851 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2852 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2854 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2856 if (ndr_flags & NDR_BUFFERS) {
2857 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2858 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2859 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2860 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2861 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2862 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2864 return NDR_ERR_SUCCESS;
2867 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
2869 ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
2870 ndr->depth++;
2871 ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
2872 ndr_print_uint32(ndr, "rid", r->rid);
2873 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2874 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2875 ndr_print_lsa_String(ndr, "description", &r->description);
2876 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2877 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2878 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2879 ndr_print_uint32(ndr, "unknown5", r->unknown5);
2880 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2881 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2882 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2883 ndr->depth--;
2886 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)
2888 if (ndr_flags & NDR_SCALARS) {
2889 NDR_CHECK(ndr_push_align(ndr, 4));
2890 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2893 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2896 if (ndr_flags & NDR_BUFFERS) {
2897 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2899 return NDR_ERR_SUCCESS;
2902 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
2904 if (ndr_flags & NDR_SCALARS) {
2905 NDR_CHECK(ndr_pull_align(ndr, 4));
2906 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2908 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2910 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2912 if (ndr_flags & NDR_BUFFERS) {
2913 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2915 return NDR_ERR_SUCCESS;
2918 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
2920 ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
2921 ndr->depth++;
2922 ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
2923 ndr_print_uint32(ndr, "unknown1", r->unknown1);
2924 ndr_print_uint32(ndr, "unknown2", r->unknown2);
2925 ndr_print_uint32(ndr, "unknown3", r->unknown3);
2926 ndr_print_uint32(ndr, "unknown4", r->unknown4);
2927 ndr->depth--;
2930 static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
2932 if (ndr_flags & NDR_SCALARS) {
2933 NDR_CHECK(ndr_push_align(ndr, 4));
2934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
2935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
2936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
2937 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
2938 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
2939 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
2941 if (ndr_flags & NDR_BUFFERS) {
2943 return NDR_ERR_SUCCESS;
2946 static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
2948 if (ndr_flags & NDR_SCALARS) {
2949 NDR_CHECK(ndr_pull_align(ndr, 4));
2950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
2951 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
2952 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
2953 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
2954 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
2955 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
2957 if (ndr_flags & NDR_BUFFERS) {
2959 return NDR_ERR_SUCCESS;
2962 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
2964 ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
2965 ndr->depth++;
2966 ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
2967 ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
2968 ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
2969 ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
2970 ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
2971 ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
2972 ndr->depth--;
2975 static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
2977 uint32_t cntr_eventauditoptions_1;
2978 if (ndr_flags & NDR_SCALARS) {
2979 NDR_CHECK(ndr_push_align(ndr, 4));
2980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
2981 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
2982 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
2983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
2984 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
2985 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
2986 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
2987 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
2988 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2989 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
2990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2991 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2992 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2993 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2994 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2995 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3001 if (ndr_flags & NDR_BUFFERS) {
3002 if (r->eventauditoptions) {
3003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
3004 for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
3008 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3009 if (r->sid) {
3010 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3012 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3013 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3014 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3015 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3016 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3018 return NDR_ERR_SUCCESS;
3021 static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
3023 uint32_t _ptr_eventauditoptions;
3024 uint32_t cntr_eventauditoptions_1;
3025 TALLOC_CTX *_mem_save_eventauditoptions_0;
3026 TALLOC_CTX *_mem_save_eventauditoptions_1;
3027 uint32_t _ptr_sid;
3028 TALLOC_CTX *_mem_save_sid_0;
3029 if (ndr_flags & NDR_SCALARS) {
3030 NDR_CHECK(ndr_pull_align(ndr, 4));
3031 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3032 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3033 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3034 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3035 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3036 if (_ptr_eventauditoptions) {
3037 NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3038 } else {
3039 r->eventauditoptions = NULL;
3041 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3042 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3043 if (_ptr_sid) {
3044 NDR_PULL_ALLOC(ndr, r->sid);
3045 } else {
3046 r->sid = NULL;
3048 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3049 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3050 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3051 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3052 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3053 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3054 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3055 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3056 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3057 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3058 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3059 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3060 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3062 if (ndr_flags & NDR_BUFFERS) {
3063 if (r->eventauditoptions) {
3064 _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3065 NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3066 NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3067 NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3068 _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3069 NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3070 for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3071 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3073 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3076 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3077 if (r->sid) {
3078 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3079 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3080 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3083 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3084 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3085 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3086 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3087 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3088 if (r->eventauditoptions) {
3089 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3092 return NDR_ERR_SUCCESS;
3095 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
3097 uint32_t cntr_eventauditoptions_1;
3098 ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3099 ndr->depth++;
3100 ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3101 ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3102 ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3103 ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3104 ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3105 ndr->depth++;
3106 if (r->eventauditoptions) {
3107 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", (int)r->maxauditeventcount + 1);
3108 ndr->depth++;
3109 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3110 char *idx_1=NULL;
3111 if (asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1) != -1) {
3112 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3113 free(idx_1);
3116 ndr->depth--;
3118 ndr->depth--;
3119 ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3120 ndr_print_ptr(ndr, "sid", r->sid);
3121 ndr->depth++;
3122 if (r->sid) {
3123 ndr_print_dom_sid2(ndr, "sid", r->sid);
3125 ndr->depth--;
3126 ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3127 ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3128 ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3129 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3130 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3131 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3132 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3133 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3134 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3135 ndr_print_uint32(ndr, "unknown5", r->unknown5);
3136 ndr_print_uint32(ndr, "unknown6", r->unknown6);
3137 ndr_print_uint32(ndr, "unknown7", r->unknown7);
3138 ndr_print_uint32(ndr, "unknown8", r->unknown8);
3139 ndr->depth--;
3142 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)
3144 uint32_t cntr_controller_names_1;
3145 if (ndr_flags & NDR_SCALARS) {
3146 NDR_CHECK(ndr_push_align(ndr, 4));
3147 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3149 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3151 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3152 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3153 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3154 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3155 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3161 if (ndr_flags & NDR_BUFFERS) {
3162 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3163 if (r->controller_names) {
3164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3165 for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3166 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3168 for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3169 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3172 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3173 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3174 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3175 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3176 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3178 return NDR_ERR_SUCCESS;
3181 static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
3183 uint32_t _ptr_controller_names;
3184 uint32_t cntr_controller_names_1;
3185 TALLOC_CTX *_mem_save_controller_names_0;
3186 TALLOC_CTX *_mem_save_controller_names_1;
3187 if (ndr_flags & NDR_SCALARS) {
3188 NDR_CHECK(ndr_pull_align(ndr, 4));
3189 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3190 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3191 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3192 if (_ptr_controller_names) {
3193 NDR_PULL_ALLOC(ndr, r->controller_names);
3194 } else {
3195 r->controller_names = NULL;
3197 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3198 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3199 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3200 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3201 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3202 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3203 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3204 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3205 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3208 if (ndr_flags & NDR_BUFFERS) {
3209 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3210 if (r->controller_names) {
3211 _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3212 NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3213 NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3214 NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3215 _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3216 NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3217 for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3218 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3220 for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3221 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3226 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3227 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3228 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3229 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3230 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3231 if (r->controller_names) {
3232 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3235 return NDR_ERR_SUCCESS;
3238 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3240 uint32_t cntr_controller_names_1;
3241 ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3242 ndr->depth++;
3243 ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3244 ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3245 ndr_print_ptr(ndr, "controller_names", r->controller_names);
3246 ndr->depth++;
3247 if (r->controller_names) {
3248 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", (int)r->num_controllers);
3249 ndr->depth++;
3250 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3251 char *idx_1=NULL;
3252 if (asprintf(&idx_1, "[%d]", cntr_controller_names_1) != -1) {
3253 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3254 free(idx_1);
3257 ndr->depth--;
3259 ndr->depth--;
3260 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3261 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3262 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3263 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3264 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3265 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3266 ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3267 ndr_print_uint32(ndr, "unknown6", r->unknown6);
3268 ndr_print_uint32(ndr, "unknown7", r->unknown7);
3269 ndr_print_uint32(ndr, "unknown8", r->unknown8);
3270 ndr->depth--;
3273 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)
3275 if (ndr_flags & NDR_SCALARS) {
3276 NDR_CHECK(ndr_push_align(ndr, 2));
3277 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3279 if (ndr_flags & NDR_BUFFERS) {
3281 return NDR_ERR_SUCCESS;
3284 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
3286 if (ndr_flags & NDR_SCALARS) {
3287 NDR_CHECK(ndr_pull_align(ndr, 2));
3288 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3290 if (ndr_flags & NDR_BUFFERS) {
3292 return NDR_ERR_SUCCESS;
3295 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
3297 ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3298 ndr->depth++;
3299 ndr_print_uint16(ndr, "unknown", r->unknown);
3300 ndr->depth--;
3303 static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
3305 uint32_t cntr_privilege_attrib_1;
3306 uint32_t cntr_privilege_name_1;
3307 if (ndr_flags & NDR_SCALARS) {
3308 NDR_CHECK(ndr_push_align(ndr, 4));
3309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3311 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3312 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3313 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3316 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3317 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3318 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3319 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3320 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3326 if (ndr_flags & NDR_BUFFERS) {
3327 if (r->privilege_attrib) {
3328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3329 for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3333 if (r->privilege_name) {
3334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3335 for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3336 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3338 for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3339 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3342 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3343 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3344 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3345 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3346 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3348 return NDR_ERR_SUCCESS;
3351 static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
3353 uint32_t _ptr_privilege_attrib;
3354 uint32_t cntr_privilege_attrib_1;
3355 TALLOC_CTX *_mem_save_privilege_attrib_0;
3356 TALLOC_CTX *_mem_save_privilege_attrib_1;
3357 uint32_t _ptr_privilege_name;
3358 uint32_t cntr_privilege_name_1;
3359 TALLOC_CTX *_mem_save_privilege_name_0;
3360 TALLOC_CTX *_mem_save_privilege_name_1;
3361 if (ndr_flags & NDR_SCALARS) {
3362 NDR_CHECK(ndr_pull_align(ndr, 4));
3363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3366 if (_ptr_privilege_attrib) {
3367 NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3368 } else {
3369 r->privilege_attrib = NULL;
3371 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3372 if (_ptr_privilege_name) {
3373 NDR_PULL_ALLOC(ndr, r->privilege_name);
3374 } else {
3375 r->privilege_name = NULL;
3377 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3379 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3380 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3381 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3382 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3383 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3384 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3386 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3387 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3388 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3390 if (ndr_flags & NDR_BUFFERS) {
3391 if (r->privilege_attrib) {
3392 _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3393 NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3394 NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3395 NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3396 _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3397 NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3398 for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3399 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3404 if (r->privilege_name) {
3405 _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3406 NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3407 NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3408 NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3409 _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3410 NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3411 for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3412 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3414 for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3415 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3420 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3421 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3422 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3423 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3424 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3425 if (r->privilege_attrib) {
3426 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3428 if (r->privilege_name) {
3429 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3432 return NDR_ERR_SUCCESS;
3435 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
3437 uint32_t cntr_privilege_attrib_1;
3438 uint32_t cntr_privilege_name_1;
3439 ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3440 ndr->depth++;
3441 ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3442 ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3443 ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3444 ndr->depth++;
3445 if (r->privilege_attrib) {
3446 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", (int)r->privilege_entries);
3447 ndr->depth++;
3448 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3449 char *idx_1=NULL;
3450 if (asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1) != -1) {
3451 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3452 free(idx_1);
3455 ndr->depth--;
3457 ndr->depth--;
3458 ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3459 ndr->depth++;
3460 if (r->privilege_name) {
3461 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", (int)r->privilege_entries);
3462 ndr->depth++;
3463 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3464 char *idx_1=NULL;
3465 if (asprintf(&idx_1, "[%d]", cntr_privilege_name_1) != -1) {
3466 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3467 free(idx_1);
3470 ndr->depth--;
3472 ndr->depth--;
3473 ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3474 ndr_print_uint32(ndr, "system_flags", r->system_flags);
3475 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3476 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3477 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3478 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3479 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3480 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3481 ndr_print_uint32(ndr, "unknown5", r->unknown5);
3482 ndr_print_uint32(ndr, "unknown6", r->unknown6);
3483 ndr_print_uint32(ndr, "unknown7", r->unknown7);
3484 ndr_print_uint32(ndr, "unknown8", r->unknown8);
3485 ndr->depth--;
3488 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)
3490 if (ndr_flags & NDR_SCALARS) {
3491 NDR_CHECK(ndr_push_align(ndr, 2));
3492 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3494 if (ndr_flags & NDR_BUFFERS) {
3496 return NDR_ERR_SUCCESS;
3499 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
3501 if (ndr_flags & NDR_SCALARS) {
3502 NDR_CHECK(ndr_pull_align(ndr, 2));
3503 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3505 if (ndr_flags & NDR_BUFFERS) {
3507 return NDR_ERR_SUCCESS;
3510 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
3512 ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3513 ndr->depth++;
3514 ndr_print_uint16(ndr, "unknown", r->unknown);
3515 ndr->depth--;
3518 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)
3520 if (ndr_flags & NDR_SCALARS) {
3521 NDR_CHECK(ndr_push_align(ndr, 2));
3522 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3524 if (ndr_flags & NDR_BUFFERS) {
3526 return NDR_ERR_SUCCESS;
3529 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
3531 if (ndr_flags & NDR_SCALARS) {
3532 NDR_CHECK(ndr_pull_align(ndr, 2));
3533 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3535 if (ndr_flags & NDR_BUFFERS) {
3537 return NDR_ERR_SUCCESS;
3540 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
3542 ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3543 ndr->depth++;
3544 ndr_print_uint16(ndr, "unknown", r->unknown);
3545 ndr->depth--;
3548 static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
3550 if (ndr_flags & NDR_SCALARS) {
3551 NDR_CHECK(ndr_push_align(ndr, 4));
3552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3554 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3556 if (ndr_flags & NDR_BUFFERS) {
3557 if (r->cipher_data) {
3558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3561 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3564 return NDR_ERR_SUCCESS;
3567 static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
3569 uint32_t _ptr_cipher_data;
3570 TALLOC_CTX *_mem_save_cipher_data_0;
3571 if (ndr_flags & NDR_SCALARS) {
3572 NDR_CHECK(ndr_pull_align(ndr, 4));
3573 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3574 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3576 if (_ptr_cipher_data) {
3577 NDR_PULL_ALLOC(ndr, r->cipher_data);
3578 } else {
3579 r->cipher_data = NULL;
3582 if (ndr_flags & NDR_BUFFERS) {
3583 if (r->cipher_data) {
3584 _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3585 NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3586 NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3587 NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3588 if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3589 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));
3591 NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3592 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3595 if (r->cipher_data) {
3596 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3598 if (r->cipher_data) {
3599 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3602 return NDR_ERR_SUCCESS;
3605 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
3607 ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3608 ndr->depth++;
3609 ndr_print_uint32(ndr, "len", r->len);
3610 ndr_print_uint32(ndr, "maxlen", r->maxlen);
3611 ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3612 ndr->depth++;
3613 if (r->cipher_data) {
3614 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3616 ndr->depth--;
3617 ndr->depth--;
3620 static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
3622 if (ndr_flags & NDR_SCALARS) {
3623 NDR_CHECK(ndr_push_align(ndr, 4));
3624 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3625 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3626 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3627 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3629 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3630 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3631 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3632 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3633 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3639 if (ndr_flags & NDR_BUFFERS) {
3640 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3641 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3642 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3643 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3644 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3645 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3646 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3648 return NDR_ERR_SUCCESS;
3651 static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
3653 if (ndr_flags & NDR_SCALARS) {
3654 NDR_CHECK(ndr_pull_align(ndr, 4));
3655 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3656 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3657 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3658 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3659 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3660 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3661 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3662 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3663 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3664 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3666 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3667 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3668 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3670 if (ndr_flags & NDR_BUFFERS) {
3671 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3672 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3673 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3674 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3675 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3676 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3677 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3679 return NDR_ERR_SUCCESS;
3682 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
3684 ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3685 ndr->depth++;
3686 ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3687 ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3688 ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3689 ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3690 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3691 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3692 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3693 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3694 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3695 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3696 ndr_print_uint32(ndr, "unknown5", r->unknown5);
3697 ndr_print_uint32(ndr, "unknown6", r->unknown6);
3698 ndr_print_uint32(ndr, "unknown7", r->unknown7);
3699 ndr_print_uint32(ndr, "unknown8", r->unknown8);
3700 ndr->depth--;
3703 static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
3705 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3706 return NDR_ERR_SUCCESS;
3709 static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
3711 uint16_t v;
3712 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3713 *r = v;
3714 return NDR_ERR_SUCCESS;
3717 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
3719 const char *val = NULL;
3721 switch (r) {
3722 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3723 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3724 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3725 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3726 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3727 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3728 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3729 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3730 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3731 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3732 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3733 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3734 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3735 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3736 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3737 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3738 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3739 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3740 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3741 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3742 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3743 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3745 ndr_print_enum(ndr, name, "ENUM", val, r);
3748 static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
3750 if (ndr_flags & NDR_SCALARS) {
3751 int level = ndr_push_get_switch_value(ndr, r);
3752 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3753 switch (level) {
3754 case NETR_DELTA_DOMAIN: {
3755 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3756 break; }
3758 case NETR_DELTA_GROUP: {
3759 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3760 break; }
3762 case NETR_DELTA_DELETE_GROUP: {
3763 break; }
3765 case NETR_DELTA_RENAME_GROUP: {
3766 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
3767 break; }
3769 case NETR_DELTA_USER: {
3770 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
3771 break; }
3773 case NETR_DELTA_DELETE_USER: {
3774 break; }
3776 case NETR_DELTA_RENAME_USER: {
3777 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
3778 break; }
3780 case NETR_DELTA_GROUP_MEMBER: {
3781 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
3782 break; }
3784 case NETR_DELTA_ALIAS: {
3785 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
3786 break; }
3788 case NETR_DELTA_DELETE_ALIAS: {
3789 break; }
3791 case NETR_DELTA_RENAME_ALIAS: {
3792 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
3793 break; }
3795 case NETR_DELTA_ALIAS_MEMBER: {
3796 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
3797 break; }
3799 case NETR_DELTA_POLICY: {
3800 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
3801 break; }
3803 case NETR_DELTA_TRUSTED_DOMAIN: {
3804 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
3805 break; }
3807 case NETR_DELTA_DELETE_TRUST: {
3808 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
3809 break; }
3811 case NETR_DELTA_ACCOUNT: {
3812 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
3813 break; }
3815 case NETR_DELTA_DELETE_ACCOUNT: {
3816 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
3817 break; }
3819 case NETR_DELTA_SECRET: {
3820 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
3821 break; }
3823 case NETR_DELTA_DELETE_SECRET: {
3824 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
3825 break; }
3827 case NETR_DELTA_DELETE_GROUP2: {
3828 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
3829 break; }
3831 case NETR_DELTA_DELETE_USER2: {
3832 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
3833 break; }
3835 case NETR_DELTA_MODIFY_COUNT: {
3836 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
3837 break; }
3839 default:
3840 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3843 if (ndr_flags & NDR_BUFFERS) {
3844 int level = ndr_push_get_switch_value(ndr, r);
3845 switch (level) {
3846 case NETR_DELTA_DOMAIN:
3847 if (r->domain) {
3848 NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
3850 break;
3852 case NETR_DELTA_GROUP:
3853 if (r->group) {
3854 NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
3856 break;
3858 case NETR_DELTA_DELETE_GROUP:
3859 break;
3861 case NETR_DELTA_RENAME_GROUP:
3862 if (r->rename_group) {
3863 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
3865 break;
3867 case NETR_DELTA_USER:
3868 if (r->user) {
3869 NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
3871 break;
3873 case NETR_DELTA_DELETE_USER:
3874 break;
3876 case NETR_DELTA_RENAME_USER:
3877 if (r->rename_user) {
3878 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
3880 break;
3882 case NETR_DELTA_GROUP_MEMBER:
3883 if (r->group_member) {
3884 NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
3886 break;
3888 case NETR_DELTA_ALIAS:
3889 if (r->alias) {
3890 NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
3892 break;
3894 case NETR_DELTA_DELETE_ALIAS:
3895 break;
3897 case NETR_DELTA_RENAME_ALIAS:
3898 if (r->rename_alias) {
3899 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
3901 break;
3903 case NETR_DELTA_ALIAS_MEMBER:
3904 if (r->alias_member) {
3905 NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
3907 break;
3909 case NETR_DELTA_POLICY:
3910 if (r->policy) {
3911 NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
3913 break;
3915 case NETR_DELTA_TRUSTED_DOMAIN:
3916 if (r->trusted_domain) {
3917 NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
3919 break;
3921 case NETR_DELTA_DELETE_TRUST:
3922 break;
3924 case NETR_DELTA_ACCOUNT:
3925 if (r->account) {
3926 NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
3928 break;
3930 case NETR_DELTA_DELETE_ACCOUNT:
3931 break;
3933 case NETR_DELTA_SECRET:
3934 if (r->secret) {
3935 NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
3937 break;
3939 case NETR_DELTA_DELETE_SECRET:
3940 break;
3942 case NETR_DELTA_DELETE_GROUP2:
3943 if (r->delete_group) {
3944 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
3946 break;
3948 case NETR_DELTA_DELETE_USER2:
3949 if (r->delete_user) {
3950 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
3952 break;
3954 case NETR_DELTA_MODIFY_COUNT:
3955 if (r->modified_count) {
3956 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
3958 break;
3960 default:
3961 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3964 return NDR_ERR_SUCCESS;
3967 static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
3969 int level;
3970 uint16_t _level;
3971 TALLOC_CTX *_mem_save_domain_0;
3972 TALLOC_CTX *_mem_save_group_0;
3973 TALLOC_CTX *_mem_save_rename_group_0;
3974 TALLOC_CTX *_mem_save_user_0;
3975 TALLOC_CTX *_mem_save_rename_user_0;
3976 TALLOC_CTX *_mem_save_group_member_0;
3977 TALLOC_CTX *_mem_save_alias_0;
3978 TALLOC_CTX *_mem_save_rename_alias_0;
3979 TALLOC_CTX *_mem_save_alias_member_0;
3980 TALLOC_CTX *_mem_save_policy_0;
3981 TALLOC_CTX *_mem_save_trusted_domain_0;
3982 TALLOC_CTX *_mem_save_account_0;
3983 TALLOC_CTX *_mem_save_secret_0;
3984 TALLOC_CTX *_mem_save_delete_group_0;
3985 TALLOC_CTX *_mem_save_delete_user_0;
3986 TALLOC_CTX *_mem_save_modified_count_0;
3987 level = ndr_pull_get_switch_value(ndr, r);
3988 if (ndr_flags & NDR_SCALARS) {
3989 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
3990 if (_level != level) {
3991 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
3993 switch (level) {
3994 case NETR_DELTA_DOMAIN: {
3995 uint32_t _ptr_domain;
3996 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
3997 if (_ptr_domain) {
3998 NDR_PULL_ALLOC(ndr, r->domain);
3999 } else {
4000 r->domain = NULL;
4002 break; }
4004 case NETR_DELTA_GROUP: {
4005 uint32_t _ptr_group;
4006 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
4007 if (_ptr_group) {
4008 NDR_PULL_ALLOC(ndr, r->group);
4009 } else {
4010 r->group = NULL;
4012 break; }
4014 case NETR_DELTA_DELETE_GROUP: {
4015 break; }
4017 case NETR_DELTA_RENAME_GROUP: {
4018 uint32_t _ptr_rename_group;
4019 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4020 if (_ptr_rename_group) {
4021 NDR_PULL_ALLOC(ndr, r->rename_group);
4022 } else {
4023 r->rename_group = NULL;
4025 break; }
4027 case NETR_DELTA_USER: {
4028 uint32_t _ptr_user;
4029 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4030 if (_ptr_user) {
4031 NDR_PULL_ALLOC(ndr, r->user);
4032 } else {
4033 r->user = NULL;
4035 break; }
4037 case NETR_DELTA_DELETE_USER: {
4038 break; }
4040 case NETR_DELTA_RENAME_USER: {
4041 uint32_t _ptr_rename_user;
4042 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4043 if (_ptr_rename_user) {
4044 NDR_PULL_ALLOC(ndr, r->rename_user);
4045 } else {
4046 r->rename_user = NULL;
4048 break; }
4050 case NETR_DELTA_GROUP_MEMBER: {
4051 uint32_t _ptr_group_member;
4052 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4053 if (_ptr_group_member) {
4054 NDR_PULL_ALLOC(ndr, r->group_member);
4055 } else {
4056 r->group_member = NULL;
4058 break; }
4060 case NETR_DELTA_ALIAS: {
4061 uint32_t _ptr_alias;
4062 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4063 if (_ptr_alias) {
4064 NDR_PULL_ALLOC(ndr, r->alias);
4065 } else {
4066 r->alias = NULL;
4068 break; }
4070 case NETR_DELTA_DELETE_ALIAS: {
4071 break; }
4073 case NETR_DELTA_RENAME_ALIAS: {
4074 uint32_t _ptr_rename_alias;
4075 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4076 if (_ptr_rename_alias) {
4077 NDR_PULL_ALLOC(ndr, r->rename_alias);
4078 } else {
4079 r->rename_alias = NULL;
4081 break; }
4083 case NETR_DELTA_ALIAS_MEMBER: {
4084 uint32_t _ptr_alias_member;
4085 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4086 if (_ptr_alias_member) {
4087 NDR_PULL_ALLOC(ndr, r->alias_member);
4088 } else {
4089 r->alias_member = NULL;
4091 break; }
4093 case NETR_DELTA_POLICY: {
4094 uint32_t _ptr_policy;
4095 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4096 if (_ptr_policy) {
4097 NDR_PULL_ALLOC(ndr, r->policy);
4098 } else {
4099 r->policy = NULL;
4101 break; }
4103 case NETR_DELTA_TRUSTED_DOMAIN: {
4104 uint32_t _ptr_trusted_domain;
4105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4106 if (_ptr_trusted_domain) {
4107 NDR_PULL_ALLOC(ndr, r->trusted_domain);
4108 } else {
4109 r->trusted_domain = NULL;
4111 break; }
4113 case NETR_DELTA_DELETE_TRUST: {
4114 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4115 break; }
4117 case NETR_DELTA_ACCOUNT: {
4118 uint32_t _ptr_account;
4119 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4120 if (_ptr_account) {
4121 NDR_PULL_ALLOC(ndr, r->account);
4122 } else {
4123 r->account = NULL;
4125 break; }
4127 case NETR_DELTA_DELETE_ACCOUNT: {
4128 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4129 break; }
4131 case NETR_DELTA_SECRET: {
4132 uint32_t _ptr_secret;
4133 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4134 if (_ptr_secret) {
4135 NDR_PULL_ALLOC(ndr, r->secret);
4136 } else {
4137 r->secret = NULL;
4139 break; }
4141 case NETR_DELTA_DELETE_SECRET: {
4142 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4143 break; }
4145 case NETR_DELTA_DELETE_GROUP2: {
4146 uint32_t _ptr_delete_group;
4147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4148 if (_ptr_delete_group) {
4149 NDR_PULL_ALLOC(ndr, r->delete_group);
4150 } else {
4151 r->delete_group = NULL;
4153 break; }
4155 case NETR_DELTA_DELETE_USER2: {
4156 uint32_t _ptr_delete_user;
4157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4158 if (_ptr_delete_user) {
4159 NDR_PULL_ALLOC(ndr, r->delete_user);
4160 } else {
4161 r->delete_user = NULL;
4163 break; }
4165 case NETR_DELTA_MODIFY_COUNT: {
4166 uint32_t _ptr_modified_count;
4167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4168 if (_ptr_modified_count) {
4169 NDR_PULL_ALLOC(ndr, r->modified_count);
4170 } else {
4171 r->modified_count = NULL;
4173 break; }
4175 default:
4176 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4179 if (ndr_flags & NDR_BUFFERS) {
4180 switch (level) {
4181 case NETR_DELTA_DOMAIN:
4182 if (r->domain) {
4183 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4184 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4185 NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4188 break;
4190 case NETR_DELTA_GROUP:
4191 if (r->group) {
4192 _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4193 NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4194 NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4197 break;
4199 case NETR_DELTA_DELETE_GROUP:
4200 break;
4202 case NETR_DELTA_RENAME_GROUP:
4203 if (r->rename_group) {
4204 _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4205 NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4206 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4209 break;
4211 case NETR_DELTA_USER:
4212 if (r->user) {
4213 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4214 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4215 NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4218 break;
4220 case NETR_DELTA_DELETE_USER:
4221 break;
4223 case NETR_DELTA_RENAME_USER:
4224 if (r->rename_user) {
4225 _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4226 NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4227 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4230 break;
4232 case NETR_DELTA_GROUP_MEMBER:
4233 if (r->group_member) {
4234 _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4235 NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4236 NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4239 break;
4241 case NETR_DELTA_ALIAS:
4242 if (r->alias) {
4243 _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4244 NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4245 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4248 break;
4250 case NETR_DELTA_DELETE_ALIAS:
4251 break;
4253 case NETR_DELTA_RENAME_ALIAS:
4254 if (r->rename_alias) {
4255 _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4256 NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4257 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4258 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4260 break;
4262 case NETR_DELTA_ALIAS_MEMBER:
4263 if (r->alias_member) {
4264 _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4265 NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4266 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4269 break;
4271 case NETR_DELTA_POLICY:
4272 if (r->policy) {
4273 _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4274 NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4275 NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4278 break;
4280 case NETR_DELTA_TRUSTED_DOMAIN:
4281 if (r->trusted_domain) {
4282 _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4283 NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4284 NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4285 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4287 break;
4289 case NETR_DELTA_DELETE_TRUST:
4290 break;
4292 case NETR_DELTA_ACCOUNT:
4293 if (r->account) {
4294 _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4295 NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4296 NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4299 break;
4301 case NETR_DELTA_DELETE_ACCOUNT:
4302 break;
4304 case NETR_DELTA_SECRET:
4305 if (r->secret) {
4306 _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4307 NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4308 NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4311 break;
4313 case NETR_DELTA_DELETE_SECRET:
4314 break;
4316 case NETR_DELTA_DELETE_GROUP2:
4317 if (r->delete_group) {
4318 _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4319 NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4320 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4323 break;
4325 case NETR_DELTA_DELETE_USER2:
4326 if (r->delete_user) {
4327 _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4328 NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4329 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4332 break;
4334 case NETR_DELTA_MODIFY_COUNT:
4335 if (r->modified_count) {
4336 _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4337 NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4338 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4341 break;
4343 default:
4344 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4347 return NDR_ERR_SUCCESS;
4350 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
4352 int level;
4353 level = ndr_print_get_switch_value(ndr, r);
4354 ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4355 switch (level) {
4356 case NETR_DELTA_DOMAIN:
4357 ndr_print_ptr(ndr, "domain", r->domain);
4358 ndr->depth++;
4359 if (r->domain) {
4360 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4362 ndr->depth--;
4363 break;
4365 case NETR_DELTA_GROUP:
4366 ndr_print_ptr(ndr, "group", r->group);
4367 ndr->depth++;
4368 if (r->group) {
4369 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4371 ndr->depth--;
4372 break;
4374 case NETR_DELTA_DELETE_GROUP:
4375 break;
4377 case NETR_DELTA_RENAME_GROUP:
4378 ndr_print_ptr(ndr, "rename_group", r->rename_group);
4379 ndr->depth++;
4380 if (r->rename_group) {
4381 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4383 ndr->depth--;
4384 break;
4386 case NETR_DELTA_USER:
4387 ndr_print_ptr(ndr, "user", r->user);
4388 ndr->depth++;
4389 if (r->user) {
4390 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4392 ndr->depth--;
4393 break;
4395 case NETR_DELTA_DELETE_USER:
4396 break;
4398 case NETR_DELTA_RENAME_USER:
4399 ndr_print_ptr(ndr, "rename_user", r->rename_user);
4400 ndr->depth++;
4401 if (r->rename_user) {
4402 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4404 ndr->depth--;
4405 break;
4407 case NETR_DELTA_GROUP_MEMBER:
4408 ndr_print_ptr(ndr, "group_member", r->group_member);
4409 ndr->depth++;
4410 if (r->group_member) {
4411 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4413 ndr->depth--;
4414 break;
4416 case NETR_DELTA_ALIAS:
4417 ndr_print_ptr(ndr, "alias", r->alias);
4418 ndr->depth++;
4419 if (r->alias) {
4420 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4422 ndr->depth--;
4423 break;
4425 case NETR_DELTA_DELETE_ALIAS:
4426 break;
4428 case NETR_DELTA_RENAME_ALIAS:
4429 ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4430 ndr->depth++;
4431 if (r->rename_alias) {
4432 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4434 ndr->depth--;
4435 break;
4437 case NETR_DELTA_ALIAS_MEMBER:
4438 ndr_print_ptr(ndr, "alias_member", r->alias_member);
4439 ndr->depth++;
4440 if (r->alias_member) {
4441 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4443 ndr->depth--;
4444 break;
4446 case NETR_DELTA_POLICY:
4447 ndr_print_ptr(ndr, "policy", r->policy);
4448 ndr->depth++;
4449 if (r->policy) {
4450 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4452 ndr->depth--;
4453 break;
4455 case NETR_DELTA_TRUSTED_DOMAIN:
4456 ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4457 ndr->depth++;
4458 if (r->trusted_domain) {
4459 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4461 ndr->depth--;
4462 break;
4464 case NETR_DELTA_DELETE_TRUST:
4465 ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4466 break;
4468 case NETR_DELTA_ACCOUNT:
4469 ndr_print_ptr(ndr, "account", r->account);
4470 ndr->depth++;
4471 if (r->account) {
4472 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4474 ndr->depth--;
4475 break;
4477 case NETR_DELTA_DELETE_ACCOUNT:
4478 ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4479 break;
4481 case NETR_DELTA_SECRET:
4482 ndr_print_ptr(ndr, "secret", r->secret);
4483 ndr->depth++;
4484 if (r->secret) {
4485 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4487 ndr->depth--;
4488 break;
4490 case NETR_DELTA_DELETE_SECRET:
4491 ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4492 break;
4494 case NETR_DELTA_DELETE_GROUP2:
4495 ndr_print_ptr(ndr, "delete_group", r->delete_group);
4496 ndr->depth++;
4497 if (r->delete_group) {
4498 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4500 ndr->depth--;
4501 break;
4503 case NETR_DELTA_DELETE_USER2:
4504 ndr_print_ptr(ndr, "delete_user", r->delete_user);
4505 ndr->depth++;
4506 if (r->delete_user) {
4507 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4509 ndr->depth--;
4510 break;
4512 case NETR_DELTA_MODIFY_COUNT:
4513 ndr_print_ptr(ndr, "modified_count", r->modified_count);
4514 ndr->depth++;
4515 if (r->modified_count) {
4516 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4518 ndr->depth--;
4519 break;
4521 default:
4522 ndr_print_bad_level(ndr, name, level);
4526 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)
4528 if (ndr_flags & NDR_SCALARS) {
4529 int level = ndr_push_get_switch_value(ndr, r);
4530 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4531 switch (level) {
4532 case NETR_DELTA_DOMAIN: {
4533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4534 break; }
4536 case NETR_DELTA_GROUP: {
4537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4538 break; }
4540 case NETR_DELTA_DELETE_GROUP: {
4541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4542 break; }
4544 case NETR_DELTA_RENAME_GROUP: {
4545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4546 break; }
4548 case NETR_DELTA_USER: {
4549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4550 break; }
4552 case NETR_DELTA_DELETE_USER: {
4553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4554 break; }
4556 case NETR_DELTA_RENAME_USER: {
4557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4558 break; }
4560 case NETR_DELTA_GROUP_MEMBER: {
4561 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4562 break; }
4564 case NETR_DELTA_ALIAS: {
4565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4566 break; }
4568 case NETR_DELTA_DELETE_ALIAS: {
4569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4570 break; }
4572 case NETR_DELTA_RENAME_ALIAS: {
4573 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4574 break; }
4576 case NETR_DELTA_ALIAS_MEMBER: {
4577 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4578 break; }
4580 case NETR_DELTA_POLICY: {
4581 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4582 break; }
4584 case NETR_DELTA_TRUSTED_DOMAIN: {
4585 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4586 break; }
4588 case NETR_DELTA_DELETE_TRUST: {
4589 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4590 break; }
4592 case NETR_DELTA_ACCOUNT: {
4593 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4594 break; }
4596 case NETR_DELTA_DELETE_ACCOUNT: {
4597 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4598 break; }
4600 case NETR_DELTA_SECRET: {
4601 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4602 break; }
4604 case NETR_DELTA_DELETE_SECRET: {
4605 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4606 break; }
4608 case NETR_DELTA_DELETE_GROUP2: {
4609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4610 break; }
4612 case NETR_DELTA_DELETE_USER2: {
4613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4614 break; }
4616 case NETR_DELTA_MODIFY_COUNT: {
4617 break; }
4619 default:
4620 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4623 if (ndr_flags & NDR_BUFFERS) {
4624 int level = ndr_push_get_switch_value(ndr, r);
4625 switch (level) {
4626 case NETR_DELTA_DOMAIN:
4627 break;
4629 case NETR_DELTA_GROUP:
4630 break;
4632 case NETR_DELTA_DELETE_GROUP:
4633 break;
4635 case NETR_DELTA_RENAME_GROUP:
4636 break;
4638 case NETR_DELTA_USER:
4639 break;
4641 case NETR_DELTA_DELETE_USER:
4642 break;
4644 case NETR_DELTA_RENAME_USER:
4645 break;
4647 case NETR_DELTA_GROUP_MEMBER:
4648 break;
4650 case NETR_DELTA_ALIAS:
4651 break;
4653 case NETR_DELTA_DELETE_ALIAS:
4654 break;
4656 case NETR_DELTA_RENAME_ALIAS:
4657 break;
4659 case NETR_DELTA_ALIAS_MEMBER:
4660 break;
4662 case NETR_DELTA_POLICY:
4663 if (r->sid) {
4664 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4666 break;
4668 case NETR_DELTA_TRUSTED_DOMAIN:
4669 if (r->sid) {
4670 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4672 break;
4674 case NETR_DELTA_DELETE_TRUST:
4675 if (r->sid) {
4676 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4678 break;
4680 case NETR_DELTA_ACCOUNT:
4681 if (r->sid) {
4682 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4684 break;
4686 case NETR_DELTA_DELETE_ACCOUNT:
4687 if (r->sid) {
4688 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4690 break;
4692 case NETR_DELTA_SECRET:
4693 if (r->name) {
4694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4697 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4699 break;
4701 case NETR_DELTA_DELETE_SECRET:
4702 if (r->name) {
4703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4706 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4708 break;
4710 case NETR_DELTA_DELETE_GROUP2:
4711 break;
4713 case NETR_DELTA_DELETE_USER2:
4714 break;
4716 case NETR_DELTA_MODIFY_COUNT:
4717 break;
4719 default:
4720 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4723 return NDR_ERR_SUCCESS;
4726 static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
4728 int level;
4729 uint16_t _level;
4730 TALLOC_CTX *_mem_save_sid_0;
4731 TALLOC_CTX *_mem_save_name_0;
4732 level = ndr_pull_get_switch_value(ndr, r);
4733 if (ndr_flags & NDR_SCALARS) {
4734 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4735 if (_level != level) {
4736 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4738 switch (level) {
4739 case NETR_DELTA_DOMAIN: {
4740 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4741 break; }
4743 case NETR_DELTA_GROUP: {
4744 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4745 break; }
4747 case NETR_DELTA_DELETE_GROUP: {
4748 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4749 break; }
4751 case NETR_DELTA_RENAME_GROUP: {
4752 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4753 break; }
4755 case NETR_DELTA_USER: {
4756 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4757 break; }
4759 case NETR_DELTA_DELETE_USER: {
4760 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4761 break; }
4763 case NETR_DELTA_RENAME_USER: {
4764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4765 break; }
4767 case NETR_DELTA_GROUP_MEMBER: {
4768 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4769 break; }
4771 case NETR_DELTA_ALIAS: {
4772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4773 break; }
4775 case NETR_DELTA_DELETE_ALIAS: {
4776 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4777 break; }
4779 case NETR_DELTA_RENAME_ALIAS: {
4780 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4781 break; }
4783 case NETR_DELTA_ALIAS_MEMBER: {
4784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4785 break; }
4787 case NETR_DELTA_POLICY: {
4788 uint32_t _ptr_sid;
4789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4790 if (_ptr_sid) {
4791 NDR_PULL_ALLOC(ndr, r->sid);
4792 } else {
4793 r->sid = NULL;
4795 break; }
4797 case NETR_DELTA_TRUSTED_DOMAIN: {
4798 uint32_t _ptr_sid;
4799 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4800 if (_ptr_sid) {
4801 NDR_PULL_ALLOC(ndr, r->sid);
4802 } else {
4803 r->sid = NULL;
4805 break; }
4807 case NETR_DELTA_DELETE_TRUST: {
4808 uint32_t _ptr_sid;
4809 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4810 if (_ptr_sid) {
4811 NDR_PULL_ALLOC(ndr, r->sid);
4812 } else {
4813 r->sid = NULL;
4815 break; }
4817 case NETR_DELTA_ACCOUNT: {
4818 uint32_t _ptr_sid;
4819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4820 if (_ptr_sid) {
4821 NDR_PULL_ALLOC(ndr, r->sid);
4822 } else {
4823 r->sid = NULL;
4825 break; }
4827 case NETR_DELTA_DELETE_ACCOUNT: {
4828 uint32_t _ptr_sid;
4829 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4830 if (_ptr_sid) {
4831 NDR_PULL_ALLOC(ndr, r->sid);
4832 } else {
4833 r->sid = NULL;
4835 break; }
4837 case NETR_DELTA_SECRET: {
4838 uint32_t _ptr_name;
4839 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4840 if (_ptr_name) {
4841 NDR_PULL_ALLOC(ndr, r->name);
4842 } else {
4843 r->name = NULL;
4845 break; }
4847 case NETR_DELTA_DELETE_SECRET: {
4848 uint32_t _ptr_name;
4849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4850 if (_ptr_name) {
4851 NDR_PULL_ALLOC(ndr, r->name);
4852 } else {
4853 r->name = NULL;
4855 break; }
4857 case NETR_DELTA_DELETE_GROUP2: {
4858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4859 break; }
4861 case NETR_DELTA_DELETE_USER2: {
4862 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4863 break; }
4865 case NETR_DELTA_MODIFY_COUNT: {
4866 break; }
4868 default:
4869 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4872 if (ndr_flags & NDR_BUFFERS) {
4873 switch (level) {
4874 case NETR_DELTA_DOMAIN:
4875 break;
4877 case NETR_DELTA_GROUP:
4878 break;
4880 case NETR_DELTA_DELETE_GROUP:
4881 break;
4883 case NETR_DELTA_RENAME_GROUP:
4884 break;
4886 case NETR_DELTA_USER:
4887 break;
4889 case NETR_DELTA_DELETE_USER:
4890 break;
4892 case NETR_DELTA_RENAME_USER:
4893 break;
4895 case NETR_DELTA_GROUP_MEMBER:
4896 break;
4898 case NETR_DELTA_ALIAS:
4899 break;
4901 case NETR_DELTA_DELETE_ALIAS:
4902 break;
4904 case NETR_DELTA_RENAME_ALIAS:
4905 break;
4907 case NETR_DELTA_ALIAS_MEMBER:
4908 break;
4910 case NETR_DELTA_POLICY:
4911 if (r->sid) {
4912 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4913 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4914 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4915 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4917 break;
4919 case NETR_DELTA_TRUSTED_DOMAIN:
4920 if (r->sid) {
4921 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4922 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4923 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4926 break;
4928 case NETR_DELTA_DELETE_TRUST:
4929 if (r->sid) {
4930 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4931 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4932 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4935 break;
4937 case NETR_DELTA_ACCOUNT:
4938 if (r->sid) {
4939 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4940 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4941 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4944 break;
4946 case NETR_DELTA_DELETE_ACCOUNT:
4947 if (r->sid) {
4948 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4949 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4950 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4953 break;
4955 case NETR_DELTA_SECRET:
4956 if (r->name) {
4957 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4958 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
4959 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
4960 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
4961 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
4962 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));
4964 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
4965 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
4966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
4968 break;
4970 case NETR_DELTA_DELETE_SECRET:
4971 if (r->name) {
4972 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4973 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
4974 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
4975 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
4976 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
4977 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));
4979 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
4980 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
4981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
4983 break;
4985 case NETR_DELTA_DELETE_GROUP2:
4986 break;
4988 case NETR_DELTA_DELETE_USER2:
4989 break;
4991 case NETR_DELTA_MODIFY_COUNT:
4992 break;
4994 default:
4995 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4998 return NDR_ERR_SUCCESS;
5001 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
5003 int level;
5004 level = ndr_print_get_switch_value(ndr, r);
5005 ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
5006 switch (level) {
5007 case NETR_DELTA_DOMAIN:
5008 ndr_print_uint32(ndr, "rid", r->rid);
5009 break;
5011 case NETR_DELTA_GROUP:
5012 ndr_print_uint32(ndr, "rid", r->rid);
5013 break;
5015 case NETR_DELTA_DELETE_GROUP:
5016 ndr_print_uint32(ndr, "rid", r->rid);
5017 break;
5019 case NETR_DELTA_RENAME_GROUP:
5020 ndr_print_uint32(ndr, "rid", r->rid);
5021 break;
5023 case NETR_DELTA_USER:
5024 ndr_print_uint32(ndr, "rid", r->rid);
5025 break;
5027 case NETR_DELTA_DELETE_USER:
5028 ndr_print_uint32(ndr, "rid", r->rid);
5029 break;
5031 case NETR_DELTA_RENAME_USER:
5032 ndr_print_uint32(ndr, "rid", r->rid);
5033 break;
5035 case NETR_DELTA_GROUP_MEMBER:
5036 ndr_print_uint32(ndr, "rid", r->rid);
5037 break;
5039 case NETR_DELTA_ALIAS:
5040 ndr_print_uint32(ndr, "rid", r->rid);
5041 break;
5043 case NETR_DELTA_DELETE_ALIAS:
5044 ndr_print_uint32(ndr, "rid", r->rid);
5045 break;
5047 case NETR_DELTA_RENAME_ALIAS:
5048 ndr_print_uint32(ndr, "rid", r->rid);
5049 break;
5051 case NETR_DELTA_ALIAS_MEMBER:
5052 ndr_print_uint32(ndr, "rid", r->rid);
5053 break;
5055 case NETR_DELTA_POLICY:
5056 ndr_print_ptr(ndr, "sid", r->sid);
5057 ndr->depth++;
5058 if (r->sid) {
5059 ndr_print_dom_sid2(ndr, "sid", r->sid);
5061 ndr->depth--;
5062 break;
5064 case NETR_DELTA_TRUSTED_DOMAIN:
5065 ndr_print_ptr(ndr, "sid", r->sid);
5066 ndr->depth++;
5067 if (r->sid) {
5068 ndr_print_dom_sid2(ndr, "sid", r->sid);
5070 ndr->depth--;
5071 break;
5073 case NETR_DELTA_DELETE_TRUST:
5074 ndr_print_ptr(ndr, "sid", r->sid);
5075 ndr->depth++;
5076 if (r->sid) {
5077 ndr_print_dom_sid2(ndr, "sid", r->sid);
5079 ndr->depth--;
5080 break;
5082 case NETR_DELTA_ACCOUNT:
5083 ndr_print_ptr(ndr, "sid", r->sid);
5084 ndr->depth++;
5085 if (r->sid) {
5086 ndr_print_dom_sid2(ndr, "sid", r->sid);
5088 ndr->depth--;
5089 break;
5091 case NETR_DELTA_DELETE_ACCOUNT:
5092 ndr_print_ptr(ndr, "sid", r->sid);
5093 ndr->depth++;
5094 if (r->sid) {
5095 ndr_print_dom_sid2(ndr, "sid", r->sid);
5097 ndr->depth--;
5098 break;
5100 case NETR_DELTA_SECRET:
5101 ndr_print_ptr(ndr, "name", r->name);
5102 ndr->depth++;
5103 if (r->name) {
5104 ndr_print_string(ndr, "name", r->name);
5106 ndr->depth--;
5107 break;
5109 case NETR_DELTA_DELETE_SECRET:
5110 ndr_print_ptr(ndr, "name", r->name);
5111 ndr->depth++;
5112 if (r->name) {
5113 ndr_print_string(ndr, "name", r->name);
5115 ndr->depth--;
5116 break;
5118 case NETR_DELTA_DELETE_GROUP2:
5119 ndr_print_uint32(ndr, "rid", r->rid);
5120 break;
5122 case NETR_DELTA_DELETE_USER2:
5123 ndr_print_uint32(ndr, "rid", r->rid);
5124 break;
5126 case NETR_DELTA_MODIFY_COUNT:
5127 break;
5129 default:
5130 ndr_print_bad_level(ndr, name, level);
5134 static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
5136 if (ndr_flags & NDR_SCALARS) {
5137 NDR_CHECK(ndr_push_align(ndr, 4));
5138 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5139 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5140 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5141 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5142 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5144 if (ndr_flags & NDR_BUFFERS) {
5145 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5146 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5148 return NDR_ERR_SUCCESS;
5151 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
5153 if (ndr_flags & NDR_SCALARS) {
5154 NDR_CHECK(ndr_pull_align(ndr, 4));
5155 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5156 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5157 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5158 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5159 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5161 if (ndr_flags & NDR_BUFFERS) {
5162 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5163 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5165 return NDR_ERR_SUCCESS;
5168 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
5170 ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5171 ndr->depth++;
5172 ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5173 ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5174 ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5175 ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5176 ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5177 ndr->depth--;
5180 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)
5182 uint32_t cntr_delta_enum_1;
5183 if (ndr_flags & NDR_SCALARS) {
5184 NDR_CHECK(ndr_push_align(ndr, 4));
5185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5188 if (ndr_flags & NDR_BUFFERS) {
5189 if (r->delta_enum) {
5190 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5191 for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5192 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5194 for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5195 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5199 return NDR_ERR_SUCCESS;
5202 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
5204 uint32_t _ptr_delta_enum;
5205 uint32_t cntr_delta_enum_1;
5206 TALLOC_CTX *_mem_save_delta_enum_0;
5207 TALLOC_CTX *_mem_save_delta_enum_1;
5208 if (ndr_flags & NDR_SCALARS) {
5209 NDR_CHECK(ndr_pull_align(ndr, 4));
5210 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5212 if (_ptr_delta_enum) {
5213 NDR_PULL_ALLOC(ndr, r->delta_enum);
5214 } else {
5215 r->delta_enum = NULL;
5218 if (ndr_flags & NDR_BUFFERS) {
5219 if (r->delta_enum) {
5220 _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5221 NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5222 NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5223 NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5224 _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5225 NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5226 for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5227 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5229 for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5230 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5232 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5233 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5235 if (r->delta_enum) {
5236 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5239 return NDR_ERR_SUCCESS;
5242 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
5244 uint32_t cntr_delta_enum_1;
5245 ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5246 ndr->depth++;
5247 ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5248 ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5249 ndr->depth++;
5250 if (r->delta_enum) {
5251 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", (int)r->num_deltas);
5252 ndr->depth++;
5253 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5254 char *idx_1=NULL;
5255 if (asprintf(&idx_1, "[%d]", cntr_delta_enum_1) != -1) {
5256 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5257 free(idx_1);
5260 ndr->depth--;
5262 ndr->depth--;
5263 ndr->depth--;
5266 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)
5269 uint32_t _flags_save_STRUCT = ndr->flags;
5270 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5271 if (ndr_flags & NDR_SCALARS) {
5272 NDR_CHECK(ndr_push_align(ndr, 4));
5273 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5277 if (ndr_flags & NDR_BUFFERS) {
5279 ndr->flags = _flags_save_STRUCT;
5281 return NDR_ERR_SUCCESS;
5284 static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
5287 uint32_t _flags_save_STRUCT = ndr->flags;
5288 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5289 if (ndr_flags & NDR_SCALARS) {
5290 NDR_CHECK(ndr_pull_align(ndr, 4));
5291 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5292 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5293 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5295 if (ndr_flags & NDR_BUFFERS) {
5297 ndr->flags = _flags_save_STRUCT;
5299 return NDR_ERR_SUCCESS;
5302 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
5304 ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5306 uint32_t _flags_save_STRUCT = ndr->flags;
5307 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5308 ndr->depth++;
5309 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5310 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5311 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5312 ndr->depth--;
5313 ndr->flags = _flags_save_STRUCT;
5317 static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
5319 if (ndr_flags & NDR_SCALARS) {
5320 NDR_CHECK(ndr_push_align(ndr, 4));
5322 uint32_t _flags_save_DATA_BLOB = ndr->flags;
5323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5324 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5325 ndr->flags = _flags_save_DATA_BLOB;
5328 if (ndr_flags & NDR_BUFFERS) {
5330 return NDR_ERR_SUCCESS;
5333 static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
5335 if (ndr_flags & NDR_SCALARS) {
5336 NDR_CHECK(ndr_pull_align(ndr, 4));
5338 uint32_t _flags_save_DATA_BLOB = ndr->flags;
5339 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5340 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5341 ndr->flags = _flags_save_DATA_BLOB;
5344 if (ndr_flags & NDR_BUFFERS) {
5346 return NDR_ERR_SUCCESS;
5349 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
5351 ndr_print_struct(ndr, name, "netr_AccountBuffer");
5352 ndr->depth++;
5353 ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5354 ndr->depth--;
5357 static enum ndr_err_code ndr_push_netr_InfoFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5360 return NDR_ERR_SUCCESS;
5363 static enum ndr_err_code ndr_pull_netr_InfoFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5365 uint32_t v;
5366 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5367 *r = v;
5368 return NDR_ERR_SUCCESS;
5371 _PUBLIC_ void ndr_print_netr_InfoFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5373 ndr_print_uint32(ndr, name, r);
5374 ndr->depth++;
5375 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_NEEDED", NETLOGON_CTRL_REPL_NEEDED, r);
5376 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_IN_PROGRESS", NETLOGON_CTRL_REPL_IN_PROGRESS, r);
5377 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_FULL_SYNC", NETLOGON_CTRL_REPL_FULL_SYNC, r);
5378 ndr->depth--;
5381 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)
5383 if (ndr_flags & NDR_SCALARS) {
5384 NDR_CHECK(ndr_push_align(ndr, 4));
5385 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5388 if (ndr_flags & NDR_BUFFERS) {
5390 return NDR_ERR_SUCCESS;
5393 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
5395 if (ndr_flags & NDR_SCALARS) {
5396 NDR_CHECK(ndr_pull_align(ndr, 4));
5397 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5398 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5400 if (ndr_flags & NDR_BUFFERS) {
5402 return NDR_ERR_SUCCESS;
5405 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
5407 ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5408 ndr->depth++;
5409 ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5410 ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5411 ndr->depth--;
5414 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)
5416 if (ndr_flags & NDR_SCALARS) {
5417 NDR_CHECK(ndr_push_align(ndr, 4));
5418 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5420 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status));
5423 if (ndr_flags & NDR_BUFFERS) {
5424 if (r->trusted_dc_name) {
5425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5428 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));
5431 return NDR_ERR_SUCCESS;
5434 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
5436 uint32_t _ptr_trusted_dc_name;
5437 TALLOC_CTX *_mem_save_trusted_dc_name_0;
5438 if (ndr_flags & NDR_SCALARS) {
5439 NDR_CHECK(ndr_pull_align(ndr, 4));
5440 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5441 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5442 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5443 if (_ptr_trusted_dc_name) {
5444 NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5445 } else {
5446 r->trusted_dc_name = NULL;
5448 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status));
5450 if (ndr_flags & NDR_BUFFERS) {
5451 if (r->trusted_dc_name) {
5452 _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5453 NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5454 NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5455 NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5456 if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5457 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));
5459 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5460 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));
5461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5464 return NDR_ERR_SUCCESS;
5467 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
5469 ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5470 ndr->depth++;
5471 ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5472 ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5473 ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5474 ndr->depth++;
5475 if (r->trusted_dc_name) {
5476 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5478 ndr->depth--;
5479 ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status);
5480 ndr->depth--;
5483 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_3(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_3 *r)
5485 if (ndr_flags & NDR_SCALARS) {
5486 NDR_CHECK(ndr_push_align(ndr, 4));
5487 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5490 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5495 if (ndr_flags & NDR_BUFFERS) {
5497 return NDR_ERR_SUCCESS;
5500 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
5502 if (ndr_flags & NDR_SCALARS) {
5503 NDR_CHECK(ndr_pull_align(ndr, 4));
5504 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5505 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5509 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5512 if (ndr_flags & NDR_BUFFERS) {
5514 return NDR_ERR_SUCCESS;
5517 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
5519 ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
5520 ndr->depth++;
5521 ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5522 ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5523 ndr_print_uint32(ndr, "unknown1", r->unknown1);
5524 ndr_print_uint32(ndr, "unknown2", r->unknown2);
5525 ndr_print_uint32(ndr, "unknown3", r->unknown3);
5526 ndr_print_uint32(ndr, "unknown4", r->unknown4);
5527 ndr_print_uint32(ndr, "unknown5", r->unknown5);
5528 ndr->depth--;
5531 static enum ndr_err_code ndr_push_netr_CONTROL_QUERY_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_QUERY_INFORMATION *r)
5533 if (ndr_flags & NDR_SCALARS) {
5534 int level = ndr_push_get_switch_value(ndr, r);
5535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5536 switch (level) {
5537 case 1: {
5538 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5539 break; }
5541 case 2: {
5542 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5543 break; }
5545 case 3: {
5546 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5547 break; }
5549 default:
5550 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5553 if (ndr_flags & NDR_BUFFERS) {
5554 int level = ndr_push_get_switch_value(ndr, r);
5555 switch (level) {
5556 case 1:
5557 if (r->info1) {
5558 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5560 break;
5562 case 2:
5563 if (r->info2) {
5564 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5566 break;
5568 case 3:
5569 if (r->info3) {
5570 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5572 break;
5574 default:
5575 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5578 return NDR_ERR_SUCCESS;
5581 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
5583 int level;
5584 uint32_t _level;
5585 TALLOC_CTX *_mem_save_info1_0;
5586 TALLOC_CTX *_mem_save_info2_0;
5587 TALLOC_CTX *_mem_save_info3_0;
5588 level = ndr_pull_get_switch_value(ndr, r);
5589 if (ndr_flags & NDR_SCALARS) {
5590 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5591 if (_level != level) {
5592 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5594 switch (level) {
5595 case 1: {
5596 uint32_t _ptr_info1;
5597 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5598 if (_ptr_info1) {
5599 NDR_PULL_ALLOC(ndr, r->info1);
5600 } else {
5601 r->info1 = NULL;
5603 break; }
5605 case 2: {
5606 uint32_t _ptr_info2;
5607 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5608 if (_ptr_info2) {
5609 NDR_PULL_ALLOC(ndr, r->info2);
5610 } else {
5611 r->info2 = NULL;
5613 break; }
5615 case 3: {
5616 uint32_t _ptr_info3;
5617 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5618 if (_ptr_info3) {
5619 NDR_PULL_ALLOC(ndr, r->info3);
5620 } else {
5621 r->info3 = NULL;
5623 break; }
5625 default:
5626 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5629 if (ndr_flags & NDR_BUFFERS) {
5630 switch (level) {
5631 case 1:
5632 if (r->info1) {
5633 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5634 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5635 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5638 break;
5640 case 2:
5641 if (r->info2) {
5642 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5643 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5644 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5647 break;
5649 case 3:
5650 if (r->info3) {
5651 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5652 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5653 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5656 break;
5658 default:
5659 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5662 return NDR_ERR_SUCCESS;
5665 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
5667 int level;
5668 level = ndr_print_get_switch_value(ndr, r);
5669 ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
5670 switch (level) {
5671 case 1:
5672 ndr_print_ptr(ndr, "info1", r->info1);
5673 ndr->depth++;
5674 if (r->info1) {
5675 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
5677 ndr->depth--;
5678 break;
5680 case 2:
5681 ndr_print_ptr(ndr, "info2", r->info2);
5682 ndr->depth++;
5683 if (r->info2) {
5684 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
5686 ndr->depth--;
5687 break;
5689 case 3:
5690 ndr_print_ptr(ndr, "info3", r->info3);
5691 ndr->depth++;
5692 if (r->info3) {
5693 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
5695 ndr->depth--;
5696 break;
5698 default:
5699 ndr_print_bad_level(ndr, name, level);
5703 static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
5705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5706 return NDR_ERR_SUCCESS;
5709 static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
5711 uint32_t v;
5712 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5713 *r = v;
5714 return NDR_ERR_SUCCESS;
5717 _PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
5719 const char *val = NULL;
5721 switch (r) {
5722 case NETLOGON_CONTROL_SYNC: val = "NETLOGON_CONTROL_SYNC"; break;
5723 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
5724 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
5725 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5726 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
5728 ndr_print_enum(ndr, name, "ENUM", val, r);
5731 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)
5733 if (ndr_flags & NDR_SCALARS) {
5734 int level = ndr_push_get_switch_value(ndr, r);
5735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5736 switch (level) {
5737 case NETLOGON_CONTROL_REDISCOVER: {
5738 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5739 break; }
5741 case NETLOGON_CONTROL_TC_QUERY: {
5742 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5743 break; }
5745 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5746 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5747 break; }
5749 case NETLOGON_CONTROL_SET_DBFLAG: {
5750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
5751 break; }
5753 default:
5754 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5757 if (ndr_flags & NDR_BUFFERS) {
5758 int level = ndr_push_get_switch_value(ndr, r);
5759 switch (level) {
5760 case NETLOGON_CONTROL_REDISCOVER:
5761 if (r->domain) {
5762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5765 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5767 break;
5769 case NETLOGON_CONTROL_TC_QUERY:
5770 if (r->domain) {
5771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5774 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5776 break;
5778 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5779 if (r->domain) {
5780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5783 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5785 break;
5787 case NETLOGON_CONTROL_SET_DBFLAG:
5788 break;
5790 default:
5791 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5794 return NDR_ERR_SUCCESS;
5797 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
5799 int level;
5800 uint32_t _level;
5801 TALLOC_CTX *_mem_save_domain_0;
5802 level = ndr_pull_get_switch_value(ndr, r);
5803 if (ndr_flags & NDR_SCALARS) {
5804 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5805 if (_level != level) {
5806 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5808 switch (level) {
5809 case NETLOGON_CONTROL_REDISCOVER: {
5810 uint32_t _ptr_domain;
5811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5812 if (_ptr_domain) {
5813 NDR_PULL_ALLOC(ndr, r->domain);
5814 } else {
5815 r->domain = NULL;
5817 break; }
5819 case NETLOGON_CONTROL_TC_QUERY: {
5820 uint32_t _ptr_domain;
5821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5822 if (_ptr_domain) {
5823 NDR_PULL_ALLOC(ndr, r->domain);
5824 } else {
5825 r->domain = NULL;
5827 break; }
5829 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5830 uint32_t _ptr_domain;
5831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5832 if (_ptr_domain) {
5833 NDR_PULL_ALLOC(ndr, r->domain);
5834 } else {
5835 r->domain = NULL;
5837 break; }
5839 case NETLOGON_CONTROL_SET_DBFLAG: {
5840 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
5841 break; }
5843 default:
5844 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5847 if (ndr_flags & NDR_BUFFERS) {
5848 switch (level) {
5849 case NETLOGON_CONTROL_REDISCOVER:
5850 if (r->domain) {
5851 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5852 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5853 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5854 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5855 if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5856 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));
5858 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5859 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5860 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5862 break;
5864 case NETLOGON_CONTROL_TC_QUERY:
5865 if (r->domain) {
5866 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5867 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5868 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5869 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5870 if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5871 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));
5873 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5874 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5875 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5877 break;
5879 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5880 if (r->domain) {
5881 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5882 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5883 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5884 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5885 if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5886 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));
5888 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5889 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5892 break;
5894 case NETLOGON_CONTROL_SET_DBFLAG:
5895 break;
5897 default:
5898 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5901 return NDR_ERR_SUCCESS;
5904 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
5906 int level;
5907 level = ndr_print_get_switch_value(ndr, r);
5908 ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
5909 switch (level) {
5910 case NETLOGON_CONTROL_REDISCOVER:
5911 ndr_print_ptr(ndr, "domain", r->domain);
5912 ndr->depth++;
5913 if (r->domain) {
5914 ndr_print_string(ndr, "domain", r->domain);
5916 ndr->depth--;
5917 break;
5919 case NETLOGON_CONTROL_TC_QUERY:
5920 ndr_print_ptr(ndr, "domain", r->domain);
5921 ndr->depth++;
5922 if (r->domain) {
5923 ndr_print_string(ndr, "domain", r->domain);
5925 ndr->depth--;
5926 break;
5928 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5929 ndr_print_ptr(ndr, "domain", r->domain);
5930 ndr->depth++;
5931 if (r->domain) {
5932 ndr_print_string(ndr, "domain", r->domain);
5934 ndr->depth--;
5935 break;
5937 case NETLOGON_CONTROL_SET_DBFLAG:
5938 ndr_print_uint32(ndr, "debug_level", r->debug_level);
5939 break;
5941 default:
5942 ndr_print_bad_level(ndr, name, level);
5946 static enum ndr_err_code ndr_push_netr_NegotiateFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5949 return NDR_ERR_SUCCESS;
5952 static enum ndr_err_code ndr_pull_netr_NegotiateFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5954 uint32_t v;
5955 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5956 *r = v;
5957 return NDR_ERR_SUCCESS;
5960 _PUBLIC_ void ndr_print_netr_NegotiateFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5962 ndr_print_uint32(ndr, name, r);
5963 ndr->depth++;
5964 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT, r);
5965 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL, r);
5966 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR, r);
5967 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT, r);
5968 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC, r);
5969 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL, r);
5970 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS, r);
5971 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO, r);
5972 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL, r);
5973 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC, r);
5974 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH, r);
5975 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC, r);
5976 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL, r);
5977 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL, r);
5978 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_128BIT", NETLOGON_NEG_128BIT, r);
5979 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS, r);
5980 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS, r);
5981 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2, r);
5982 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO, r);
5983 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS, r);
5984 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION, r);
5985 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH, r);
5986 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS, r);
5987 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SCHANNEL", NETLOGON_NEG_SCHANNEL, r);
5988 ndr->depth--;
5991 static enum ndr_err_code ndr_push_netr_ChangeLogFlags(struct ndr_push *ndr, int ndr_flags, uint16_t r)
5993 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
5994 return NDR_ERR_SUCCESS;
5997 static enum ndr_err_code ndr_pull_netr_ChangeLogFlags(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
5999 uint16_t v;
6000 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
6001 *r = v;
6002 return NDR_ERR_SUCCESS;
6005 _PUBLIC_ void ndr_print_netr_ChangeLogFlags(struct ndr_print *ndr, const char *name, uint16_t r)
6007 ndr_print_uint16(ndr, name, r);
6008 ndr->depth++;
6009 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED, r);
6010 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD, r);
6011 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED, r);
6012 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED, r);
6013 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ, r);
6014 ndr->depth--;
6017 static enum ndr_err_code ndr_push_netr_ChangeLogObject(struct ndr_push *ndr, int ndr_flags, const union netr_ChangeLogObject *r)
6019 if (ndr_flags & NDR_SCALARS) {
6020 int level = ndr_push_get_switch_value(ndr, r);
6021 switch (level) {
6022 case NETR_CHANGELOG_SID_INCLUDED: {
6023 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
6024 break; }
6026 case NETR_CHANGELOG_NAME_INCLUDED: {
6028 uint32_t _flags_save_string = ndr->flags;
6029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6030 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->object_name));
6031 ndr->flags = _flags_save_string;
6033 break; }
6035 default: {
6036 break; }
6040 if (ndr_flags & NDR_BUFFERS) {
6041 int level = ndr_push_get_switch_value(ndr, r);
6042 switch (level) {
6043 case NETR_CHANGELOG_SID_INCLUDED:
6044 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_BUFFERS, &r->object_sid));
6045 break;
6047 case NETR_CHANGELOG_NAME_INCLUDED:
6048 break;
6050 default:
6051 break;
6055 return NDR_ERR_SUCCESS;
6058 static enum ndr_err_code ndr_pull_netr_ChangeLogObject(struct ndr_pull *ndr, int ndr_flags, union netr_ChangeLogObject *r)
6060 int level;
6061 level = ndr_pull_get_switch_value(ndr, r);
6062 if (ndr_flags & NDR_SCALARS) {
6063 switch (level) {
6064 case NETR_CHANGELOG_SID_INCLUDED: {
6065 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
6066 break; }
6068 case NETR_CHANGELOG_NAME_INCLUDED: {
6070 uint32_t _flags_save_string = ndr->flags;
6071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6072 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->object_name));
6073 ndr->flags = _flags_save_string;
6075 break; }
6077 default: {
6078 break; }
6082 if (ndr_flags & NDR_BUFFERS) {
6083 switch (level) {
6084 case NETR_CHANGELOG_SID_INCLUDED:
6085 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_BUFFERS, &r->object_sid));
6086 break;
6088 case NETR_CHANGELOG_NAME_INCLUDED:
6089 break;
6091 default:
6092 break;
6096 return NDR_ERR_SUCCESS;
6099 _PUBLIC_ void ndr_print_netr_ChangeLogObject(struct ndr_print *ndr, const char *name, const union netr_ChangeLogObject *r)
6101 int level;
6102 level = ndr_print_get_switch_value(ndr, r);
6103 ndr_print_union(ndr, name, level, "netr_ChangeLogObject");
6104 switch (level) {
6105 case NETR_CHANGELOG_SID_INCLUDED:
6106 ndr_print_dom_sid(ndr, "object_sid", &r->object_sid);
6107 break;
6109 case NETR_CHANGELOG_NAME_INCLUDED:
6110 ndr_print_string(ndr, "object_name", r->object_name);
6111 break;
6113 default:
6114 break;
6119 _PUBLIC_ enum ndr_err_code ndr_push_netr_ChangeLogEntry(struct ndr_push *ndr, int ndr_flags, const struct netr_ChangeLogEntry *r)
6121 if (ndr_flags & NDR_SCALARS) {
6122 NDR_CHECK(ndr_push_align(ndr, 4));
6123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number1));
6124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number2));
6125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_rid));
6126 NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr, NDR_SCALARS, r->flags));
6127 NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, r->db_index));
6128 NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, r->delta_type));
6129 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
6130 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
6132 if (ndr_flags & NDR_BUFFERS) {
6133 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
6135 return NDR_ERR_SUCCESS;
6138 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ChangeLogEntry(struct ndr_pull *ndr, int ndr_flags, struct netr_ChangeLogEntry *r)
6140 if (ndr_flags & NDR_SCALARS) {
6141 NDR_CHECK(ndr_pull_align(ndr, 4));
6142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number1));
6143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number2));
6144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_rid));
6145 NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr, NDR_SCALARS, &r->flags));
6146 NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, &r->db_index));
6147 NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, &r->delta_type));
6148 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
6149 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
6151 if (ndr_flags & NDR_BUFFERS) {
6152 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
6154 return NDR_ERR_SUCCESS;
6157 _PUBLIC_ void ndr_print_netr_ChangeLogEntry(struct ndr_print *ndr, const char *name, const struct netr_ChangeLogEntry *r)
6159 ndr_print_struct(ndr, name, "netr_ChangeLogEntry");
6160 ndr->depth++;
6161 ndr_print_uint32(ndr, "serial_number1", r->serial_number1);
6162 ndr_print_uint32(ndr, "serial_number2", r->serial_number2);
6163 ndr_print_uint32(ndr, "object_rid", r->object_rid);
6164 ndr_print_netr_ChangeLogFlags(ndr, "flags", r->flags);
6165 ndr_print_netr_SamDatabaseID8Bit(ndr, "db_index", r->db_index);
6166 ndr_print_netr_DeltaEnum8Bit(ndr, "delta_type", r->delta_type);
6167 ndr_print_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED));
6168 ndr_print_netr_ChangeLogObject(ndr, "object", &r->object);
6169 ndr->depth--;
6172 _PUBLIC_ size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry *r, int flags)
6174 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_netr_ChangeLogEntry);
6177 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
6179 if (ndr_flags & NDR_SCALARS) {
6180 NDR_CHECK(ndr_push_align(ndr, 4));
6181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6184 if (ndr_flags & NDR_BUFFERS) {
6185 if (r->data) {
6186 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6187 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
6190 return NDR_ERR_SUCCESS;
6193 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
6195 uint32_t _ptr_data;
6196 TALLOC_CTX *_mem_save_data_0;
6197 if (ndr_flags & NDR_SCALARS) {
6198 NDR_CHECK(ndr_pull_align(ndr, 4));
6199 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
6200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6201 if (_ptr_data) {
6202 NDR_PULL_ALLOC(ndr, r->data);
6203 } else {
6204 r->data = NULL;
6207 if (ndr_flags & NDR_BUFFERS) {
6208 if (r->data) {
6209 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6210 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6211 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6212 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6213 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
6214 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6216 if (r->data) {
6217 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
6220 return NDR_ERR_SUCCESS;
6223 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
6225 ndr_print_struct(ndr, name, "netr_Blob");
6226 ndr->depth++;
6227 ndr_print_uint32(ndr, "length", r->length);
6228 ndr_print_ptr(ndr, "data", r->data);
6229 ndr->depth++;
6230 if (r->data) {
6231 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6233 ndr->depth--;
6234 ndr->depth--;
6237 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6239 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6240 return NDR_ERR_SUCCESS;
6243 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6245 uint32_t v;
6246 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6247 *r = v;
6248 return NDR_ERR_SUCCESS;
6251 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6253 ndr_print_uint32(ndr, name, r);
6254 ndr->depth++;
6255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
6271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
6272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6274 ndr->depth--;
6277 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6280 return NDR_ERR_SUCCESS;
6283 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6285 uint32_t v;
6286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6287 *r = v;
6288 return NDR_ERR_SUCCESS;
6291 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6293 const char *val = NULL;
6295 switch (r) {
6296 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6297 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6299 ndr_print_enum(ndr, name, "ENUM", val, r);
6302 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6305 return NDR_ERR_SUCCESS;
6308 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6310 uint32_t v;
6311 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6312 *r = v;
6313 return NDR_ERR_SUCCESS;
6316 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6318 ndr_print_uint32(ndr, name, r);
6319 ndr->depth++;
6320 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6321 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6322 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6323 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6324 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6325 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6326 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6327 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6328 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6329 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6330 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
6331 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
6332 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6333 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6334 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6335 ndr->depth--;
6338 _PUBLIC_ enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6340 if (ndr_flags & NDR_SCALARS) {
6341 NDR_CHECK(ndr_push_align(ndr, 4));
6342 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6343 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6344 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6345 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6346 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6347 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6348 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6349 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6350 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6352 if (ndr_flags & NDR_BUFFERS) {
6353 if (r->dc_unc) {
6354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6357 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6359 if (r->dc_address) {
6360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6363 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6365 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6366 if (r->domain_name) {
6367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6370 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6372 if (r->forest_name) {
6373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6376 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6378 if (r->dc_site_name) {
6379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6382 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));
6384 if (r->client_site_name) {
6385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6388 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));
6391 return NDR_ERR_SUCCESS;
6394 _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6396 uint32_t _ptr_dc_unc;
6397 TALLOC_CTX *_mem_save_dc_unc_0;
6398 uint32_t _ptr_dc_address;
6399 TALLOC_CTX *_mem_save_dc_address_0;
6400 uint32_t _ptr_domain_name;
6401 TALLOC_CTX *_mem_save_domain_name_0;
6402 uint32_t _ptr_forest_name;
6403 TALLOC_CTX *_mem_save_forest_name_0;
6404 uint32_t _ptr_dc_site_name;
6405 TALLOC_CTX *_mem_save_dc_site_name_0;
6406 uint32_t _ptr_client_site_name;
6407 TALLOC_CTX *_mem_save_client_site_name_0;
6408 if (ndr_flags & NDR_SCALARS) {
6409 NDR_CHECK(ndr_pull_align(ndr, 4));
6410 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6411 if (_ptr_dc_unc) {
6412 NDR_PULL_ALLOC(ndr, r->dc_unc);
6413 } else {
6414 r->dc_unc = NULL;
6416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6417 if (_ptr_dc_address) {
6418 NDR_PULL_ALLOC(ndr, r->dc_address);
6419 } else {
6420 r->dc_address = NULL;
6422 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6423 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6424 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6425 if (_ptr_domain_name) {
6426 NDR_PULL_ALLOC(ndr, r->domain_name);
6427 } else {
6428 r->domain_name = NULL;
6430 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6431 if (_ptr_forest_name) {
6432 NDR_PULL_ALLOC(ndr, r->forest_name);
6433 } else {
6434 r->forest_name = NULL;
6436 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6437 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6438 if (_ptr_dc_site_name) {
6439 NDR_PULL_ALLOC(ndr, r->dc_site_name);
6440 } else {
6441 r->dc_site_name = NULL;
6443 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6444 if (_ptr_client_site_name) {
6445 NDR_PULL_ALLOC(ndr, r->client_site_name);
6446 } else {
6447 r->client_site_name = NULL;
6450 if (ndr_flags & NDR_BUFFERS) {
6451 if (r->dc_unc) {
6452 _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6453 NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6454 NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6455 NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6456 if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6457 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));
6459 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6460 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6463 if (r->dc_address) {
6464 _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6465 NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6466 NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6467 NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6468 if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6469 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));
6471 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6472 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6475 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6476 if (r->domain_name) {
6477 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6478 NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6479 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6480 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6481 if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6482 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));
6484 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6485 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6488 if (r->forest_name) {
6489 _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6490 NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6491 NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
6492 NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
6493 if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
6494 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));
6496 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
6497 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
6498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
6500 if (r->dc_site_name) {
6501 _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6502 NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
6503 NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
6504 NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
6505 if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
6506 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));
6508 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
6509 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));
6510 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
6512 if (r->client_site_name) {
6513 _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6514 NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
6515 NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
6516 NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
6517 if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
6518 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));
6520 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
6521 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));
6522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
6525 return NDR_ERR_SUCCESS;
6528 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
6530 ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
6531 ndr->depth++;
6532 ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
6533 ndr->depth++;
6534 if (r->dc_unc) {
6535 ndr_print_string(ndr, "dc_unc", r->dc_unc);
6537 ndr->depth--;
6538 ndr_print_ptr(ndr, "dc_address", r->dc_address);
6539 ndr->depth++;
6540 if (r->dc_address) {
6541 ndr_print_string(ndr, "dc_address", r->dc_address);
6543 ndr->depth--;
6544 ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
6545 ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
6546 ndr_print_ptr(ndr, "domain_name", r->domain_name);
6547 ndr->depth++;
6548 if (r->domain_name) {
6549 ndr_print_string(ndr, "domain_name", r->domain_name);
6551 ndr->depth--;
6552 ndr_print_ptr(ndr, "forest_name", r->forest_name);
6553 ndr->depth++;
6554 if (r->forest_name) {
6555 ndr_print_string(ndr, "forest_name", r->forest_name);
6557 ndr->depth--;
6558 ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
6559 ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
6560 ndr->depth++;
6561 if (r->dc_site_name) {
6562 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
6564 ndr->depth--;
6565 ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
6566 ndr->depth++;
6567 if (r->client_site_name) {
6568 ndr_print_string(ndr, "client_site_name", r->client_site_name);
6570 ndr->depth--;
6571 ndr->depth--;
6574 static enum ndr_err_code ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r)
6576 uint32_t cntr_data_1;
6578 uint32_t _flags_save_STRUCT = ndr->flags;
6579 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6580 if (ndr_flags & NDR_SCALARS) {
6581 NDR_CHECK(ndr_push_align(ndr, 4));
6582 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
6583 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
6584 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6586 if (ndr_flags & NDR_BUFFERS) {
6587 if (r->data) {
6588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
6589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
6591 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6592 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1]));
6596 ndr->flags = _flags_save_STRUCT;
6598 return NDR_ERR_SUCCESS;
6601 static enum ndr_err_code ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r)
6603 uint32_t _ptr_data;
6604 uint32_t cntr_data_1;
6605 TALLOC_CTX *_mem_save_data_0;
6606 TALLOC_CTX *_mem_save_data_1;
6608 uint32_t _flags_save_STRUCT = ndr->flags;
6609 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6610 if (ndr_flags & NDR_SCALARS) {
6611 NDR_CHECK(ndr_pull_align(ndr, 4));
6612 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
6613 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
6614 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6615 if (_ptr_data) {
6616 NDR_PULL_ALLOC(ndr, r->data);
6617 } else {
6618 r->data = NULL;
6621 if (ndr_flags & NDR_BUFFERS) {
6622 if (r->data) {
6623 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6624 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6625 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6626 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
6627 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
6628 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));
6630 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6631 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
6632 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6633 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6634 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
6636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
6637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6639 if (r->data) {
6640 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2));
6642 if (r->data) {
6643 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2));
6646 ndr->flags = _flags_save_STRUCT;
6648 return NDR_ERR_SUCCESS;
6651 _PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r)
6653 uint32_t cntr_data_1;
6654 ndr_print_struct(ndr, name, "netr_BinaryString");
6656 uint32_t _flags_save_STRUCT = ndr->flags;
6657 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6658 ndr->depth++;
6659 ndr_print_uint16(ndr, "length", r->length);
6660 ndr_print_uint16(ndr, "size", r->size);
6661 ndr_print_ptr(ndr, "data", r->data);
6662 ndr->depth++;
6663 if (r->data) {
6664 ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)r->length / 2);
6665 ndr->depth++;
6666 for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) {
6667 char *idx_1=NULL;
6668 if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
6669 ndr_print_uint16(ndr, "data", r->data[cntr_data_1]);
6670 free(idx_1);
6673 ndr->depth--;
6675 ndr->depth--;
6676 ndr->depth--;
6677 ndr->flags = _flags_save_STRUCT;
6681 static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
6683 uint32_t cntr_unknown7_0;
6684 if (ndr_flags & NDR_SCALARS) {
6685 NDR_CHECK(ndr_push_align(ndr, 4));
6686 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6687 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
6688 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
6689 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
6690 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
6691 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
6692 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
6693 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6694 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
6695 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6696 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6697 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6698 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
6701 if (ndr_flags & NDR_BUFFERS) {
6702 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6703 if (r->workstation_domain) {
6704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6707 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6709 if (r->workstation_site) {
6710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6713 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6715 if (r->unknown1) {
6716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6719 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6721 if (r->unknown2) {
6722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6725 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6727 if (r->unknown3) {
6728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6731 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6733 if (r->unknown4) {
6734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6737 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6739 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6740 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
6741 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6742 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6744 return NDR_ERR_SUCCESS;
6747 static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
6749 uint32_t _ptr_workstation_domain;
6750 TALLOC_CTX *_mem_save_workstation_domain_0;
6751 uint32_t _ptr_workstation_site;
6752 TALLOC_CTX *_mem_save_workstation_site_0;
6753 uint32_t _ptr_unknown1;
6754 TALLOC_CTX *_mem_save_unknown1_0;
6755 uint32_t _ptr_unknown2;
6756 TALLOC_CTX *_mem_save_unknown2_0;
6757 uint32_t _ptr_unknown3;
6758 TALLOC_CTX *_mem_save_unknown3_0;
6759 uint32_t _ptr_unknown4;
6760 TALLOC_CTX *_mem_save_unknown4_0;
6761 uint32_t cntr_unknown7_0;
6762 if (ndr_flags & NDR_SCALARS) {
6763 NDR_CHECK(ndr_pull_align(ndr, 4));
6764 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
6766 if (_ptr_workstation_domain) {
6767 NDR_PULL_ALLOC(ndr, r->workstation_domain);
6768 } else {
6769 r->workstation_domain = NULL;
6771 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
6772 if (_ptr_workstation_site) {
6773 NDR_PULL_ALLOC(ndr, r->workstation_site);
6774 } else {
6775 r->workstation_site = NULL;
6777 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
6778 if (_ptr_unknown1) {
6779 NDR_PULL_ALLOC(ndr, r->unknown1);
6780 } else {
6781 r->unknown1 = NULL;
6783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
6784 if (_ptr_unknown2) {
6785 NDR_PULL_ALLOC(ndr, r->unknown2);
6786 } else {
6787 r->unknown2 = NULL;
6789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
6790 if (_ptr_unknown3) {
6791 NDR_PULL_ALLOC(ndr, r->unknown3);
6792 } else {
6793 r->unknown3 = NULL;
6795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
6796 if (_ptr_unknown4) {
6797 NDR_PULL_ALLOC(ndr, r->unknown4);
6798 } else {
6799 r->unknown4 = NULL;
6801 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6802 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
6803 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6804 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6805 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6806 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
6809 if (ndr_flags & NDR_BUFFERS) {
6810 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6811 if (r->workstation_domain) {
6812 _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6813 NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
6814 NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
6815 NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
6816 if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
6817 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_domain), ndr_get_array_length(ndr, &r->workstation_domain));
6819 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
6820 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
6821 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
6823 if (r->workstation_site) {
6824 _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
6825 NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
6826 NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
6827 NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
6828 if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
6829 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_site), ndr_get_array_length(ndr, &r->workstation_site));
6831 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
6832 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
6833 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
6835 if (r->unknown1) {
6836 _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6837 NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
6838 NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
6839 NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
6840 if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
6841 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown1), ndr_get_array_length(ndr, &r->unknown1));
6843 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
6844 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
6845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
6847 if (r->unknown2) {
6848 _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6849 NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
6850 NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
6851 NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
6852 if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
6853 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown2), ndr_get_array_length(ndr, &r->unknown2));
6855 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
6856 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
6857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
6859 if (r->unknown3) {
6860 _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6861 NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
6862 NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
6863 NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
6864 if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
6865 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown3), ndr_get_array_length(ndr, &r->unknown3));
6867 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
6868 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
6869 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
6871 if (r->unknown4) {
6872 _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6873 NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
6874 NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
6875 NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
6876 if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
6877 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown4), ndr_get_array_length(ndr, &r->unknown4));
6879 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
6880 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
6881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
6883 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6884 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
6885 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6886 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6888 return NDR_ERR_SUCCESS;
6891 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
6893 uint32_t cntr_unknown7_0;
6894 ndr_print_struct(ndr, name, "netr_DomainQuery1");
6895 ndr->depth++;
6896 ndr_print_netr_Blob(ndr, "blob", &r->blob);
6897 ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
6898 ndr->depth++;
6899 if (r->workstation_domain) {
6900 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
6902 ndr->depth--;
6903 ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
6904 ndr->depth++;
6905 if (r->workstation_site) {
6906 ndr_print_string(ndr, "workstation_site", r->workstation_site);
6908 ndr->depth--;
6909 ndr_print_ptr(ndr, "unknown1", r->unknown1);
6910 ndr->depth++;
6911 if (r->unknown1) {
6912 ndr_print_string(ndr, "unknown1", r->unknown1);
6914 ndr->depth--;
6915 ndr_print_ptr(ndr, "unknown2", r->unknown2);
6916 ndr->depth++;
6917 if (r->unknown2) {
6918 ndr_print_string(ndr, "unknown2", r->unknown2);
6920 ndr->depth--;
6921 ndr_print_ptr(ndr, "unknown3", r->unknown3);
6922 ndr->depth++;
6923 if (r->unknown3) {
6924 ndr_print_string(ndr, "unknown3", r->unknown3);
6926 ndr->depth--;
6927 ndr_print_ptr(ndr, "unknown4", r->unknown4);
6928 ndr->depth++;
6929 if (r->unknown4) {
6930 ndr_print_string(ndr, "unknown4", r->unknown4);
6932 ndr->depth--;
6933 ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2);
6934 ndr_print_lsa_String(ndr, "product", &r->product);
6935 ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
6936 ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
6937 ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", (int)4);
6938 ndr->depth++;
6939 for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
6940 char *idx_0=NULL;
6941 if (asprintf(&idx_0, "[%d]", cntr_unknown7_0) != -1) {
6942 ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
6943 free(idx_0);
6946 ndr->depth--;
6947 ndr->depth--;
6950 static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
6952 if (ndr_flags & NDR_SCALARS) {
6953 int level = ndr_push_get_switch_value(ndr, r);
6954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6955 switch (level) {
6956 case 1: {
6957 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6958 break; }
6960 case 2: {
6961 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6962 break; }
6964 default:
6965 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6968 if (ndr_flags & NDR_BUFFERS) {
6969 int level = ndr_push_get_switch_value(ndr, r);
6970 switch (level) {
6971 case 1:
6972 if (r->query1) {
6973 NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6975 break;
6977 case 2:
6978 if (r->query1) {
6979 NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6981 break;
6983 default:
6984 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6987 return NDR_ERR_SUCCESS;
6990 static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
6992 int level;
6993 uint32_t _level;
6994 TALLOC_CTX *_mem_save_query1_0;
6995 level = ndr_pull_get_switch_value(ndr, r);
6996 if (ndr_flags & NDR_SCALARS) {
6997 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6998 if (_level != level) {
6999 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7001 switch (level) {
7002 case 1: {
7003 uint32_t _ptr_query1;
7004 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
7005 if (_ptr_query1) {
7006 NDR_PULL_ALLOC(ndr, r->query1);
7007 } else {
7008 r->query1 = NULL;
7010 break; }
7012 case 2: {
7013 uint32_t _ptr_query1;
7014 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
7015 if (_ptr_query1) {
7016 NDR_PULL_ALLOC(ndr, r->query1);
7017 } else {
7018 r->query1 = NULL;
7020 break; }
7022 default:
7023 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7026 if (ndr_flags & NDR_BUFFERS) {
7027 switch (level) {
7028 case 1:
7029 if (r->query1) {
7030 _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7031 NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
7032 NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
7035 break;
7037 case 2:
7038 if (r->query1) {
7039 _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7040 NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
7041 NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
7044 break;
7046 default:
7047 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7050 return NDR_ERR_SUCCESS;
7053 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
7055 int level;
7056 level = ndr_print_get_switch_value(ndr, r);
7057 ndr_print_union(ndr, name, level, "netr_DomainQuery");
7058 switch (level) {
7059 case 1:
7060 ndr_print_ptr(ndr, "query1", r->query1);
7061 ndr->depth++;
7062 if (r->query1) {
7063 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
7065 ndr->depth--;
7066 break;
7068 case 2:
7069 ndr_print_ptr(ndr, "query1", r->query1);
7070 ndr->depth++;
7071 if (r->query1) {
7072 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
7074 ndr->depth--;
7075 break;
7077 default:
7078 ndr_print_bad_level(ndr, name, level);
7082 static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
7084 uint32_t cntr_unknown1_0;
7085 uint32_t cntr_unknown_0;
7086 if (ndr_flags & NDR_SCALARS) {
7087 NDR_CHECK(ndr_push_align(ndr, 4));
7088 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
7089 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
7090 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
7091 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7092 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7093 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
7094 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
7096 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
7097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
7100 if (ndr_flags & NDR_BUFFERS) {
7101 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
7102 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
7103 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
7104 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
7105 if (r->sid) {
7106 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7108 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
7109 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
7112 return NDR_ERR_SUCCESS;
7115 static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
7117 uint32_t _ptr_sid;
7118 TALLOC_CTX *_mem_save_sid_0;
7119 uint32_t cntr_unknown1_0;
7120 uint32_t cntr_unknown_0;
7121 if (ndr_flags & NDR_SCALARS) {
7122 NDR_CHECK(ndr_pull_align(ndr, 4));
7123 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
7124 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
7125 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
7126 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7127 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7128 if (_ptr_sid) {
7129 NDR_PULL_ALLOC(ndr, r->sid);
7130 } else {
7131 r->sid = NULL;
7133 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
7134 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
7136 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
7137 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
7140 if (ndr_flags & NDR_BUFFERS) {
7141 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
7142 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
7143 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
7144 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
7145 if (r->sid) {
7146 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7147 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7148 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7149 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7151 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
7152 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
7155 return NDR_ERR_SUCCESS;
7158 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
7160 uint32_t cntr_unknown1_0;
7161 uint32_t cntr_unknown_0;
7162 ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
7163 ndr->depth++;
7164 ndr_print_lsa_String(ndr, "domainname", &r->domainname);
7165 ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
7166 ndr_print_lsa_String(ndr, "forest", &r->forest);
7167 ndr_print_GUID(ndr, "guid", &r->guid);
7168 ndr_print_ptr(ndr, "sid", r->sid);
7169 ndr->depth++;
7170 if (r->sid) {
7171 ndr_print_dom_sid2(ndr, "sid", r->sid);
7173 ndr->depth--;
7174 ndr->print(ndr, "%s: ARRAY(%d)", "unknown1", (int)4);
7175 ndr->depth++;
7176 for (cntr_unknown1_0=0;cntr_unknown1_0<4;cntr_unknown1_0++) {
7177 char *idx_0=NULL;
7178 if (asprintf(&idx_0, "[%d]", cntr_unknown1_0) != -1) {
7179 ndr_print_netr_BinaryString(ndr, "unknown1", &r->unknown1[cntr_unknown1_0]);
7180 free(idx_0);
7183 ndr->depth--;
7184 ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)4);
7185 ndr->depth++;
7186 for (cntr_unknown_0=0;cntr_unknown_0<4;cntr_unknown_0++) {
7187 char *idx_0=NULL;
7188 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
7189 ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
7190 free(idx_0);
7193 ndr->depth--;
7194 ndr->depth--;
7197 static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
7199 uint32_t cntr_trusts_1;
7200 uint32_t cntr_unknown_0;
7201 if (ndr_flags & NDR_SCALARS) {
7202 NDR_CHECK(ndr_push_align(ndr, 4));
7203 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7205 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
7206 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
7207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
7210 if (ndr_flags & NDR_BUFFERS) {
7211 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7212 if (r->trusts) {
7213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7214 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7215 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7217 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7218 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7222 return NDR_ERR_SUCCESS;
7225 static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
7227 uint32_t _ptr_trusts;
7228 uint32_t cntr_trusts_1;
7229 TALLOC_CTX *_mem_save_trusts_0;
7230 TALLOC_CTX *_mem_save_trusts_1;
7231 uint32_t cntr_unknown_0;
7232 if (ndr_flags & NDR_SCALARS) {
7233 NDR_CHECK(ndr_pull_align(ndr, 4));
7234 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
7236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
7237 if (_ptr_trusts) {
7238 NDR_PULL_ALLOC(ndr, r->trusts);
7239 } else {
7240 r->trusts = NULL;
7242 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
7243 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
7246 if (ndr_flags & NDR_BUFFERS) {
7247 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7248 if (r->trusts) {
7249 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
7250 NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7251 NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
7252 NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
7253 _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
7254 NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7255 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7256 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7258 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7259 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7261 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
7262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
7264 if (r->trusts) {
7265 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
7268 return NDR_ERR_SUCCESS;
7271 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
7273 uint32_t cntr_trusts_1;
7274 uint32_t cntr_unknown_0;
7275 ndr_print_struct(ndr, name, "netr_DomainInfo1");
7276 ndr->depth++;
7277 ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
7278 ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
7279 ndr_print_ptr(ndr, "trusts", r->trusts);
7280 ndr->depth++;
7281 if (r->trusts) {
7282 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", (int)r->num_trusts);
7283 ndr->depth++;
7284 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
7285 char *idx_1=NULL;
7286 if (asprintf(&idx_1, "[%d]", cntr_trusts_1) != -1) {
7287 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
7288 free(idx_1);
7291 ndr->depth--;
7293 ndr->depth--;
7294 ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)14);
7295 ndr->depth++;
7296 for (cntr_unknown_0=0;cntr_unknown_0<14;cntr_unknown_0++) {
7297 char *idx_0=NULL;
7298 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
7299 ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
7300 free(idx_0);
7303 ndr->depth--;
7304 ndr->depth--;
7307 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
7309 if (ndr_flags & NDR_SCALARS) {
7310 int level = ndr_push_get_switch_value(ndr, r);
7311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7312 switch (level) {
7313 case 1: {
7314 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7315 break; }
7317 case 2: {
7318 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7319 break; }
7321 default:
7322 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7325 if (ndr_flags & NDR_BUFFERS) {
7326 int level = ndr_push_get_switch_value(ndr, r);
7327 switch (level) {
7328 case 1:
7329 if (r->info1) {
7330 NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7332 break;
7334 case 2:
7335 if (r->info1) {
7336 NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7338 break;
7340 default:
7341 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7344 return NDR_ERR_SUCCESS;
7347 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
7349 int level;
7350 uint32_t _level;
7351 TALLOC_CTX *_mem_save_info1_0;
7352 level = ndr_pull_get_switch_value(ndr, r);
7353 if (ndr_flags & NDR_SCALARS) {
7354 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7355 if (_level != level) {
7356 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7358 switch (level) {
7359 case 1: {
7360 uint32_t _ptr_info1;
7361 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7362 if (_ptr_info1) {
7363 NDR_PULL_ALLOC(ndr, r->info1);
7364 } else {
7365 r->info1 = NULL;
7367 break; }
7369 case 2: {
7370 uint32_t _ptr_info1;
7371 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7372 if (_ptr_info1) {
7373 NDR_PULL_ALLOC(ndr, r->info1);
7374 } else {
7375 r->info1 = NULL;
7377 break; }
7379 default:
7380 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7383 if (ndr_flags & NDR_BUFFERS) {
7384 switch (level) {
7385 case 1:
7386 if (r->info1) {
7387 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7388 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7389 NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7392 break;
7394 case 2:
7395 if (r->info1) {
7396 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7397 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7398 NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7401 break;
7403 default:
7404 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7407 return NDR_ERR_SUCCESS;
7410 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
7412 int level;
7413 level = ndr_print_get_switch_value(ndr, r);
7414 ndr_print_union(ndr, name, level, "netr_DomainInfo");
7415 switch (level) {
7416 case 1:
7417 ndr_print_ptr(ndr, "info1", r->info1);
7418 ndr->depth++;
7419 if (r->info1) {
7420 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7422 ndr->depth--;
7423 break;
7425 case 2:
7426 ndr_print_ptr(ndr, "info1", r->info1);
7427 ndr->depth++;
7428 if (r->info1) {
7429 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7431 ndr->depth--;
7432 break;
7434 default:
7435 ndr_print_bad_level(ndr, name, level);
7439 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
7442 uint32_t _flags_save_STRUCT = ndr->flags;
7443 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7444 if (ndr_flags & NDR_SCALARS) {
7445 NDR_CHECK(ndr_push_align(ndr, 4));
7446 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
7449 if (ndr_flags & NDR_BUFFERS) {
7451 ndr->flags = _flags_save_STRUCT;
7453 return NDR_ERR_SUCCESS;
7456 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
7459 uint32_t _flags_save_STRUCT = ndr->flags;
7460 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7461 if (ndr_flags & NDR_SCALARS) {
7462 NDR_CHECK(ndr_pull_align(ndr, 4));
7463 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7464 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7466 if (ndr_flags & NDR_BUFFERS) {
7468 ndr->flags = _flags_save_STRUCT;
7470 return NDR_ERR_SUCCESS;
7473 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
7475 ndr_print_struct(ndr, name, "netr_CryptPassword");
7477 uint32_t _flags_save_STRUCT = ndr->flags;
7478 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7479 ndr->depth++;
7480 ndr_print_array_uint8(ndr, "data", r->data, 512);
7481 ndr_print_uint32(ndr, "length", r->length);
7482 ndr->depth--;
7483 ndr->flags = _flags_save_STRUCT;
7487 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
7489 uint32_t cntr_sitename_1;
7490 if (ndr_flags & NDR_SCALARS) {
7491 NDR_CHECK(ndr_push_align(ndr, 4));
7492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7493 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7495 if (ndr_flags & NDR_BUFFERS) {
7496 if (r->sitename) {
7497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7498 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7499 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7501 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7502 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7506 return NDR_ERR_SUCCESS;
7509 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
7511 uint32_t _ptr_sitename;
7512 uint32_t cntr_sitename_1;
7513 TALLOC_CTX *_mem_save_sitename_0;
7514 TALLOC_CTX *_mem_save_sitename_1;
7515 if (ndr_flags & NDR_SCALARS) {
7516 NDR_CHECK(ndr_pull_align(ndr, 4));
7517 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7518 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7519 if (_ptr_sitename) {
7520 NDR_PULL_ALLOC(ndr, r->sitename);
7521 } else {
7522 r->sitename = NULL;
7525 if (ndr_flags & NDR_BUFFERS) {
7526 if (r->sitename) {
7527 _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7528 NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7529 NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7530 NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7531 _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7532 NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7533 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7534 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7536 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7537 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7539 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7542 if (r->sitename) {
7543 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7546 return NDR_ERR_SUCCESS;
7549 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
7551 uint32_t cntr_sitename_1;
7552 ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
7553 ndr->depth++;
7554 ndr_print_uint32(ndr, "count", r->count);
7555 ndr_print_ptr(ndr, "sitename", r->sitename);
7556 ndr->depth++;
7557 if (r->sitename) {
7558 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
7559 ndr->depth++;
7560 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7561 char *idx_1=NULL;
7562 if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
7563 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7564 free(idx_1);
7567 ndr->depth--;
7569 ndr->depth--;
7570 ndr->depth--;
7573 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
7575 if (ndr_flags & NDR_SCALARS) {
7576 NDR_CHECK(ndr_push_align(ndr, 4));
7577 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
7578 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7580 if (ndr_flags & NDR_BUFFERS) {
7581 if (r->buffer) {
7582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7583 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
7586 return NDR_ERR_SUCCESS;
7589 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
7591 uint32_t _ptr_buffer;
7592 TALLOC_CTX *_mem_save_buffer_0;
7593 if (ndr_flags & NDR_SCALARS) {
7594 NDR_CHECK(ndr_pull_align(ndr, 4));
7595 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
7596 if (_ptr_buffer) {
7597 NDR_PULL_ALLOC(ndr, r->buffer);
7598 } else {
7599 r->buffer = NULL;
7601 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7603 if (ndr_flags & NDR_BUFFERS) {
7604 if (r->buffer) {
7605 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
7606 NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
7607 NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
7608 NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
7609 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
7610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
7612 if (r->buffer) {
7613 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
7616 return NDR_ERR_SUCCESS;
7619 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
7621 ndr_print_struct(ndr, name, "netr_DsRAddress");
7622 ndr->depth++;
7623 ndr_print_ptr(ndr, "buffer", r->buffer);
7624 ndr->depth++;
7625 if (r->buffer) {
7626 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
7628 ndr->depth--;
7629 ndr_print_uint32(ndr, "size", r->size);
7630 ndr->depth--;
7633 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7636 return NDR_ERR_SUCCESS;
7639 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7641 uint32_t v;
7642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7643 *r = v;
7644 return NDR_ERR_SUCCESS;
7647 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7649 ndr_print_uint32(ndr, name, r);
7650 ndr->depth++;
7651 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7652 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7653 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7654 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7655 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7656 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7657 ndr->depth--;
7660 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
7662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7663 return NDR_ERR_SUCCESS;
7666 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
7668 uint32_t v;
7669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7670 *r = v;
7671 return NDR_ERR_SUCCESS;
7674 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
7676 const char *val = NULL;
7678 switch (r) {
7679 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7680 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
7681 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
7682 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
7684 ndr_print_enum(ndr, name, "ENUM", val, r);
7687 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7690 return NDR_ERR_SUCCESS;
7693 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7695 uint32_t v;
7696 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7697 *r = v;
7698 return NDR_ERR_SUCCESS;
7701 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
7703 ndr_print_uint32(ndr, name, r);
7704 ndr->depth++;
7705 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
7706 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
7707 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
7708 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
7709 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
7710 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
7711 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
7712 ndr->depth--;
7715 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
7717 if (ndr_flags & NDR_SCALARS) {
7718 NDR_CHECK(ndr_push_align(ndr, 4));
7719 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7720 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7721 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
7722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7723 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
7724 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
7725 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7726 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7728 if (ndr_flags & NDR_BUFFERS) {
7729 if (r->netbios_name) {
7730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7733 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7735 if (r->dns_name) {
7736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7739 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7741 if (r->sid) {
7742 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7744 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
7746 return NDR_ERR_SUCCESS;
7749 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
7751 uint32_t _ptr_netbios_name;
7752 TALLOC_CTX *_mem_save_netbios_name_0;
7753 uint32_t _ptr_dns_name;
7754 TALLOC_CTX *_mem_save_dns_name_0;
7755 uint32_t _ptr_sid;
7756 TALLOC_CTX *_mem_save_sid_0;
7757 if (ndr_flags & NDR_SCALARS) {
7758 NDR_CHECK(ndr_pull_align(ndr, 4));
7759 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7760 if (_ptr_netbios_name) {
7761 NDR_PULL_ALLOC(ndr, r->netbios_name);
7762 } else {
7763 r->netbios_name = NULL;
7765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7766 if (_ptr_dns_name) {
7767 NDR_PULL_ALLOC(ndr, r->dns_name);
7768 } else {
7769 r->dns_name = NULL;
7771 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
7772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7773 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
7774 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
7775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7776 if (_ptr_sid) {
7777 NDR_PULL_ALLOC(ndr, r->sid);
7778 } else {
7779 r->sid = NULL;
7781 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7783 if (ndr_flags & NDR_BUFFERS) {
7784 if (r->netbios_name) {
7785 _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7786 NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7787 NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7788 NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7789 if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7790 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));
7792 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7793 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7794 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7796 if (r->dns_name) {
7797 _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7798 NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7799 NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7800 NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7801 if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7802 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));
7804 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7805 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7806 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7808 if (r->sid) {
7809 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7810 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7811 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7814 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
7816 return NDR_ERR_SUCCESS;
7819 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
7821 ndr_print_struct(ndr, name, "netr_DomainTrust");
7822 ndr->depth++;
7823 ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7824 ndr->depth++;
7825 if (r->netbios_name) {
7826 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7828 ndr->depth--;
7829 ndr_print_ptr(ndr, "dns_name", r->dns_name);
7830 ndr->depth++;
7831 if (r->dns_name) {
7832 ndr_print_string(ndr, "dns_name", r->dns_name);
7834 ndr->depth--;
7835 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
7836 ndr_print_uint32(ndr, "parent_index", r->parent_index);
7837 ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
7838 ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
7839 ndr_print_ptr(ndr, "sid", r->sid);
7840 ndr->depth++;
7841 if (r->sid) {
7842 ndr_print_dom_sid2(ndr, "sid", r->sid);
7844 ndr->depth--;
7845 ndr_print_GUID(ndr, "guid", &r->guid);
7846 ndr->depth--;
7849 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
7851 uint32_t cntr_array_1;
7852 if (ndr_flags & NDR_SCALARS) {
7853 NDR_CHECK(ndr_push_align(ndr, 4));
7854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7855 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7857 if (ndr_flags & NDR_BUFFERS) {
7858 if (r->array) {
7859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7860 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7861 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7863 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7864 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7868 return NDR_ERR_SUCCESS;
7871 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
7873 uint32_t _ptr_array;
7874 uint32_t cntr_array_1;
7875 TALLOC_CTX *_mem_save_array_0;
7876 TALLOC_CTX *_mem_save_array_1;
7877 if (ndr_flags & NDR_SCALARS) {
7878 NDR_CHECK(ndr_pull_align(ndr, 4));
7879 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7881 if (_ptr_array) {
7882 NDR_PULL_ALLOC(ndr, r->array);
7883 } else {
7884 r->array = NULL;
7887 if (ndr_flags & NDR_BUFFERS) {
7888 if (r->array) {
7889 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7890 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7891 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7892 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
7893 _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7894 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7895 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7896 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7898 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7899 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7901 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7904 if (r->array) {
7905 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7908 return NDR_ERR_SUCCESS;
7911 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
7913 uint32_t cntr_array_1;
7914 ndr_print_struct(ndr, name, "netr_DomainTrustList");
7915 ndr->depth++;
7916 ndr_print_uint32(ndr, "count", r->count);
7917 ndr_print_ptr(ndr, "array", r->array);
7918 ndr->depth++;
7919 if (r->array) {
7920 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
7921 ndr->depth++;
7922 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7923 char *idx_1=NULL;
7924 if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
7925 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
7926 free(idx_1);
7929 ndr->depth--;
7931 ndr->depth--;
7932 ndr->depth--;
7935 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
7937 uint32_t cntr_sitename_1;
7938 uint32_t cntr_subnetname_1;
7939 if (ndr_flags & NDR_SCALARS) {
7940 NDR_CHECK(ndr_push_align(ndr, 4));
7941 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7942 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7943 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
7945 if (ndr_flags & NDR_BUFFERS) {
7946 if (r->sitename) {
7947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7948 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7949 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7951 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7952 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7955 if (r->subnetname) {
7956 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7957 for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7958 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7960 for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7961 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7965 return NDR_ERR_SUCCESS;
7968 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
7970 uint32_t _ptr_sitename;
7971 uint32_t cntr_sitename_1;
7972 TALLOC_CTX *_mem_save_sitename_0;
7973 TALLOC_CTX *_mem_save_sitename_1;
7974 uint32_t _ptr_subnetname;
7975 uint32_t cntr_subnetname_1;
7976 TALLOC_CTX *_mem_save_subnetname_0;
7977 TALLOC_CTX *_mem_save_subnetname_1;
7978 if (ndr_flags & NDR_SCALARS) {
7979 NDR_CHECK(ndr_pull_align(ndr, 4));
7980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7981 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7982 if (_ptr_sitename) {
7983 NDR_PULL_ALLOC(ndr, r->sitename);
7984 } else {
7985 r->sitename = NULL;
7987 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
7988 if (_ptr_subnetname) {
7989 NDR_PULL_ALLOC(ndr, r->subnetname);
7990 } else {
7991 r->subnetname = NULL;
7994 if (ndr_flags & NDR_BUFFERS) {
7995 if (r->sitename) {
7996 _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7997 NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7998 NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7999 NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
8000 _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
8001 NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8002 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8003 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8005 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8006 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
8009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
8011 if (r->subnetname) {
8012 _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
8013 NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
8014 NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
8015 NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
8016 _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
8017 NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
8018 for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8019 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
8021 for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8022 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
8024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
8025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
8027 if (r->sitename) {
8028 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
8030 if (r->subnetname) {
8031 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
8034 return NDR_ERR_SUCCESS;
8037 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
8039 uint32_t cntr_sitename_1;
8040 uint32_t cntr_subnetname_1;
8041 ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
8042 ndr->depth++;
8043 ndr_print_uint32(ndr, "count", r->count);
8044 ndr_print_ptr(ndr, "sitename", r->sitename);
8045 ndr->depth++;
8046 if (r->sitename) {
8047 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
8048 ndr->depth++;
8049 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
8050 char *idx_1=NULL;
8051 if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
8052 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
8053 free(idx_1);
8056 ndr->depth--;
8058 ndr->depth--;
8059 ndr_print_ptr(ndr, "subnetname", r->subnetname);
8060 ndr->depth++;
8061 if (r->subnetname) {
8062 ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", (int)r->count);
8063 ndr->depth++;
8064 for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
8065 char *idx_1=NULL;
8066 if (asprintf(&idx_1, "[%d]", cntr_subnetname_1) != -1) {
8067 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
8068 free(idx_1);
8071 ndr->depth--;
8073 ndr->depth--;
8074 ndr->depth--;
8077 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
8079 uint32_t cntr_sites_1;
8080 if (ndr_flags & NDR_SCALARS) {
8081 NDR_CHECK(ndr_push_align(ndr, 4));
8082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
8083 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
8085 if (ndr_flags & NDR_BUFFERS) {
8086 if (r->sites) {
8087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
8088 for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8089 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
8091 for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8092 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
8096 return NDR_ERR_SUCCESS;
8099 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
8101 uint32_t _ptr_sites;
8102 uint32_t cntr_sites_1;
8103 TALLOC_CTX *_mem_save_sites_0;
8104 TALLOC_CTX *_mem_save_sites_1;
8105 if (ndr_flags & NDR_SCALARS) {
8106 NDR_CHECK(ndr_pull_align(ndr, 4));
8107 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
8108 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
8109 if (_ptr_sites) {
8110 NDR_PULL_ALLOC(ndr, r->sites);
8111 } else {
8112 r->sites = NULL;
8115 if (ndr_flags & NDR_BUFFERS) {
8116 if (r->sites) {
8117 _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
8118 NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
8119 NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
8120 NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
8121 _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
8122 NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
8123 for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8124 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
8126 for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8127 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
8129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
8130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
8132 if (r->sites) {
8133 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
8136 return NDR_ERR_SUCCESS;
8139 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
8141 uint32_t cntr_sites_1;
8142 ndr_print_struct(ndr, name, "DcSitesCtr");
8143 ndr->depth++;
8144 ndr_print_uint32(ndr, "num_sites", r->num_sites);
8145 ndr_print_ptr(ndr, "sites", r->sites);
8146 ndr->depth++;
8147 if (r->sites) {
8148 ndr->print(ndr, "%s: ARRAY(%d)", "sites", (int)r->num_sites);
8149 ndr->depth++;
8150 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
8151 char *idx_1=NULL;
8152 if (asprintf(&idx_1, "[%d]", cntr_sites_1) != -1) {
8153 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
8154 free(idx_1);
8157 ndr->depth--;
8159 ndr->depth--;
8160 ndr->depth--;
8163 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
8165 if (flags & NDR_IN) {
8166 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8167 if (r->in.server_name) {
8168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8171 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));
8173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8176 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));
8177 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8178 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8180 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8182 if (flags & NDR_OUT) {
8183 if (r->out.info == NULL) {
8184 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8186 NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
8187 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8189 return NDR_ERR_SUCCESS;
8192 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
8194 uint32_t _ptr_server_name;
8195 TALLOC_CTX *_mem_save_server_name_0;
8196 TALLOC_CTX *_mem_save_info_0;
8197 if (flags & NDR_IN) {
8198 ZERO_STRUCT(r->out);
8200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8201 if (_ptr_server_name) {
8202 NDR_PULL_ALLOC(ndr, r->in.server_name);
8203 } else {
8204 r->in.server_name = NULL;
8206 if (r->in.server_name) {
8207 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8208 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8209 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8210 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8211 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8212 return 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));
8214 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8215 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));
8216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8218 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8219 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8220 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8221 return 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));
8223 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8224 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));
8225 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8226 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8227 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8228 return 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));
8230 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8231 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8232 NDR_PULL_ALLOC(ndr, r->out.info);
8233 ZERO_STRUCTP(r->out.info);
8235 if (flags & NDR_OUT) {
8236 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8237 NDR_PULL_ALLOC(ndr, r->out.info);
8239 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8240 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8241 NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
8242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8243 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8245 return NDR_ERR_SUCCESS;
8248 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
8250 ndr_print_struct(ndr, name, "netr_LogonUasLogon");
8251 ndr->depth++;
8252 if (flags & NDR_SET_VALUES) {
8253 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8255 if (flags & NDR_IN) {
8256 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
8257 ndr->depth++;
8258 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8259 ndr->depth++;
8260 if (r->in.server_name) {
8261 ndr_print_string(ndr, "server_name", r->in.server_name);
8263 ndr->depth--;
8264 ndr_print_string(ndr, "account_name", r->in.account_name);
8265 ndr_print_string(ndr, "workstation", r->in.workstation);
8266 ndr->depth--;
8268 if (flags & NDR_OUT) {
8269 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
8270 ndr->depth++;
8271 ndr_print_ptr(ndr, "info", r->out.info);
8272 ndr->depth++;
8273 ndr_print_netr_UasInfo(ndr, "info", r->out.info);
8274 ndr->depth--;
8275 ndr_print_WERROR(ndr, "result", r->out.result);
8276 ndr->depth--;
8278 ndr->depth--;
8281 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
8283 if (flags & NDR_IN) {
8284 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8285 if (r->in.server_name) {
8286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8287 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8288 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8289 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));
8291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8292 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8293 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8294 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));
8295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8298 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8300 if (flags & NDR_OUT) {
8301 if (r->out.info == NULL) {
8302 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8304 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8305 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8307 return NDR_ERR_SUCCESS;
8310 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
8312 uint32_t _ptr_server_name;
8313 TALLOC_CTX *_mem_save_server_name_0;
8314 TALLOC_CTX *_mem_save_info_0;
8315 if (flags & NDR_IN) {
8316 ZERO_STRUCT(r->out);
8318 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8319 if (_ptr_server_name) {
8320 NDR_PULL_ALLOC(ndr, r->in.server_name);
8321 } else {
8322 r->in.server_name = NULL;
8324 if (r->in.server_name) {
8325 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8326 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8327 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8328 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8329 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8330 return 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));
8332 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8333 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));
8334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8336 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8337 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8338 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8339 return 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));
8341 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8342 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));
8343 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8344 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8345 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8346 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.workstation), ndr_get_array_length(ndr, &r->in.workstation));
8348 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8349 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8350 NDR_PULL_ALLOC(ndr, r->out.info);
8351 ZERO_STRUCTP(r->out.info);
8353 if (flags & NDR_OUT) {
8354 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8355 NDR_PULL_ALLOC(ndr, r->out.info);
8357 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8358 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8359 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8361 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8363 return NDR_ERR_SUCCESS;
8366 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
8368 ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
8369 ndr->depth++;
8370 if (flags & NDR_SET_VALUES) {
8371 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8373 if (flags & NDR_IN) {
8374 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
8375 ndr->depth++;
8376 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8377 ndr->depth++;
8378 if (r->in.server_name) {
8379 ndr_print_string(ndr, "server_name", r->in.server_name);
8381 ndr->depth--;
8382 ndr_print_string(ndr, "account_name", r->in.account_name);
8383 ndr_print_string(ndr, "workstation", r->in.workstation);
8384 ndr->depth--;
8386 if (flags & NDR_OUT) {
8387 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
8388 ndr->depth++;
8389 ndr_print_ptr(ndr, "info", r->out.info);
8390 ndr->depth++;
8391 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
8392 ndr->depth--;
8393 ndr_print_WERROR(ndr, "result", r->out.result);
8394 ndr->depth--;
8396 ndr->depth--;
8399 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
8401 if (flags & NDR_IN) {
8402 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8403 if (r->in.server_name) {
8404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8407 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));
8409 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8410 if (r->in.computer_name) {
8411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8414 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));
8416 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8417 if (r->in.credential) {
8418 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8420 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8421 if (r->in.return_authenticator) {
8422 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8424 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
8425 if (r->in.logon == NULL) {
8426 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8428 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
8429 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
8430 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
8432 if (flags & NDR_OUT) {
8433 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8434 if (r->out.return_authenticator) {
8435 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8437 if (r->out.validation == NULL) {
8438 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8440 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8441 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8442 if (r->out.authoritative == NULL) {
8443 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8445 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
8446 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8448 return NDR_ERR_SUCCESS;
8451 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
8453 uint32_t _ptr_server_name;
8454 uint32_t _ptr_computer_name;
8455 uint32_t _ptr_credential;
8456 uint32_t _ptr_return_authenticator;
8457 TALLOC_CTX *_mem_save_server_name_0;
8458 TALLOC_CTX *_mem_save_computer_name_0;
8459 TALLOC_CTX *_mem_save_credential_0;
8460 TALLOC_CTX *_mem_save_return_authenticator_0;
8461 TALLOC_CTX *_mem_save_logon_0;
8462 TALLOC_CTX *_mem_save_validation_0;
8463 TALLOC_CTX *_mem_save_authoritative_0;
8464 if (flags & NDR_IN) {
8465 ZERO_STRUCT(r->out);
8467 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8468 if (_ptr_server_name) {
8469 NDR_PULL_ALLOC(ndr, r->in.server_name);
8470 } else {
8471 r->in.server_name = NULL;
8473 if (r->in.server_name) {
8474 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8475 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8476 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8477 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8478 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8479 return 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));
8481 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8482 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));
8483 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8485 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8486 if (_ptr_computer_name) {
8487 NDR_PULL_ALLOC(ndr, r->in.computer_name);
8488 } else {
8489 r->in.computer_name = NULL;
8491 if (r->in.computer_name) {
8492 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8493 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8494 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8495 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8496 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8497 return 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));
8499 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8500 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));
8501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8503 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8504 if (_ptr_credential) {
8505 NDR_PULL_ALLOC(ndr, r->in.credential);
8506 } else {
8507 r->in.credential = NULL;
8509 if (r->in.credential) {
8510 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8511 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8512 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8515 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8516 if (_ptr_return_authenticator) {
8517 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8518 } else {
8519 r->in.return_authenticator = NULL;
8521 if (r->in.return_authenticator) {
8522 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8523 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8524 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8527 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
8528 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8529 NDR_PULL_ALLOC(ndr, r->in.logon);
8531 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
8532 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
8533 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
8534 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
8535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
8536 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
8537 NDR_PULL_ALLOC(ndr, r->out.validation);
8538 ZERO_STRUCTP(r->out.validation);
8539 NDR_PULL_ALLOC(ndr, r->out.authoritative);
8540 ZERO_STRUCTP(r->out.authoritative);
8542 if (flags & NDR_OUT) {
8543 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8544 if (_ptr_return_authenticator) {
8545 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8546 } else {
8547 r->out.return_authenticator = NULL;
8549 if (r->out.return_authenticator) {
8550 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8551 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8552 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8555 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8556 NDR_PULL_ALLOC(ndr, r->out.validation);
8558 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
8559 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
8560 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8561 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
8563 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8564 NDR_PULL_ALLOC(ndr, r->out.authoritative);
8566 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
8567 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
8568 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
8569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
8570 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8572 return NDR_ERR_SUCCESS;
8575 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
8577 ndr_print_struct(ndr, name, "netr_LogonSamLogon");
8578 ndr->depth++;
8579 if (flags & NDR_SET_VALUES) {
8580 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8582 if (flags & NDR_IN) {
8583 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
8584 ndr->depth++;
8585 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8586 ndr->depth++;
8587 if (r->in.server_name) {
8588 ndr_print_string(ndr, "server_name", r->in.server_name);
8590 ndr->depth--;
8591 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8592 ndr->depth++;
8593 if (r->in.computer_name) {
8594 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8596 ndr->depth--;
8597 ndr_print_ptr(ndr, "credential", r->in.credential);
8598 ndr->depth++;
8599 if (r->in.credential) {
8600 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8602 ndr->depth--;
8603 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8604 ndr->depth++;
8605 if (r->in.return_authenticator) {
8606 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8608 ndr->depth--;
8609 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
8610 ndr_print_ptr(ndr, "logon", r->in.logon);
8611 ndr->depth++;
8612 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
8613 ndr_print_netr_LogonInfo(ndr, "logon", r->in.logon);
8614 ndr->depth--;
8615 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
8616 ndr->depth--;
8618 if (flags & NDR_OUT) {
8619 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
8620 ndr->depth++;
8621 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8622 ndr->depth++;
8623 if (r->out.return_authenticator) {
8624 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8626 ndr->depth--;
8627 ndr_print_ptr(ndr, "validation", r->out.validation);
8628 ndr->depth++;
8629 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
8630 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
8631 ndr->depth--;
8632 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
8633 ndr->depth++;
8634 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
8635 ndr->depth--;
8636 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8637 ndr->depth--;
8639 ndr->depth--;
8642 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
8644 if (flags & NDR_IN) {
8645 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8646 if (r->in.server_name) {
8647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8650 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));
8652 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8653 if (r->in.computer_name) {
8654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8657 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));
8659 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8660 if (r->in.credential) {
8661 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8663 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8664 if (r->in.return_authenticator) {
8665 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8667 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
8668 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8669 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8671 if (flags & NDR_OUT) {
8672 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8673 if (r->out.return_authenticator) {
8674 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8676 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8678 return NDR_ERR_SUCCESS;
8681 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
8683 uint32_t _ptr_server_name;
8684 uint32_t _ptr_computer_name;
8685 uint32_t _ptr_credential;
8686 uint32_t _ptr_return_authenticator;
8687 TALLOC_CTX *_mem_save_server_name_0;
8688 TALLOC_CTX *_mem_save_computer_name_0;
8689 TALLOC_CTX *_mem_save_credential_0;
8690 TALLOC_CTX *_mem_save_return_authenticator_0;
8691 if (flags & NDR_IN) {
8692 ZERO_STRUCT(r->out);
8694 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8695 if (_ptr_server_name) {
8696 NDR_PULL_ALLOC(ndr, r->in.server_name);
8697 } else {
8698 r->in.server_name = NULL;
8700 if (r->in.server_name) {
8701 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8702 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8703 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8704 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8705 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8706 return 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));
8708 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8709 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));
8710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8713 if (_ptr_computer_name) {
8714 NDR_PULL_ALLOC(ndr, r->in.computer_name);
8715 } else {
8716 r->in.computer_name = NULL;
8718 if (r->in.computer_name) {
8719 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8720 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8721 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8722 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8723 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8724 return 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));
8726 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8727 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));
8728 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8730 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8731 if (_ptr_credential) {
8732 NDR_PULL_ALLOC(ndr, r->in.credential);
8733 } else {
8734 r->in.credential = NULL;
8736 if (r->in.credential) {
8737 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8738 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8739 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8740 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8742 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8743 if (_ptr_return_authenticator) {
8744 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8745 } else {
8746 r->in.return_authenticator = NULL;
8748 if (r->in.return_authenticator) {
8749 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8750 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8751 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8754 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
8755 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8756 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8758 if (flags & NDR_OUT) {
8759 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8760 if (_ptr_return_authenticator) {
8761 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8762 } else {
8763 r->out.return_authenticator = NULL;
8765 if (r->out.return_authenticator) {
8766 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8767 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8768 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8769 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8771 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8773 return NDR_ERR_SUCCESS;
8776 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
8778 ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
8779 ndr->depth++;
8780 if (flags & NDR_SET_VALUES) {
8781 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8783 if (flags & NDR_IN) {
8784 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
8785 ndr->depth++;
8786 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8787 ndr->depth++;
8788 if (r->in.server_name) {
8789 ndr_print_string(ndr, "server_name", r->in.server_name);
8791 ndr->depth--;
8792 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8793 ndr->depth++;
8794 if (r->in.computer_name) {
8795 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8797 ndr->depth--;
8798 ndr_print_ptr(ndr, "credential", r->in.credential);
8799 ndr->depth++;
8800 if (r->in.credential) {
8801 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8803 ndr->depth--;
8804 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8805 ndr->depth++;
8806 if (r->in.return_authenticator) {
8807 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8809 ndr->depth--;
8810 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
8811 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8812 ndr_print_netr_LogonInfo(ndr, "logon", &r->in.logon);
8813 ndr->depth--;
8815 if (flags & NDR_OUT) {
8816 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
8817 ndr->depth++;
8818 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8819 ndr->depth++;
8820 if (r->out.return_authenticator) {
8821 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8823 ndr->depth--;
8824 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8825 ndr->depth--;
8827 ndr->depth--;
8830 static enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
8832 if (flags & NDR_IN) {
8833 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8834 if (r->in.server_name) {
8835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8838 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));
8840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8843 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));
8844 if (r->in.credentials == NULL) {
8845 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8847 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8849 if (flags & NDR_OUT) {
8850 if (r->out.return_credentials == NULL) {
8851 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8853 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8854 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8856 return NDR_ERR_SUCCESS;
8859 static enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
8861 uint32_t _ptr_server_name;
8862 TALLOC_CTX *_mem_save_server_name_0;
8863 TALLOC_CTX *_mem_save_credentials_0;
8864 TALLOC_CTX *_mem_save_return_credentials_0;
8865 if (flags & NDR_IN) {
8866 ZERO_STRUCT(r->out);
8868 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8869 if (_ptr_server_name) {
8870 NDR_PULL_ALLOC(ndr, r->in.server_name);
8871 } else {
8872 r->in.server_name = NULL;
8874 if (r->in.server_name) {
8875 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8876 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8877 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8878 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8879 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8880 return 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));
8882 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8883 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));
8884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8886 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8887 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8888 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8889 return 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));
8891 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8892 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));
8893 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8894 NDR_PULL_ALLOC(ndr, r->in.credentials);
8896 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8897 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8898 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8900 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8901 ZERO_STRUCTP(r->out.return_credentials);
8903 if (flags & NDR_OUT) {
8904 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8905 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8907 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8908 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
8909 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8911 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8913 return NDR_ERR_SUCCESS;
8916 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
8918 ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
8919 ndr->depth++;
8920 if (flags & NDR_SET_VALUES) {
8921 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8923 if (flags & NDR_IN) {
8924 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
8925 ndr->depth++;
8926 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8927 ndr->depth++;
8928 if (r->in.server_name) {
8929 ndr_print_string(ndr, "server_name", r->in.server_name);
8931 ndr->depth--;
8932 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8933 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8934 ndr->depth++;
8935 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8936 ndr->depth--;
8937 ndr->depth--;
8939 if (flags & NDR_OUT) {
8940 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
8941 ndr->depth++;
8942 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
8943 ndr->depth++;
8944 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
8945 ndr->depth--;
8946 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8947 ndr->depth--;
8949 ndr->depth--;
8952 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
8954 if (flags & NDR_IN) {
8955 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8956 if (r->in.server_name) {
8957 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8960 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));
8962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8965 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));
8966 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8970 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));
8971 if (r->in.credentials == NULL) {
8972 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8974 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8976 if (flags & NDR_OUT) {
8977 if (r->out.return_credentials == NULL) {
8978 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8980 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8981 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8983 return NDR_ERR_SUCCESS;
8986 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
8988 uint32_t _ptr_server_name;
8989 TALLOC_CTX *_mem_save_server_name_0;
8990 TALLOC_CTX *_mem_save_credentials_0;
8991 TALLOC_CTX *_mem_save_return_credentials_0;
8992 if (flags & NDR_IN) {
8993 ZERO_STRUCT(r->out);
8995 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8996 if (_ptr_server_name) {
8997 NDR_PULL_ALLOC(ndr, r->in.server_name);
8998 } else {
8999 r->in.server_name = NULL;
9001 if (r->in.server_name) {
9002 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9003 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9004 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9005 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9006 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9007 return 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));
9009 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9010 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));
9011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9013 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9014 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9015 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9016 return 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));
9018 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9019 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));
9020 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
9021 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9022 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9023 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9024 return 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));
9026 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9027 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));
9028 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9029 NDR_PULL_ALLOC(ndr, r->in.credentials);
9031 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9032 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
9033 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9035 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9036 ZERO_STRUCTP(r->out.return_credentials);
9038 if (flags & NDR_OUT) {
9039 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9040 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9042 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9043 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
9044 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9045 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9046 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9048 return NDR_ERR_SUCCESS;
9051 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
9053 ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
9054 ndr->depth++;
9055 if (flags & NDR_SET_VALUES) {
9056 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9058 if (flags & NDR_IN) {
9059 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
9060 ndr->depth++;
9061 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9062 ndr->depth++;
9063 if (r->in.server_name) {
9064 ndr_print_string(ndr, "server_name", r->in.server_name);
9066 ndr->depth--;
9067 ndr_print_string(ndr, "account_name", r->in.account_name);
9068 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
9069 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9070 ndr_print_ptr(ndr, "credentials", r->in.credentials);
9071 ndr->depth++;
9072 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
9073 ndr->depth--;
9074 ndr->depth--;
9076 if (flags & NDR_OUT) {
9077 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
9078 ndr->depth++;
9079 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
9080 ndr->depth++;
9081 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
9082 ndr->depth--;
9083 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9084 ndr->depth--;
9086 ndr->depth--;
9089 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
9091 if (flags & NDR_IN) {
9092 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9093 if (r->in.server_name) {
9094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9097 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));
9099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9102 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));
9103 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
9104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9107 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));
9108 if (r->in.credential == NULL) {
9109 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9111 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9112 if (r->in.new_password == NULL) {
9113 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9115 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_password));
9117 if (flags & NDR_OUT) {
9118 if (r->out.return_authenticator == NULL) {
9119 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9121 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9122 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9124 return NDR_ERR_SUCCESS;
9127 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
9129 uint32_t _ptr_server_name;
9130 TALLOC_CTX *_mem_save_server_name_0;
9131 TALLOC_CTX *_mem_save_credential_0;
9132 TALLOC_CTX *_mem_save_return_authenticator_0;
9133 TALLOC_CTX *_mem_save_new_password_0;
9134 if (flags & NDR_IN) {
9135 ZERO_STRUCT(r->out);
9137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9138 if (_ptr_server_name) {
9139 NDR_PULL_ALLOC(ndr, r->in.server_name);
9140 } else {
9141 r->in.server_name = NULL;
9143 if (r->in.server_name) {
9144 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9145 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9146 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9147 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9148 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9149 return 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));
9151 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9152 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));
9153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9155 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9156 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9157 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9158 return 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));
9160 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9161 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));
9162 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
9163 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9164 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9165 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9166 return 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));
9168 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9169 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));
9170 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9171 NDR_PULL_ALLOC(ndr, r->in.credential);
9173 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9174 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
9175 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9176 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
9177 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9178 NDR_PULL_ALLOC(ndr, r->in.new_password);
9180 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
9181 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
9182 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_password));
9183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
9184 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9185 ZERO_STRUCTP(r->out.return_authenticator);
9187 if (flags & NDR_OUT) {
9188 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9189 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9191 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9192 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9193 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9195 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9197 return NDR_ERR_SUCCESS;
9200 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
9202 ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
9203 ndr->depth++;
9204 if (flags & NDR_SET_VALUES) {
9205 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9207 if (flags & NDR_IN) {
9208 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
9209 ndr->depth++;
9210 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9211 ndr->depth++;
9212 if (r->in.server_name) {
9213 ndr_print_string(ndr, "server_name", r->in.server_name);
9215 ndr->depth--;
9216 ndr_print_string(ndr, "account_name", r->in.account_name);
9217 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
9218 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9219 ndr_print_ptr(ndr, "credential", r->in.credential);
9220 ndr->depth++;
9221 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9222 ndr->depth--;
9223 ndr_print_ptr(ndr, "new_password", r->in.new_password);
9224 ndr->depth++;
9225 ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
9226 ndr->depth--;
9227 ndr->depth--;
9229 if (flags & NDR_OUT) {
9230 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
9231 ndr->depth++;
9232 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9233 ndr->depth++;
9234 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9235 ndr->depth--;
9236 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9237 ndr->depth--;
9239 ndr->depth--;
9242 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
9244 if (flags & NDR_IN) {
9245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9248 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));
9249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9252 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9253 if (r->in.credential == NULL) {
9254 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9256 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9257 if (r->in.return_authenticator == NULL) {
9258 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9260 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9261 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9262 if (r->in.sequence_num == NULL) {
9263 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9265 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
9266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9268 if (flags & NDR_OUT) {
9269 if (r->out.return_authenticator == NULL) {
9270 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9272 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9273 if (r->out.sequence_num == NULL) {
9274 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9276 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
9277 if (r->out.delta_enum_array == NULL) {
9278 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9280 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
9281 if (*r->out.delta_enum_array) {
9282 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9284 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9286 return NDR_ERR_SUCCESS;
9289 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
9291 uint32_t _ptr_delta_enum_array;
9292 TALLOC_CTX *_mem_save_credential_0;
9293 TALLOC_CTX *_mem_save_return_authenticator_0;
9294 TALLOC_CTX *_mem_save_sequence_num_0;
9295 TALLOC_CTX *_mem_save_delta_enum_array_0;
9296 TALLOC_CTX *_mem_save_delta_enum_array_1;
9297 if (flags & NDR_IN) {
9298 ZERO_STRUCT(r->out);
9300 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9301 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9302 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9303 return 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));
9305 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9306 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));
9307 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9308 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9309 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9310 return 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));
9312 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9313 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9314 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9315 NDR_PULL_ALLOC(ndr, r->in.credential);
9317 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9318 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
9319 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
9321 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9322 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9324 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9325 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9326 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9328 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9329 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9330 NDR_PULL_ALLOC(ndr, r->in.sequence_num);
9332 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9333 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9334 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
9335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9336 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9337 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9338 *r->out.return_authenticator = *r->in.return_authenticator;
9339 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9340 *r->out.sequence_num = *r->in.sequence_num;
9341 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9342 ZERO_STRUCTP(r->out.delta_enum_array);
9344 if (flags & NDR_OUT) {
9345 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9346 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9348 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9349 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9350 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9352 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9353 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9355 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9356 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9357 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
9358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9359 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9360 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9362 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9363 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9364 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
9365 if (_ptr_delta_enum_array) {
9366 NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
9367 } else {
9368 *r->out.delta_enum_array = NULL;
9370 if (*r->out.delta_enum_array) {
9371 _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
9372 NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
9373 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
9376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9377 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9379 return NDR_ERR_SUCCESS;
9382 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
9384 ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
9385 ndr->depth++;
9386 if (flags & NDR_SET_VALUES) {
9387 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9389 if (flags & NDR_IN) {
9390 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
9391 ndr->depth++;
9392 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9393 ndr_print_string(ndr, "computername", r->in.computername);
9394 ndr_print_ptr(ndr, "credential", r->in.credential);
9395 ndr->depth++;
9396 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9397 ndr->depth--;
9398 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9399 ndr->depth++;
9400 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9401 ndr->depth--;
9402 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9403 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
9404 ndr->depth++;
9405 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
9406 ndr->depth--;
9407 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9408 ndr->depth--;
9410 if (flags & NDR_OUT) {
9411 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
9412 ndr->depth++;
9413 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9414 ndr->depth++;
9415 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9416 ndr->depth--;
9417 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
9418 ndr->depth++;
9419 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
9420 ndr->depth--;
9421 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9422 ndr->depth++;
9423 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
9424 ndr->depth++;
9425 if (*r->out.delta_enum_array) {
9426 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
9428 ndr->depth--;
9429 ndr->depth--;
9430 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9431 ndr->depth--;
9433 ndr->depth--;
9436 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
9438 if (flags & NDR_IN) {
9439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9442 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));
9443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9446 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9447 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9448 if (r->in.return_authenticator == NULL) {
9449 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9451 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9452 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9453 if (r->in.sync_context == NULL) {
9454 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
9457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9459 if (flags & NDR_OUT) {
9460 if (r->out.return_authenticator == NULL) {
9461 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9463 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9464 if (r->out.sync_context == NULL) {
9465 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
9468 if (r->out.delta_enum_array == NULL) {
9469 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9471 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9472 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9474 return NDR_ERR_SUCCESS;
9477 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
9479 TALLOC_CTX *_mem_save_return_authenticator_0;
9480 TALLOC_CTX *_mem_save_sync_context_0;
9481 TALLOC_CTX *_mem_save_delta_enum_array_0;
9482 if (flags & NDR_IN) {
9483 ZERO_STRUCT(r->out);
9485 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9486 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9487 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9488 return 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));
9490 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9491 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));
9492 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9493 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9494 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9495 return 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));
9497 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9498 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9499 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9500 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9501 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9503 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9504 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9505 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9507 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9508 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9509 NDR_PULL_ALLOC(ndr, r->in.sync_context);
9511 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9512 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
9513 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
9514 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9515 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9516 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9517 *r->out.return_authenticator = *r->in.return_authenticator;
9518 NDR_PULL_ALLOC(ndr, r->out.sync_context);
9519 *r->out.sync_context = *r->in.sync_context;
9520 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9521 ZERO_STRUCTP(r->out.delta_enum_array);
9523 if (flags & NDR_OUT) {
9524 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9525 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9527 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9528 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9529 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9531 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9532 NDR_PULL_ALLOC(ndr, r->out.sync_context);
9534 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9535 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
9536 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
9537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9538 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9539 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9541 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9542 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9543 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9545 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9547 return NDR_ERR_SUCCESS;
9550 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
9552 ndr_print_struct(ndr, name, "netr_DatabaseSync");
9553 ndr->depth++;
9554 if (flags & NDR_SET_VALUES) {
9555 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9557 if (flags & NDR_IN) {
9558 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
9559 ndr->depth++;
9560 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9561 ndr_print_string(ndr, "computername", r->in.computername);
9562 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9563 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9564 ndr->depth++;
9565 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9566 ndr->depth--;
9567 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9568 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
9569 ndr->depth++;
9570 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
9571 ndr->depth--;
9572 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9573 ndr->depth--;
9575 if (flags & NDR_OUT) {
9576 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
9577 ndr->depth++;
9578 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9579 ndr->depth++;
9580 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9581 ndr->depth--;
9582 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
9583 ndr->depth++;
9584 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
9585 ndr->depth--;
9586 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9587 ndr->depth++;
9588 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
9589 ndr->depth--;
9590 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9591 ndr->depth--;
9593 ndr->depth--;
9596 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
9598 if (flags & NDR_IN) {
9599 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9600 if (r->in.logon_server) {
9601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9604 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));
9606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9609 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9610 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9611 if (r->in.return_authenticator == NULL) {
9612 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9614 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9615 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
9617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9620 if (flags & NDR_OUT) {
9621 if (r->out.return_authenticator == NULL) {
9622 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9624 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9625 if (r->out.buffer == NULL) {
9626 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9629 struct ndr_push *_ndr_buffer;
9630 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9631 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9632 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9634 if (r->out.count_returned == NULL) {
9635 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9638 if (r->out.total_entries == NULL) {
9639 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9642 if (r->out.recordid == NULL) {
9643 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9645 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9646 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9648 return NDR_ERR_SUCCESS;
9651 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
9653 uint32_t _ptr_logon_server;
9654 TALLOC_CTX *_mem_save_logon_server_0;
9655 TALLOC_CTX *_mem_save_return_authenticator_0;
9656 TALLOC_CTX *_mem_save_buffer_0;
9657 TALLOC_CTX *_mem_save_count_returned_0;
9658 TALLOC_CTX *_mem_save_total_entries_0;
9659 TALLOC_CTX *_mem_save_recordid_0;
9660 if (flags & NDR_IN) {
9661 ZERO_STRUCT(r->out);
9663 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9664 if (_ptr_logon_server) {
9665 NDR_PULL_ALLOC(ndr, r->in.logon_server);
9666 } else {
9667 r->in.logon_server = NULL;
9669 if (r->in.logon_server) {
9670 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9671 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9672 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9673 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9674 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9675 return 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));
9677 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9678 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));
9679 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9681 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9682 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9683 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9684 return 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));
9686 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9687 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9688 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9689 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9690 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9692 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9693 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9694 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9696 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9697 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
9698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9699 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9700 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9701 *r->out.return_authenticator = *r->in.return_authenticator;
9702 NDR_PULL_ALLOC(ndr, r->out.buffer);
9703 ZERO_STRUCTP(r->out.buffer);
9704 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9705 ZERO_STRUCTP(r->out.count_returned);
9706 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9707 ZERO_STRUCTP(r->out.total_entries);
9708 NDR_PULL_ALLOC(ndr, r->out.recordid);
9709 ZERO_STRUCTP(r->out.recordid);
9711 if (flags & NDR_OUT) {
9712 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9713 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9715 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9716 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9717 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9718 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9719 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9720 NDR_PULL_ALLOC(ndr, r->out.buffer);
9722 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9723 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9725 struct ndr_pull *_ndr_buffer;
9726 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9727 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9728 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9730 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9731 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9732 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9734 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9735 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9736 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9738 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9739 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9741 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9742 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9745 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9746 NDR_PULL_ALLOC(ndr, r->out.recordid);
9748 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9749 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9750 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9752 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9754 return NDR_ERR_SUCCESS;
9757 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
9759 ndr_print_struct(ndr, name, "netr_AccountDeltas");
9760 ndr->depth++;
9761 if (flags & NDR_SET_VALUES) {
9762 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9764 if (flags & NDR_IN) {
9765 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
9766 ndr->depth++;
9767 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9768 ndr->depth++;
9769 if (r->in.logon_server) {
9770 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9772 ndr->depth--;
9773 ndr_print_string(ndr, "computername", r->in.computername);
9774 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9775 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9776 ndr->depth++;
9777 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9778 ndr->depth--;
9779 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
9780 ndr_print_uint32(ndr, "count", r->in.count);
9781 ndr_print_uint32(ndr, "level", r->in.level);
9782 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9783 ndr->depth--;
9785 if (flags & NDR_OUT) {
9786 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
9787 ndr->depth++;
9788 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9789 ndr->depth++;
9790 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9791 ndr->depth--;
9792 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9793 ndr->depth++;
9794 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9795 ndr->depth--;
9796 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9797 ndr->depth++;
9798 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9799 ndr->depth--;
9800 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9801 ndr->depth++;
9802 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9803 ndr->depth--;
9804 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9805 ndr->depth++;
9806 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9807 ndr->depth--;
9808 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9809 ndr->depth--;
9811 ndr->depth--;
9814 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
9816 if (flags & NDR_IN) {
9817 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9818 if (r->in.logon_server) {
9819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9822 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));
9824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9827 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9828 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9829 if (r->in.return_authenticator == NULL) {
9830 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9832 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
9834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9836 if (r->in.recordid == NULL) {
9837 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9839 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9841 if (flags & NDR_OUT) {
9842 if (r->out.return_authenticator == NULL) {
9843 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9845 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9846 if (r->out.buffer == NULL) {
9847 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9850 struct ndr_push *_ndr_buffer;
9851 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9852 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9853 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9855 if (r->out.count_returned == NULL) {
9856 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9859 if (r->out.total_entries == NULL) {
9860 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9863 if (r->out.next_reference == NULL) {
9864 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
9867 if (r->out.recordid == NULL) {
9868 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9870 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9871 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9873 return NDR_ERR_SUCCESS;
9876 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
9878 uint32_t _ptr_logon_server;
9879 TALLOC_CTX *_mem_save_logon_server_0;
9880 TALLOC_CTX *_mem_save_return_authenticator_0;
9881 TALLOC_CTX *_mem_save_buffer_0;
9882 TALLOC_CTX *_mem_save_count_returned_0;
9883 TALLOC_CTX *_mem_save_total_entries_0;
9884 TALLOC_CTX *_mem_save_next_reference_0;
9885 TALLOC_CTX *_mem_save_recordid_0;
9886 if (flags & NDR_IN) {
9887 ZERO_STRUCT(r->out);
9889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9890 if (_ptr_logon_server) {
9891 NDR_PULL_ALLOC(ndr, r->in.logon_server);
9892 } else {
9893 r->in.logon_server = NULL;
9895 if (r->in.logon_server) {
9896 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9897 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9898 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9899 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9900 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9901 return 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));
9903 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9904 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));
9905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9907 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9908 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9909 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9910 return 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));
9912 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9913 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9914 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9915 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9916 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9918 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9919 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9920 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9922 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
9923 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9924 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9925 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9926 NDR_PULL_ALLOC(ndr, r->in.recordid);
9928 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9929 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
9930 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9932 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9933 *r->out.return_authenticator = *r->in.return_authenticator;
9934 NDR_PULL_ALLOC(ndr, r->out.buffer);
9935 ZERO_STRUCTP(r->out.buffer);
9936 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9937 ZERO_STRUCTP(r->out.count_returned);
9938 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9939 ZERO_STRUCTP(r->out.total_entries);
9940 NDR_PULL_ALLOC(ndr, r->out.next_reference);
9941 ZERO_STRUCTP(r->out.next_reference);
9942 NDR_PULL_ALLOC(ndr, r->out.recordid);
9943 *r->out.recordid = *r->in.recordid;
9945 if (flags & NDR_OUT) {
9946 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9947 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9949 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9950 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9951 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9953 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9954 NDR_PULL_ALLOC(ndr, r->out.buffer);
9956 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9957 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9959 struct ndr_pull *_ndr_buffer;
9960 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9961 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9962 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9965 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9966 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9968 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9969 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9970 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9972 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9973 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9975 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9976 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9977 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9979 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9980 NDR_PULL_ALLOC(ndr, r->out.next_reference);
9982 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
9983 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
9984 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
9985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
9986 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9987 NDR_PULL_ALLOC(ndr, r->out.recordid);
9989 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9990 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9991 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9993 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9995 return NDR_ERR_SUCCESS;
9998 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
10000 ndr_print_struct(ndr, name, "netr_AccountSync");
10001 ndr->depth++;
10002 if (flags & NDR_SET_VALUES) {
10003 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10005 if (flags & NDR_IN) {
10006 ndr_print_struct(ndr, "in", "netr_AccountSync");
10007 ndr->depth++;
10008 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10009 ndr->depth++;
10010 if (r->in.logon_server) {
10011 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10013 ndr->depth--;
10014 ndr_print_string(ndr, "computername", r->in.computername);
10015 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10016 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10017 ndr->depth++;
10018 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10019 ndr->depth--;
10020 ndr_print_uint32(ndr, "reference", r->in.reference);
10021 ndr_print_uint32(ndr, "level", r->in.level);
10022 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
10023 ndr_print_ptr(ndr, "recordid", r->in.recordid);
10024 ndr->depth++;
10025 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
10026 ndr->depth--;
10027 ndr->depth--;
10029 if (flags & NDR_OUT) {
10030 ndr_print_struct(ndr, "out", "netr_AccountSync");
10031 ndr->depth++;
10032 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10033 ndr->depth++;
10034 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10035 ndr->depth--;
10036 ndr_print_ptr(ndr, "buffer", r->out.buffer);
10037 ndr->depth++;
10038 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
10039 ndr->depth--;
10040 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
10041 ndr->depth++;
10042 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
10043 ndr->depth--;
10044 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
10045 ndr->depth++;
10046 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
10047 ndr->depth--;
10048 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
10049 ndr->depth++;
10050 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
10051 ndr->depth--;
10052 ndr_print_ptr(ndr, "recordid", r->out.recordid);
10053 ndr->depth++;
10054 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
10055 ndr->depth--;
10056 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10057 ndr->depth--;
10059 ndr->depth--;
10062 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
10064 if (flags & NDR_IN) {
10065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10068 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));
10069 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10070 if (r->in.domainname) {
10071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10074 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10077 if (flags & NDR_OUT) {
10078 if (r->out.dcname == NULL) {
10079 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10081 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10082 if (*r->out.dcname) {
10083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10086 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10088 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10090 return NDR_ERR_SUCCESS;
10093 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
10095 uint32_t _ptr_domainname;
10096 uint32_t _ptr_dcname;
10097 TALLOC_CTX *_mem_save_domainname_0;
10098 TALLOC_CTX *_mem_save_dcname_0;
10099 TALLOC_CTX *_mem_save_dcname_1;
10100 if (flags & NDR_IN) {
10101 ZERO_STRUCT(r->out);
10103 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10104 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10105 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10106 return 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));
10108 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10109 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));
10110 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
10111 if (_ptr_domainname) {
10112 NDR_PULL_ALLOC(ndr, r->in.domainname);
10113 } else {
10114 r->in.domainname = NULL;
10116 if (r->in.domainname) {
10117 _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10118 NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
10119 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
10120 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
10121 if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
10122 return 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));
10124 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
10125 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
10126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
10128 NDR_PULL_ALLOC(ndr, r->out.dcname);
10129 ZERO_STRUCTP(r->out.dcname);
10131 if (flags & NDR_OUT) {
10132 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10133 NDR_PULL_ALLOC(ndr, r->out.dcname);
10135 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10136 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
10137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
10138 if (_ptr_dcname) {
10139 NDR_PULL_ALLOC(ndr, *r->out.dcname);
10140 } else {
10141 *r->out.dcname = NULL;
10143 if (*r->out.dcname) {
10144 _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
10145 NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
10146 NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
10147 NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
10148 if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
10149 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.dcname), ndr_get_array_length(ndr, r->out.dcname));
10151 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
10152 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
10153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
10155 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
10156 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10158 return NDR_ERR_SUCCESS;
10161 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
10163 ndr_print_struct(ndr, name, "netr_GetDcName");
10164 ndr->depth++;
10165 if (flags & NDR_SET_VALUES) {
10166 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10168 if (flags & NDR_IN) {
10169 ndr_print_struct(ndr, "in", "netr_GetDcName");
10170 ndr->depth++;
10171 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10172 ndr_print_ptr(ndr, "domainname", r->in.domainname);
10173 ndr->depth++;
10174 if (r->in.domainname) {
10175 ndr_print_string(ndr, "domainname", r->in.domainname);
10177 ndr->depth--;
10178 ndr->depth--;
10180 if (flags & NDR_OUT) {
10181 ndr_print_struct(ndr, "out", "netr_GetDcName");
10182 ndr->depth++;
10183 ndr_print_ptr(ndr, "dcname", r->out.dcname);
10184 ndr->depth++;
10185 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
10186 ndr->depth++;
10187 if (*r->out.dcname) {
10188 ndr_print_string(ndr, "dcname", *r->out.dcname);
10190 ndr->depth--;
10191 ndr->depth--;
10192 ndr_print_WERROR(ndr, "result", r->out.result);
10193 ndr->depth--;
10195 ndr->depth--;
10198 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
10200 if (flags & NDR_IN) {
10201 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10202 if (r->in.logon_server) {
10203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, 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.logon_server, CH_UTF16)));
10206 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));
10208 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
10209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10211 if (flags & NDR_OUT) {
10212 if (r->out.info == NULL) {
10213 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10215 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
10216 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10217 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10219 return NDR_ERR_SUCCESS;
10222 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
10224 uint32_t _ptr_logon_server;
10225 TALLOC_CTX *_mem_save_logon_server_0;
10226 TALLOC_CTX *_mem_save_info_0;
10227 if (flags & NDR_IN) {
10228 ZERO_STRUCT(r->out);
10230 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10231 if (_ptr_logon_server) {
10232 NDR_PULL_ALLOC(ndr, r->in.logon_server);
10233 } else {
10234 r->in.logon_server = NULL;
10236 if (r->in.logon_server) {
10237 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10238 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10239 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10240 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10241 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10242 return 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));
10244 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10245 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));
10246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10248 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10249 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10250 NDR_PULL_ALLOC(ndr, r->out.info);
10251 ZERO_STRUCTP(r->out.info);
10253 if (flags & NDR_OUT) {
10254 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10255 NDR_PULL_ALLOC(ndr, r->out.info);
10257 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10258 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10259 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
10260 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10261 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10262 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10264 return NDR_ERR_SUCCESS;
10267 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
10269 ndr_print_struct(ndr, name, "netr_LogonControl");
10270 ndr->depth++;
10271 if (flags & NDR_SET_VALUES) {
10272 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10274 if (flags & NDR_IN) {
10275 ndr_print_struct(ndr, "in", "netr_LogonControl");
10276 ndr->depth++;
10277 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10278 ndr->depth++;
10279 if (r->in.logon_server) {
10280 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10282 ndr->depth--;
10283 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10284 ndr_print_uint32(ndr, "level", r->in.level);
10285 ndr->depth--;
10287 if (flags & NDR_OUT) {
10288 ndr_print_struct(ndr, "out", "netr_LogonControl");
10289 ndr->depth++;
10290 ndr_print_ptr(ndr, "info", r->out.info);
10291 ndr->depth++;
10292 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10293 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
10294 ndr->depth--;
10295 ndr_print_WERROR(ndr, "result", r->out.result);
10296 ndr->depth--;
10298 ndr->depth--;
10301 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
10303 if (flags & NDR_IN) {
10304 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10305 if (r->in.logon_server) {
10306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10309 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));
10311 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10312 if (r->in.domainname) {
10313 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10316 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10319 if (flags & NDR_OUT) {
10320 if (r->out.dcname == NULL) {
10321 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10323 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10324 if (*r->out.dcname) {
10325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10328 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10330 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10332 return NDR_ERR_SUCCESS;
10335 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
10337 uint32_t _ptr_logon_server;
10338 uint32_t _ptr_domainname;
10339 uint32_t _ptr_dcname;
10340 TALLOC_CTX *_mem_save_logon_server_0;
10341 TALLOC_CTX *_mem_save_domainname_0;
10342 TALLOC_CTX *_mem_save_dcname_0;
10343 TALLOC_CTX *_mem_save_dcname_1;
10344 if (flags & NDR_IN) {
10345 ZERO_STRUCT(r->out);
10347 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10348 if (_ptr_logon_server) {
10349 NDR_PULL_ALLOC(ndr, r->in.logon_server);
10350 } else {
10351 r->in.logon_server = NULL;
10353 if (r->in.logon_server) {
10354 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10355 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10356 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10357 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10358 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10359 return 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));
10361 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10362 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));
10363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
10366 if (_ptr_domainname) {
10367 NDR_PULL_ALLOC(ndr, r->in.domainname);
10368 } else {
10369 r->in.domainname = NULL;
10371 if (r->in.domainname) {
10372 _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10373 NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
10374 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
10375 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
10376 if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
10377 return 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));
10379 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
10380 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
10381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
10383 NDR_PULL_ALLOC(ndr, r->out.dcname);
10384 ZERO_STRUCTP(r->out.dcname);
10386 if (flags & NDR_OUT) {
10387 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10388 NDR_PULL_ALLOC(ndr, r->out.dcname);
10390 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10391 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
10392 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
10393 if (_ptr_dcname) {
10394 NDR_PULL_ALLOC(ndr, *r->out.dcname);
10395 } else {
10396 *r->out.dcname = NULL;
10398 if (*r->out.dcname) {
10399 _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
10400 NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
10401 NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
10402 NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
10403 if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
10404 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));
10406 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
10407 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
10408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
10410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
10411 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10413 return NDR_ERR_SUCCESS;
10416 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
10418 ndr_print_struct(ndr, name, "netr_GetAnyDCName");
10419 ndr->depth++;
10420 if (flags & NDR_SET_VALUES) {
10421 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10423 if (flags & NDR_IN) {
10424 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
10425 ndr->depth++;
10426 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10427 ndr->depth++;
10428 if (r->in.logon_server) {
10429 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10431 ndr->depth--;
10432 ndr_print_ptr(ndr, "domainname", r->in.domainname);
10433 ndr->depth++;
10434 if (r->in.domainname) {
10435 ndr_print_string(ndr, "domainname", r->in.domainname);
10437 ndr->depth--;
10438 ndr->depth--;
10440 if (flags & NDR_OUT) {
10441 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
10442 ndr->depth++;
10443 ndr_print_ptr(ndr, "dcname", r->out.dcname);
10444 ndr->depth++;
10445 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
10446 ndr->depth++;
10447 if (*r->out.dcname) {
10448 ndr_print_string(ndr, "dcname", *r->out.dcname);
10450 ndr->depth--;
10451 ndr->depth--;
10452 ndr_print_WERROR(ndr, "result", r->out.result);
10453 ndr->depth--;
10455 ndr->depth--;
10458 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
10460 if (flags & NDR_IN) {
10461 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10462 if (r->in.logon_server) {
10463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10466 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));
10468 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
10469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10470 if (r->in.data == NULL) {
10471 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10473 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
10474 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10476 if (flags & NDR_OUT) {
10477 if (r->out.query == NULL) {
10478 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10480 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10481 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10482 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10484 return NDR_ERR_SUCCESS;
10487 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
10489 uint32_t _ptr_logon_server;
10490 TALLOC_CTX *_mem_save_logon_server_0;
10491 TALLOC_CTX *_mem_save_data_0;
10492 TALLOC_CTX *_mem_save_query_0;
10493 if (flags & NDR_IN) {
10494 ZERO_STRUCT(r->out);
10496 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10497 if (_ptr_logon_server) {
10498 NDR_PULL_ALLOC(ndr, r->in.logon_server);
10499 } else {
10500 r->in.logon_server = NULL;
10502 if (r->in.logon_server) {
10503 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10504 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10505 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10506 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10507 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10508 return 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));
10510 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10511 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));
10512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10514 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10515 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10516 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10517 NDR_PULL_ALLOC(ndr, r->in.data);
10519 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
10520 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
10521 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
10522 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
10524 NDR_PULL_ALLOC(ndr, r->out.query);
10525 ZERO_STRUCTP(r->out.query);
10527 if (flags & NDR_OUT) {
10528 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10529 NDR_PULL_ALLOC(ndr, r->out.query);
10531 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10532 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10533 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10534 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10536 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10538 return NDR_ERR_SUCCESS;
10541 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
10543 ndr_print_struct(ndr, name, "netr_LogonControl2");
10544 ndr->depth++;
10545 if (flags & NDR_SET_VALUES) {
10546 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10548 if (flags & NDR_IN) {
10549 ndr_print_struct(ndr, "in", "netr_LogonControl2");
10550 ndr->depth++;
10551 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10552 ndr->depth++;
10553 if (r->in.logon_server) {
10554 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10556 ndr->depth--;
10557 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10558 ndr_print_uint32(ndr, "level", r->in.level);
10559 ndr_print_ptr(ndr, "data", r->in.data);
10560 ndr->depth++;
10561 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
10562 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
10563 ndr->depth--;
10564 ndr->depth--;
10566 if (flags & NDR_OUT) {
10567 ndr_print_struct(ndr, "out", "netr_LogonControl2");
10568 ndr->depth++;
10569 ndr_print_ptr(ndr, "query", r->out.query);
10570 ndr->depth++;
10571 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10572 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10573 ndr->depth--;
10574 ndr_print_WERROR(ndr, "result", r->out.result);
10575 ndr->depth--;
10577 ndr->depth--;
10580 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
10582 if (flags & NDR_IN) {
10583 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10584 if (r->in.server_name) {
10585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10588 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));
10590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10593 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));
10594 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10598 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));
10599 if (r->in.credentials == NULL) {
10600 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10602 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10603 if (r->in.negotiate_flags == NULL) {
10604 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10606 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
10608 if (flags & NDR_OUT) {
10609 if (r->out.return_credentials == NULL) {
10610 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10612 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10613 if (r->out.negotiate_flags == NULL) {
10614 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10616 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
10617 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10619 return NDR_ERR_SUCCESS;
10622 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
10624 uint32_t _ptr_server_name;
10625 TALLOC_CTX *_mem_save_server_name_0;
10626 TALLOC_CTX *_mem_save_credentials_0;
10627 TALLOC_CTX *_mem_save_return_credentials_0;
10628 TALLOC_CTX *_mem_save_negotiate_flags_0;
10629 if (flags & NDR_IN) {
10630 ZERO_STRUCT(r->out);
10632 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10633 if (_ptr_server_name) {
10634 NDR_PULL_ALLOC(ndr, r->in.server_name);
10635 } else {
10636 r->in.server_name = NULL;
10638 if (r->in.server_name) {
10639 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10640 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10641 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10642 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10643 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10644 return 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));
10646 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10647 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));
10648 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10650 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10651 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10652 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10653 return 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));
10655 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10656 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));
10657 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10658 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10659 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10660 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10661 return 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));
10663 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10664 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));
10665 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10666 NDR_PULL_ALLOC(ndr, r->in.credentials);
10668 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10669 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10670 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10672 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10673 NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
10675 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10676 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10677 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
10678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10679 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10680 ZERO_STRUCTP(r->out.return_credentials);
10681 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10682 *r->out.negotiate_flags = *r->in.negotiate_flags;
10684 if (flags & NDR_OUT) {
10685 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10686 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10688 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10689 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
10690 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10692 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10693 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10695 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10696 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10697 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
10698 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10699 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10701 return NDR_ERR_SUCCESS;
10704 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
10706 ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
10707 ndr->depth++;
10708 if (flags & NDR_SET_VALUES) {
10709 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10711 if (flags & NDR_IN) {
10712 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
10713 ndr->depth++;
10714 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10715 ndr->depth++;
10716 if (r->in.server_name) {
10717 ndr_print_string(ndr, "server_name", r->in.server_name);
10719 ndr->depth--;
10720 ndr_print_string(ndr, "account_name", r->in.account_name);
10721 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10722 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10723 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10724 ndr->depth++;
10725 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10726 ndr->depth--;
10727 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
10728 ndr->depth++;
10729 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
10730 ndr->depth--;
10731 ndr->depth--;
10733 if (flags & NDR_OUT) {
10734 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
10735 ndr->depth++;
10736 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
10737 ndr->depth++;
10738 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
10739 ndr->depth--;
10740 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
10741 ndr->depth++;
10742 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
10743 ndr->depth--;
10744 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10745 ndr->depth--;
10747 ndr->depth--;
10750 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
10752 if (flags & NDR_IN) {
10753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10755 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10756 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));
10757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10760 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10761 if (r->in.credential == NULL) {
10762 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10764 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10765 if (r->in.return_authenticator == NULL) {
10766 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10768 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10769 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10770 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
10771 if (r->in.sync_context == NULL) {
10772 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10777 if (flags & NDR_OUT) {
10778 if (r->out.return_authenticator == NULL) {
10779 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10781 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10782 if (r->out.sync_context == NULL) {
10783 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10786 if (r->out.delta_enum_array == NULL) {
10787 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10789 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10790 if (*r->out.delta_enum_array) {
10791 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10793 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10795 return NDR_ERR_SUCCESS;
10798 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
10800 uint32_t _ptr_delta_enum_array;
10801 TALLOC_CTX *_mem_save_credential_0;
10802 TALLOC_CTX *_mem_save_return_authenticator_0;
10803 TALLOC_CTX *_mem_save_sync_context_0;
10804 TALLOC_CTX *_mem_save_delta_enum_array_0;
10805 TALLOC_CTX *_mem_save_delta_enum_array_1;
10806 if (flags & NDR_IN) {
10807 ZERO_STRUCT(r->out);
10809 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10810 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10811 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10812 return 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));
10814 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10815 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));
10816 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10817 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10818 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10819 return 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));
10821 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10822 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10823 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10824 NDR_PULL_ALLOC(ndr, r->in.credential);
10826 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10827 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10828 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10829 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10830 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10831 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10833 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10834 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10835 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10837 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10838 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
10839 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10840 NDR_PULL_ALLOC(ndr, r->in.sync_context);
10842 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10843 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10844 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10846 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10847 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10848 *r->out.return_authenticator = *r->in.return_authenticator;
10849 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10850 *r->out.sync_context = *r->in.sync_context;
10851 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10852 ZERO_STRUCTP(r->out.delta_enum_array);
10854 if (flags & NDR_OUT) {
10855 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10856 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10858 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10859 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10860 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10862 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10863 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10865 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10866 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10868 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10869 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10870 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10872 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10873 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10874 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10875 if (_ptr_delta_enum_array) {
10876 NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10877 } else {
10878 *r->out.delta_enum_array = NULL;
10880 if (*r->out.delta_enum_array) {
10881 _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10882 NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10883 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10887 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10889 return NDR_ERR_SUCCESS;
10892 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
10894 ndr_print_struct(ndr, name, "netr_DatabaseSync2");
10895 ndr->depth++;
10896 if (flags & NDR_SET_VALUES) {
10897 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10899 if (flags & NDR_IN) {
10900 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
10901 ndr->depth++;
10902 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10903 ndr_print_string(ndr, "computername", r->in.computername);
10904 ndr_print_ptr(ndr, "credential", r->in.credential);
10905 ndr->depth++;
10906 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10907 ndr->depth--;
10908 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10909 ndr->depth++;
10910 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10911 ndr->depth--;
10912 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10913 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
10914 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10915 ndr->depth++;
10916 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10917 ndr->depth--;
10918 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10919 ndr->depth--;
10921 if (flags & NDR_OUT) {
10922 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
10923 ndr->depth++;
10924 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10925 ndr->depth++;
10926 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10927 ndr->depth--;
10928 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10929 ndr->depth++;
10930 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10931 ndr->depth--;
10932 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10933 ndr->depth++;
10934 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10935 ndr->depth++;
10936 if (*r->out.delta_enum_array) {
10937 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10939 ndr->depth--;
10940 ndr->depth--;
10941 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10942 ndr->depth--;
10944 ndr->depth--;
10947 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
10949 if (flags & NDR_IN) {
10950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10952 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10953 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));
10954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10956 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10957 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10958 if (r->in.credential == NULL) {
10959 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10961 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10962 if (r->in.return_authenticator == NULL) {
10963 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10965 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10967 struct ndr_push *_ndr_change_log_entry;
10968 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->flags)));
10969 NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
10970 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->flags)));
10972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->flags)));
10974 if (flags & NDR_OUT) {
10975 if (r->out.return_authenticator == NULL) {
10976 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10978 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10979 if (r->out.delta_enum_array == NULL) {
10980 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10982 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10983 if (*r->out.delta_enum_array) {
10984 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10986 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10988 return NDR_ERR_SUCCESS;
10991 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
10993 uint32_t _ptr_delta_enum_array;
10994 TALLOC_CTX *_mem_save_credential_0;
10995 TALLOC_CTX *_mem_save_return_authenticator_0;
10996 TALLOC_CTX *_mem_save_delta_enum_array_0;
10997 TALLOC_CTX *_mem_save_delta_enum_array_1;
10998 if (flags & NDR_IN) {
10999 ZERO_STRUCT(r->out);
11001 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11002 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11003 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11004 return 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));
11006 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11007 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));
11008 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
11009 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
11010 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
11011 return 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));
11013 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
11014 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
11015 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11016 NDR_PULL_ALLOC(ndr, r->in.credential);
11018 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
11019 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
11020 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
11022 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11023 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11025 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11026 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11027 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11030 struct ndr_pull *_ndr_change_log_entry;
11031 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_change_log_entry, 4, r->in.change_log_entry_size));
11032 NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
11033 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_change_log_entry, 4, r->in.change_log_entry_size));
11035 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
11036 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11037 *r->out.return_authenticator = *r->in.return_authenticator;
11038 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11039 ZERO_STRUCTP(r->out.delta_enum_array);
11041 if (flags & NDR_OUT) {
11042 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11043 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11045 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11046 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11047 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11049 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11050 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11052 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11053 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
11054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
11055 if (_ptr_delta_enum_array) {
11056 NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
11057 } else {
11058 *r->out.delta_enum_array = NULL;
11060 if (*r->out.delta_enum_array) {
11061 _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
11062 NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
11063 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11064 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
11066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
11067 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11069 return NDR_ERR_SUCCESS;
11072 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
11074 ndr_print_struct(ndr, name, "netr_DatabaseRedo");
11075 ndr->depth++;
11076 if (flags & NDR_SET_VALUES) {
11077 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11079 if (flags & NDR_IN) {
11080 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
11081 ndr->depth++;
11082 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11083 ndr_print_string(ndr, "computername", r->in.computername);
11084 ndr_print_ptr(ndr, "credential", r->in.credential);
11085 ndr->depth++;
11086 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
11087 ndr->depth--;
11088 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11089 ndr->depth++;
11090 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11091 ndr->depth--;
11092 ndr_print_netr_ChangeLogEntry(ndr, "change_log_entry", &r->in.change_log_entry);
11093 ndr_print_uint32(ndr, "change_log_entry_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->flags):r->in.change_log_entry_size);
11094 ndr->depth--;
11096 if (flags & NDR_OUT) {
11097 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
11098 ndr->depth++;
11099 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11100 ndr->depth++;
11101 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11102 ndr->depth--;
11103 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
11104 ndr->depth++;
11105 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
11106 ndr->depth++;
11107 if (*r->out.delta_enum_array) {
11108 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
11110 ndr->depth--;
11111 ndr->depth--;
11112 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11113 ndr->depth--;
11115 ndr->depth--;
11118 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
11120 if (flags & NDR_IN) {
11121 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11122 if (r->in.logon_server) {
11123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11126 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));
11128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
11129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11130 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
11131 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
11133 if (flags & NDR_OUT) {
11134 if (r->out.query == NULL) {
11135 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11137 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
11138 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11139 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11141 return NDR_ERR_SUCCESS;
11144 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
11146 uint32_t _ptr_logon_server;
11147 TALLOC_CTX *_mem_save_logon_server_0;
11148 TALLOC_CTX *_mem_save_query_0;
11149 if (flags & NDR_IN) {
11150 ZERO_STRUCT(r->out);
11152 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11153 if (_ptr_logon_server) {
11154 NDR_PULL_ALLOC(ndr, r->in.logon_server);
11155 } else {
11156 r->in.logon_server = NULL;
11158 if (r->in.logon_server) {
11159 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11160 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11161 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11162 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11163 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11164 return 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));
11166 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11167 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));
11168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
11171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11172 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
11173 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
11174 NDR_PULL_ALLOC(ndr, r->out.query);
11175 ZERO_STRUCTP(r->out.query);
11177 if (flags & NDR_OUT) {
11178 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11179 NDR_PULL_ALLOC(ndr, r->out.query);
11181 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
11182 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
11183 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
11184 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11185 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
11186 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11188 return NDR_ERR_SUCCESS;
11191 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
11193 ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
11194 ndr->depth++;
11195 if (flags & NDR_SET_VALUES) {
11196 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11198 if (flags & NDR_IN) {
11199 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
11200 ndr->depth++;
11201 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11202 ndr->depth++;
11203 if (r->in.logon_server) {
11204 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11206 ndr->depth--;
11207 ndr_print_uint32(ndr, "function_code", r->in.function_code);
11208 ndr_print_uint32(ndr, "level", r->in.level);
11209 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
11210 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
11211 ndr->depth--;
11213 if (flags & NDR_OUT) {
11214 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
11215 ndr->depth++;
11216 ndr_print_ptr(ndr, "query", r->out.query);
11217 ndr->depth++;
11218 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
11219 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
11220 ndr->depth--;
11221 ndr_print_WERROR(ndr, "result", r->out.result);
11222 ndr->depth--;
11224 ndr->depth--;
11227 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11229 if (flags & NDR_IN) {
11230 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11231 if (r->in.server_name) {
11232 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11235 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));
11238 if (flags & NDR_OUT) {
11239 if (r->out.trusted_domains_blob == NULL) {
11240 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11242 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11243 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11245 return NDR_ERR_SUCCESS;
11248 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
11250 uint32_t _ptr_server_name;
11251 TALLOC_CTX *_mem_save_server_name_0;
11252 TALLOC_CTX *_mem_save_trusted_domains_blob_0;
11253 if (flags & NDR_IN) {
11254 ZERO_STRUCT(r->out);
11256 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11257 if (_ptr_server_name) {
11258 NDR_PULL_ALLOC(ndr, r->in.server_name);
11259 } else {
11260 r->in.server_name = NULL;
11262 if (r->in.server_name) {
11263 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11264 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11265 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11266 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11267 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11268 return 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));
11270 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11271 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));
11272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11274 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11275 ZERO_STRUCTP(r->out.trusted_domains_blob);
11277 if (flags & NDR_OUT) {
11278 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11279 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11281 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
11282 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
11283 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11284 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
11285 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11287 return NDR_ERR_SUCCESS;
11290 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11292 ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
11293 ndr->depth++;
11294 if (flags & NDR_SET_VALUES) {
11295 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11297 if (flags & NDR_IN) {
11298 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
11299 ndr->depth++;
11300 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11301 ndr->depth++;
11302 if (r->in.server_name) {
11303 ndr_print_string(ndr, "server_name", r->in.server_name);
11305 ndr->depth--;
11306 ndr->depth--;
11308 if (flags & NDR_OUT) {
11309 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
11310 ndr->depth++;
11311 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11312 ndr->depth++;
11313 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11314 ndr->depth--;
11315 ndr_print_WERROR(ndr, "result", r->out.result);
11316 ndr->depth--;
11318 ndr->depth--;
11321 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
11323 if (flags & NDR_IN) {
11324 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11325 if (r->in.server_unc) {
11326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11329 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));
11331 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11332 if (r->in.domain_name) {
11333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11336 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));
11338 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11339 if (r->in.domain_guid) {
11340 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11342 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
11343 if (r->in.site_guid) {
11344 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
11346 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11348 if (flags & NDR_OUT) {
11349 if (r->out.info == NULL) {
11350 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11352 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11353 if (*r->out.info) {
11354 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11356 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11358 return NDR_ERR_SUCCESS;
11361 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
11363 uint32_t _ptr_server_unc;
11364 uint32_t _ptr_domain_name;
11365 uint32_t _ptr_domain_guid;
11366 uint32_t _ptr_site_guid;
11367 uint32_t _ptr_info;
11368 TALLOC_CTX *_mem_save_server_unc_0;
11369 TALLOC_CTX *_mem_save_domain_name_0;
11370 TALLOC_CTX *_mem_save_domain_guid_0;
11371 TALLOC_CTX *_mem_save_site_guid_0;
11372 TALLOC_CTX *_mem_save_info_0;
11373 TALLOC_CTX *_mem_save_info_1;
11374 if (flags & NDR_IN) {
11375 ZERO_STRUCT(r->out);
11377 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11378 if (_ptr_server_unc) {
11379 NDR_PULL_ALLOC(ndr, r->in.server_unc);
11380 } else {
11381 r->in.server_unc = NULL;
11383 if (r->in.server_unc) {
11384 _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11385 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11386 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11387 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11388 if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11389 return 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));
11391 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11392 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));
11393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11395 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11396 if (_ptr_domain_name) {
11397 NDR_PULL_ALLOC(ndr, r->in.domain_name);
11398 } else {
11399 r->in.domain_name = NULL;
11401 if (r->in.domain_name) {
11402 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11403 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11404 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11405 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11406 if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11407 return 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));
11409 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11410 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));
11411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11413 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11414 if (_ptr_domain_guid) {
11415 NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11416 } else {
11417 r->in.domain_guid = NULL;
11419 if (r->in.domain_guid) {
11420 _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11421 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11422 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11425 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
11426 if (_ptr_site_guid) {
11427 NDR_PULL_ALLOC(ndr, r->in.site_guid);
11428 } else {
11429 r->in.site_guid = NULL;
11431 if (r->in.site_guid) {
11432 _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11433 NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
11434 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
11435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
11437 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11438 NDR_PULL_ALLOC(ndr, r->out.info);
11439 ZERO_STRUCTP(r->out.info);
11441 if (flags & NDR_OUT) {
11442 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11443 NDR_PULL_ALLOC(ndr, r->out.info);
11445 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11446 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11448 if (_ptr_info) {
11449 NDR_PULL_ALLOC(ndr, *r->out.info);
11450 } else {
11451 *r->out.info = NULL;
11453 if (*r->out.info) {
11454 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11455 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11456 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11459 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11460 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11462 return NDR_ERR_SUCCESS;
11465 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
11467 ndr_print_struct(ndr, name, "netr_DsRGetDCName");
11468 ndr->depth++;
11469 if (flags & NDR_SET_VALUES) {
11470 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11472 if (flags & NDR_IN) {
11473 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
11474 ndr->depth++;
11475 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11476 ndr->depth++;
11477 if (r->in.server_unc) {
11478 ndr_print_string(ndr, "server_unc", r->in.server_unc);
11480 ndr->depth--;
11481 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11482 ndr->depth++;
11483 if (r->in.domain_name) {
11484 ndr_print_string(ndr, "domain_name", r->in.domain_name);
11486 ndr->depth--;
11487 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11488 ndr->depth++;
11489 if (r->in.domain_guid) {
11490 ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11492 ndr->depth--;
11493 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
11494 ndr->depth++;
11495 if (r->in.site_guid) {
11496 ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
11498 ndr->depth--;
11499 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11500 ndr->depth--;
11502 if (flags & NDR_OUT) {
11503 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
11504 ndr->depth++;
11505 ndr_print_ptr(ndr, "info", r->out.info);
11506 ndr->depth++;
11507 ndr_print_ptr(ndr, "info", *r->out.info);
11508 ndr->depth++;
11509 if (*r->out.info) {
11510 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11512 ndr->depth--;
11513 ndr->depth--;
11514 ndr_print_WERROR(ndr, "result", r->out.result);
11515 ndr->depth--;
11517 ndr->depth--;
11520 static enum ndr_err_code ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11522 if (flags & NDR_IN) {
11524 if (flags & NDR_OUT) {
11525 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11527 return NDR_ERR_SUCCESS;
11530 static enum ndr_err_code ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
11532 if (flags & NDR_IN) {
11534 if (flags & NDR_OUT) {
11535 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11537 return NDR_ERR_SUCCESS;
11540 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11542 ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
11543 ndr->depth++;
11544 if (flags & NDR_SET_VALUES) {
11545 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11547 if (flags & NDR_IN) {
11548 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
11549 ndr->depth++;
11550 ndr->depth--;
11552 if (flags & NDR_OUT) {
11553 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
11554 ndr->depth++;
11555 ndr_print_WERROR(ndr, "result", r->out.result);
11556 ndr->depth--;
11558 ndr->depth--;
11561 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11563 if (flags & NDR_IN) {
11565 if (flags & NDR_OUT) {
11566 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11568 return NDR_ERR_SUCCESS;
11571 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
11573 if (flags & NDR_IN) {
11575 if (flags & NDR_OUT) {
11576 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11578 return NDR_ERR_SUCCESS;
11581 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11583 ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
11584 ndr->depth++;
11585 if (flags & NDR_SET_VALUES) {
11586 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11588 if (flags & NDR_IN) {
11589 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
11590 ndr->depth++;
11591 ndr->depth--;
11593 if (flags & NDR_OUT) {
11594 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
11595 ndr->depth++;
11596 ndr_print_WERROR(ndr, "result", r->out.result);
11597 ndr->depth--;
11599 ndr->depth--;
11602 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
11604 if (flags & NDR_IN) {
11605 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11606 if (r->in.server_name) {
11607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11610 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));
11612 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11613 if (r->in.domain_name) {
11614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11617 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));
11620 if (flags & NDR_OUT) {
11621 if (r->out.rid == NULL) {
11622 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11625 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11627 return NDR_ERR_SUCCESS;
11630 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
11632 uint32_t _ptr_server_name;
11633 uint32_t _ptr_domain_name;
11634 TALLOC_CTX *_mem_save_server_name_0;
11635 TALLOC_CTX *_mem_save_domain_name_0;
11636 TALLOC_CTX *_mem_save_rid_0;
11637 if (flags & NDR_IN) {
11638 ZERO_STRUCT(r->out);
11640 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11641 if (_ptr_server_name) {
11642 NDR_PULL_ALLOC(ndr, r->in.server_name);
11643 } else {
11644 r->in.server_name = NULL;
11646 if (r->in.server_name) {
11647 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11648 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11649 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11650 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11651 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11652 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
11654 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11655 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
11656 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11658 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11659 if (_ptr_domain_name) {
11660 NDR_PULL_ALLOC(ndr, r->in.domain_name);
11661 } else {
11662 r->in.domain_name = NULL;
11664 if (r->in.domain_name) {
11665 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11666 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11667 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11668 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11669 if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11670 return 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));
11672 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11673 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));
11674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11676 NDR_PULL_ALLOC(ndr, r->out.rid);
11677 ZERO_STRUCTP(r->out.rid);
11679 if (flags & NDR_OUT) {
11680 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11681 NDR_PULL_ALLOC(ndr, r->out.rid);
11683 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11684 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11685 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11686 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11687 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11689 return NDR_ERR_SUCCESS;
11692 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
11694 ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
11695 ndr->depth++;
11696 if (flags & NDR_SET_VALUES) {
11697 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11699 if (flags & NDR_IN) {
11700 ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
11701 ndr->depth++;
11702 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11703 ndr->depth++;
11704 if (r->in.server_name) {
11705 ndr_print_string(ndr, "server_name", r->in.server_name);
11707 ndr->depth--;
11708 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11709 ndr->depth++;
11710 if (r->in.domain_name) {
11711 ndr_print_string(ndr, "domain_name", r->in.domain_name);
11713 ndr->depth--;
11714 ndr->depth--;
11716 if (flags & NDR_OUT) {
11717 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
11718 ndr->depth++;
11719 ndr_print_ptr(ndr, "rid", r->out.rid);
11720 ndr->depth++;
11721 ndr_print_uint32(ndr, "rid", *r->out.rid);
11722 ndr->depth--;
11723 ndr_print_WERROR(ndr, "result", r->out.result);
11724 ndr->depth--;
11726 ndr->depth--;
11729 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11731 if (flags & NDR_IN) {
11733 if (flags & NDR_OUT) {
11734 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11736 return NDR_ERR_SUCCESS;
11739 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11741 if (flags & NDR_IN) {
11743 if (flags & NDR_OUT) {
11744 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11746 return NDR_ERR_SUCCESS;
11749 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11751 ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
11752 ndr->depth++;
11753 if (flags & NDR_SET_VALUES) {
11754 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11756 if (flags & NDR_IN) {
11757 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11758 ndr->depth++;
11759 ndr->depth--;
11761 if (flags & NDR_OUT) {
11762 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11763 ndr->depth++;
11764 ndr_print_WERROR(ndr, "result", r->out.result);
11765 ndr->depth--;
11767 ndr->depth--;
11770 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11772 if (flags & NDR_IN) {
11774 if (flags & NDR_OUT) {
11775 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11777 return NDR_ERR_SUCCESS;
11780 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11782 if (flags & NDR_IN) {
11784 if (flags & NDR_OUT) {
11785 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11787 return NDR_ERR_SUCCESS;
11790 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11792 ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11793 ndr->depth++;
11794 if (flags & NDR_SET_VALUES) {
11795 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11797 if (flags & NDR_IN) {
11798 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11799 ndr->depth++;
11800 ndr->depth--;
11802 if (flags & NDR_OUT) {
11803 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11804 ndr->depth++;
11805 ndr_print_WERROR(ndr, "result", r->out.result);
11806 ndr->depth--;
11808 ndr->depth--;
11811 static enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
11813 if (flags & NDR_IN) {
11814 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11815 if (r->in.server_name) {
11816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11819 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));
11821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11824 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));
11825 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11829 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));
11830 if (r->in.credentials == NULL) {
11831 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11833 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11834 if (r->in.negotiate_flags == NULL) {
11835 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11837 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11839 if (flags & NDR_OUT) {
11840 if (r->out.credentials == NULL) {
11841 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11843 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11844 if (r->out.negotiate_flags == NULL) {
11845 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11847 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11848 if (r->out.rid == NULL) {
11849 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11852 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11854 return NDR_ERR_SUCCESS;
11857 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
11859 uint32_t _ptr_server_name;
11860 TALLOC_CTX *_mem_save_server_name_0;
11861 TALLOC_CTX *_mem_save_credentials_0;
11862 TALLOC_CTX *_mem_save_negotiate_flags_0;
11863 TALLOC_CTX *_mem_save_rid_0;
11864 if (flags & NDR_IN) {
11865 ZERO_STRUCT(r->out);
11867 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11868 if (_ptr_server_name) {
11869 NDR_PULL_ALLOC(ndr, r->in.server_name);
11870 } else {
11871 r->in.server_name = NULL;
11873 if (r->in.server_name) {
11874 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11875 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11876 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11877 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11878 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11879 return 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));
11881 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11882 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));
11883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11885 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11886 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11887 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11888 return 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));
11890 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11891 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));
11892 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11893 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11894 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11895 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11896 return 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));
11898 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11899 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));
11900 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11901 NDR_PULL_ALLOC(ndr, r->in.credentials);
11903 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11904 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11905 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11907 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11908 NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11910 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11911 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11912 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
11913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11914 NDR_PULL_ALLOC(ndr, r->out.credentials);
11915 *r->out.credentials = *r->in.credentials;
11916 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11917 *r->out.negotiate_flags = *r->in.negotiate_flags;
11918 NDR_PULL_ALLOC(ndr, r->out.rid);
11919 ZERO_STRUCTP(r->out.rid);
11921 if (flags & NDR_OUT) {
11922 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11923 NDR_PULL_ALLOC(ndr, r->out.credentials);
11925 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11926 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
11927 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11929 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11930 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11932 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11933 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11934 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
11935 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11936 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11937 NDR_PULL_ALLOC(ndr, r->out.rid);
11939 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11940 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11941 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11943 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11945 return NDR_ERR_SUCCESS;
11948 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
11950 ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
11951 ndr->depth++;
11952 if (flags & NDR_SET_VALUES) {
11953 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11955 if (flags & NDR_IN) {
11956 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
11957 ndr->depth++;
11958 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11959 ndr->depth++;
11960 if (r->in.server_name) {
11961 ndr_print_string(ndr, "server_name", r->in.server_name);
11963 ndr->depth--;
11964 ndr_print_string(ndr, "account_name", r->in.account_name);
11965 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11966 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11967 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11968 ndr->depth++;
11969 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11970 ndr->depth--;
11971 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11972 ndr->depth++;
11973 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
11974 ndr->depth--;
11975 ndr->depth--;
11977 if (flags & NDR_OUT) {
11978 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
11979 ndr->depth++;
11980 ndr_print_ptr(ndr, "credentials", r->out.credentials);
11981 ndr->depth++;
11982 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
11983 ndr->depth--;
11984 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11985 ndr->depth++;
11986 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
11987 ndr->depth--;
11988 ndr_print_ptr(ndr, "rid", r->out.rid);
11989 ndr->depth++;
11990 ndr_print_uint32(ndr, "rid", *r->out.rid);
11991 ndr->depth--;
11992 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11993 ndr->depth--;
11995 ndr->depth--;
11998 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
12000 if (flags & NDR_IN) {
12001 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12002 if (r->in.server_unc) {
12003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12006 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));
12008 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12009 if (r->in.domain_name) {
12010 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12013 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));
12015 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12016 if (r->in.domain_guid) {
12017 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12019 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
12020 if (r->in.site_name) {
12021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12024 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));
12026 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12028 if (flags & NDR_OUT) {
12029 if (r->out.info == NULL) {
12030 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12032 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12033 if (*r->out.info) {
12034 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12036 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12038 return NDR_ERR_SUCCESS;
12041 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
12043 uint32_t _ptr_server_unc;
12044 uint32_t _ptr_domain_name;
12045 uint32_t _ptr_domain_guid;
12046 uint32_t _ptr_site_name;
12047 uint32_t _ptr_info;
12048 TALLOC_CTX *_mem_save_server_unc_0;
12049 TALLOC_CTX *_mem_save_domain_name_0;
12050 TALLOC_CTX *_mem_save_domain_guid_0;
12051 TALLOC_CTX *_mem_save_site_name_0;
12052 TALLOC_CTX *_mem_save_info_0;
12053 TALLOC_CTX *_mem_save_info_1;
12054 if (flags & NDR_IN) {
12055 ZERO_STRUCT(r->out);
12057 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12058 if (_ptr_server_unc) {
12059 NDR_PULL_ALLOC(ndr, r->in.server_unc);
12060 } else {
12061 r->in.server_unc = NULL;
12063 if (r->in.server_unc) {
12064 _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12065 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12066 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12067 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12068 if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12069 return 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));
12071 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12072 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));
12073 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12075 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12076 if (_ptr_domain_name) {
12077 NDR_PULL_ALLOC(ndr, r->in.domain_name);
12078 } else {
12079 r->in.domain_name = NULL;
12081 if (r->in.domain_name) {
12082 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12083 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12084 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12085 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12086 if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12087 return 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));
12089 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12090 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));
12091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12093 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12094 if (_ptr_domain_guid) {
12095 NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12096 } else {
12097 r->in.domain_guid = NULL;
12099 if (r->in.domain_guid) {
12100 _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12101 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12102 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
12106 if (_ptr_site_name) {
12107 NDR_PULL_ALLOC(ndr, r->in.site_name);
12108 } else {
12109 r->in.site_name = NULL;
12111 if (r->in.site_name) {
12112 _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12113 NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
12114 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
12115 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
12116 if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
12117 return 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));
12119 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
12120 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));
12121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
12123 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12124 NDR_PULL_ALLOC(ndr, r->out.info);
12125 ZERO_STRUCTP(r->out.info);
12127 if (flags & NDR_OUT) {
12128 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12129 NDR_PULL_ALLOC(ndr, r->out.info);
12131 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12132 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12133 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12134 if (_ptr_info) {
12135 NDR_PULL_ALLOC(ndr, *r->out.info);
12136 } else {
12137 *r->out.info = NULL;
12139 if (*r->out.info) {
12140 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12141 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12142 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12143 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12145 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12146 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12148 return NDR_ERR_SUCCESS;
12151 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
12153 ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
12154 ndr->depth++;
12155 if (flags & NDR_SET_VALUES) {
12156 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12158 if (flags & NDR_IN) {
12159 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
12160 ndr->depth++;
12161 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12162 ndr->depth++;
12163 if (r->in.server_unc) {
12164 ndr_print_string(ndr, "server_unc", r->in.server_unc);
12166 ndr->depth--;
12167 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12168 ndr->depth++;
12169 if (r->in.domain_name) {
12170 ndr_print_string(ndr, "domain_name", r->in.domain_name);
12172 ndr->depth--;
12173 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12174 ndr->depth++;
12175 if (r->in.domain_guid) {
12176 ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12178 ndr->depth--;
12179 ndr_print_ptr(ndr, "site_name", r->in.site_name);
12180 ndr->depth++;
12181 if (r->in.site_name) {
12182 ndr_print_string(ndr, "site_name", r->in.site_name);
12184 ndr->depth--;
12185 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
12186 ndr->depth--;
12188 if (flags & NDR_OUT) {
12189 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
12190 ndr->depth++;
12191 ndr_print_ptr(ndr, "info", r->out.info);
12192 ndr->depth++;
12193 ndr_print_ptr(ndr, "info", *r->out.info);
12194 ndr->depth++;
12195 if (*r->out.info) {
12196 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
12198 ndr->depth--;
12199 ndr->depth--;
12200 ndr_print_WERROR(ndr, "result", r->out.result);
12201 ndr->depth--;
12203 ndr->depth--;
12206 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
12208 if (flags & NDR_IN) {
12209 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12210 if (r->in.computer_name) {
12211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12214 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));
12217 if (flags & NDR_OUT) {
12218 if (r->out.site == NULL) {
12219 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12221 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
12222 if (*r->out.site) {
12223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
12224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
12226 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12228 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12230 return NDR_ERR_SUCCESS;
12233 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
12235 uint32_t _ptr_computer_name;
12236 uint32_t _ptr_site;
12237 TALLOC_CTX *_mem_save_computer_name_0;
12238 TALLOC_CTX *_mem_save_site_0;
12239 TALLOC_CTX *_mem_save_site_1;
12240 if (flags & NDR_IN) {
12241 ZERO_STRUCT(r->out);
12243 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12244 if (_ptr_computer_name) {
12245 NDR_PULL_ALLOC(ndr, r->in.computer_name);
12246 } else {
12247 r->in.computer_name = NULL;
12249 if (r->in.computer_name) {
12250 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12251 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12252 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12253 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12254 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12255 return 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));
12257 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12258 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));
12259 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12261 NDR_PULL_ALLOC(ndr, r->out.site);
12262 ZERO_STRUCTP(r->out.site);
12264 if (flags & NDR_OUT) {
12265 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12266 NDR_PULL_ALLOC(ndr, r->out.site);
12268 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
12269 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
12270 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
12271 if (_ptr_site) {
12272 NDR_PULL_ALLOC(ndr, *r->out.site);
12273 } else {
12274 *r->out.site = NULL;
12276 if (*r->out.site) {
12277 _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
12278 NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
12279 NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
12280 NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
12281 if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
12282 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));
12284 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
12285 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
12286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
12288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
12289 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12291 return NDR_ERR_SUCCESS;
12294 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
12296 ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
12297 ndr->depth++;
12298 if (flags & NDR_SET_VALUES) {
12299 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12301 if (flags & NDR_IN) {
12302 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
12303 ndr->depth++;
12304 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12305 ndr->depth++;
12306 if (r->in.computer_name) {
12307 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12309 ndr->depth--;
12310 ndr->depth--;
12312 if (flags & NDR_OUT) {
12313 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
12314 ndr->depth++;
12315 ndr_print_ptr(ndr, "site", r->out.site);
12316 ndr->depth++;
12317 ndr_print_ptr(ndr, "site", *r->out.site);
12318 ndr->depth++;
12319 if (*r->out.site) {
12320 ndr_print_string(ndr, "site", *r->out.site);
12322 ndr->depth--;
12323 ndr->depth--;
12324 ndr_print_WERROR(ndr, "result", r->out.result);
12325 ndr->depth--;
12327 ndr->depth--;
12330 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
12332 if (flags & NDR_IN) {
12333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12336 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));
12337 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12338 if (r->in.computer_name) {
12339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12342 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));
12344 if (r->in.credential == NULL) {
12345 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12347 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12348 if (r->in.return_authenticator == NULL) {
12349 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12351 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12353 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
12354 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12356 if (flags & NDR_OUT) {
12357 if (r->out.return_authenticator == NULL) {
12358 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12360 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12361 if (r->out.info == NULL) {
12362 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12364 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
12365 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12366 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12368 return NDR_ERR_SUCCESS;
12371 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
12373 uint32_t _ptr_computer_name;
12374 TALLOC_CTX *_mem_save_computer_name_0;
12375 TALLOC_CTX *_mem_save_credential_0;
12376 TALLOC_CTX *_mem_save_return_authenticator_0;
12377 TALLOC_CTX *_mem_save_info_0;
12378 if (flags & NDR_IN) {
12379 ZERO_STRUCT(r->out);
12381 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12382 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12383 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12384 return 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));
12386 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12387 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));
12388 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12389 if (_ptr_computer_name) {
12390 NDR_PULL_ALLOC(ndr, r->in.computer_name);
12391 } else {
12392 r->in.computer_name = NULL;
12394 if (r->in.computer_name) {
12395 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12396 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12397 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12398 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12399 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12400 return 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));
12402 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12403 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));
12404 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12406 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12407 NDR_PULL_ALLOC(ndr, r->in.credential);
12409 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12410 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12411 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12412 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12413 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12414 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12416 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12417 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12418 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12419 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12421 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
12422 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12423 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12424 *r->out.return_authenticator = *r->in.return_authenticator;
12425 NDR_PULL_ALLOC(ndr, r->out.info);
12426 ZERO_STRUCTP(r->out.info);
12428 if (flags & NDR_OUT) {
12429 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12430 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12432 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12433 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12434 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12436 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12437 NDR_PULL_ALLOC(ndr, r->out.info);
12439 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12440 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12441 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
12442 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12444 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12446 return NDR_ERR_SUCCESS;
12449 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
12451 ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
12452 ndr->depth++;
12453 if (flags & NDR_SET_VALUES) {
12454 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12456 if (flags & NDR_IN) {
12457 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
12458 ndr->depth++;
12459 ndr_print_string(ndr, "server_name", r->in.server_name);
12460 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12461 ndr->depth++;
12462 if (r->in.computer_name) {
12463 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12465 ndr->depth--;
12466 ndr_print_ptr(ndr, "credential", r->in.credential);
12467 ndr->depth++;
12468 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12469 ndr->depth--;
12470 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12471 ndr->depth++;
12472 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12473 ndr->depth--;
12474 ndr_print_uint32(ndr, "level", r->in.level);
12475 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
12476 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
12477 ndr->depth--;
12479 if (flags & NDR_OUT) {
12480 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
12481 ndr->depth++;
12482 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12483 ndr->depth++;
12484 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12485 ndr->depth--;
12486 ndr_print_ptr(ndr, "info", r->out.info);
12487 ndr->depth++;
12488 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
12489 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
12490 ndr->depth--;
12491 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12492 ndr->depth--;
12494 ndr->depth--;
12497 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
12499 if (flags & NDR_IN) {
12500 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12501 if (r->in.server_name) {
12502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12504 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12505 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));
12507 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12510 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));
12511 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12515 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));
12516 if (r->in.credential == NULL) {
12517 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12519 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12520 if (r->in.new_password == NULL) {
12521 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12523 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
12525 if (flags & NDR_OUT) {
12526 if (r->out.return_authenticator == NULL) {
12527 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12529 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12530 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12532 return NDR_ERR_SUCCESS;
12535 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
12537 uint32_t _ptr_server_name;
12538 TALLOC_CTX *_mem_save_server_name_0;
12539 TALLOC_CTX *_mem_save_credential_0;
12540 TALLOC_CTX *_mem_save_return_authenticator_0;
12541 TALLOC_CTX *_mem_save_new_password_0;
12542 if (flags & NDR_IN) {
12543 ZERO_STRUCT(r->out);
12545 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12546 if (_ptr_server_name) {
12547 NDR_PULL_ALLOC(ndr, r->in.server_name);
12548 } else {
12549 r->in.server_name = NULL;
12551 if (r->in.server_name) {
12552 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12553 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12554 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12555 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12556 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12557 return 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));
12559 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12560 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));
12561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12563 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12564 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12565 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12566 return 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));
12568 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12569 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));
12570 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12571 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12572 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12573 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12574 return 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));
12576 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12577 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));
12578 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12579 NDR_PULL_ALLOC(ndr, r->in.credential);
12581 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12582 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12583 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12584 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12585 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12586 NDR_PULL_ALLOC(ndr, r->in.new_password);
12588 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
12589 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
12590 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
12591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
12592 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12593 ZERO_STRUCTP(r->out.return_authenticator);
12595 if (flags & NDR_OUT) {
12596 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12597 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12599 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12600 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12601 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12603 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12605 return NDR_ERR_SUCCESS;
12608 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
12610 ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
12611 ndr->depth++;
12612 if (flags & NDR_SET_VALUES) {
12613 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12615 if (flags & NDR_IN) {
12616 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
12617 ndr->depth++;
12618 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12619 ndr->depth++;
12620 if (r->in.server_name) {
12621 ndr_print_string(ndr, "server_name", r->in.server_name);
12623 ndr->depth--;
12624 ndr_print_string(ndr, "account_name", r->in.account_name);
12625 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12626 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12627 ndr_print_ptr(ndr, "credential", r->in.credential);
12628 ndr->depth++;
12629 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12630 ndr->depth--;
12631 ndr_print_ptr(ndr, "new_password", r->in.new_password);
12632 ndr->depth++;
12633 ndr_print_netr_CryptPassword(ndr, "new_password", r->in.new_password);
12634 ndr->depth--;
12635 ndr->depth--;
12637 if (flags & NDR_OUT) {
12638 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
12639 ndr->depth++;
12640 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12641 ndr->depth++;
12642 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12643 ndr->depth--;
12644 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12645 ndr->depth--;
12647 ndr->depth--;
12650 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
12652 if (flags & NDR_IN) {
12653 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12654 if (r->in.server_name) {
12655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12658 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));
12660 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12663 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));
12664 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12668 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));
12669 if (r->in.credential == NULL) {
12670 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12672 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12674 if (flags & NDR_OUT) {
12675 if (r->out.return_authenticator == NULL) {
12676 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12678 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12679 if (r->out.password == NULL) {
12680 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12682 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12683 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12685 return NDR_ERR_SUCCESS;
12688 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
12690 uint32_t _ptr_server_name;
12691 TALLOC_CTX *_mem_save_server_name_0;
12692 TALLOC_CTX *_mem_save_credential_0;
12693 TALLOC_CTX *_mem_save_return_authenticator_0;
12694 TALLOC_CTX *_mem_save_password_0;
12695 if (flags & NDR_IN) {
12696 ZERO_STRUCT(r->out);
12698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12699 if (_ptr_server_name) {
12700 NDR_PULL_ALLOC(ndr, r->in.server_name);
12701 } else {
12702 r->in.server_name = NULL;
12704 if (r->in.server_name) {
12705 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12706 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12707 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12708 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12709 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12710 return 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));
12712 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12713 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));
12714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12716 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12717 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12718 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12719 return 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));
12721 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12722 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));
12723 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12724 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12725 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12726 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12727 return 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));
12729 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12730 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));
12731 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12732 NDR_PULL_ALLOC(ndr, r->in.credential);
12734 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12735 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12736 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12738 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12739 ZERO_STRUCTP(r->out.return_authenticator);
12740 NDR_PULL_ALLOC(ndr, r->out.password);
12741 ZERO_STRUCTP(r->out.password);
12743 if (flags & NDR_OUT) {
12744 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12745 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12747 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12748 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12749 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12751 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12752 NDR_PULL_ALLOC(ndr, r->out.password);
12754 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
12755 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
12756 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
12758 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12760 return NDR_ERR_SUCCESS;
12763 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
12765 ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
12766 ndr->depth++;
12767 if (flags & NDR_SET_VALUES) {
12768 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12770 if (flags & NDR_IN) {
12771 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
12772 ndr->depth++;
12773 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12774 ndr->depth++;
12775 if (r->in.server_name) {
12776 ndr_print_string(ndr, "server_name", r->in.server_name);
12778 ndr->depth--;
12779 ndr_print_string(ndr, "account_name", r->in.account_name);
12780 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12781 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12782 ndr_print_ptr(ndr, "credential", r->in.credential);
12783 ndr->depth++;
12784 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12785 ndr->depth--;
12786 ndr->depth--;
12788 if (flags & NDR_OUT) {
12789 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
12790 ndr->depth++;
12791 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12792 ndr->depth++;
12793 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12794 ndr->depth--;
12795 ndr_print_ptr(ndr, "password", r->out.password);
12796 ndr->depth++;
12797 ndr_print_samr_Password(ndr, "password", r->out.password);
12798 ndr->depth--;
12799 ndr_print_WERROR(ndr, "result", r->out.result);
12800 ndr->depth--;
12802 ndr->depth--;
12805 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12807 if (flags & NDR_IN) {
12809 if (flags & NDR_OUT) {
12810 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12812 return NDR_ERR_SUCCESS;
12815 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
12817 if (flags & NDR_IN) {
12819 if (flags & NDR_OUT) {
12820 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12822 return NDR_ERR_SUCCESS;
12825 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12827 ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
12828 ndr->depth++;
12829 if (flags & NDR_SET_VALUES) {
12830 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12832 if (flags & NDR_IN) {
12833 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
12834 ndr->depth++;
12835 ndr->depth--;
12837 if (flags & NDR_OUT) {
12838 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
12839 ndr->depth++;
12840 ndr_print_WERROR(ndr, "result", r->out.result);
12841 ndr->depth--;
12843 ndr->depth--;
12846 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
12848 uint32_t cntr_addresses_1;
12849 if (flags & NDR_IN) {
12850 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12851 if (r->in.server_name) {
12852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12855 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));
12857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12858 if (r->in.addresses == NULL) {
12859 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12861 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12862 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12863 NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12865 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12866 NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12869 if (flags & NDR_OUT) {
12870 if (r->out.ctr == NULL) {
12871 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12873 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
12874 if (*r->out.ctr) {
12875 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12877 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12879 return NDR_ERR_SUCCESS;
12882 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
12884 uint32_t _ptr_server_name;
12885 uint32_t cntr_addresses_1;
12886 uint32_t _ptr_ctr;
12887 TALLOC_CTX *_mem_save_server_name_0;
12888 TALLOC_CTX *_mem_save_addresses_1;
12889 TALLOC_CTX *_mem_save_ctr_0;
12890 TALLOC_CTX *_mem_save_ctr_1;
12891 if (flags & NDR_IN) {
12892 ZERO_STRUCT(r->out);
12894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12895 if (_ptr_server_name) {
12896 NDR_PULL_ALLOC(ndr, r->in.server_name);
12897 } else {
12898 r->in.server_name = NULL;
12900 if (r->in.server_name) {
12901 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12902 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12903 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12904 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12905 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12906 return 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));
12908 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12909 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));
12910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12912 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12913 if (r->in.count < 0 || r->in.count > 32000) {
12914 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12916 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
12917 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12918 NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
12920 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
12921 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
12922 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12923 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12925 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12926 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
12929 NDR_PULL_ALLOC(ndr, r->out.ctr);
12930 ZERO_STRUCTP(r->out.ctr);
12931 if (r->in.addresses) {
12932 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
12935 if (flags & NDR_OUT) {
12936 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12937 NDR_PULL_ALLOC(ndr, r->out.ctr);
12939 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12940 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
12942 if (_ptr_ctr) {
12943 NDR_PULL_ALLOC(ndr, *r->out.ctr);
12944 } else {
12945 *r->out.ctr = NULL;
12947 if (*r->out.ctr) {
12948 _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
12949 NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
12950 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
12953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
12954 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12956 return NDR_ERR_SUCCESS;
12959 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
12961 uint32_t cntr_addresses_1;
12962 ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
12963 ndr->depth++;
12964 if (flags & NDR_SET_VALUES) {
12965 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12967 if (flags & NDR_IN) {
12968 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
12969 ndr->depth++;
12970 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12971 ndr->depth++;
12972 if (r->in.server_name) {
12973 ndr_print_string(ndr, "server_name", r->in.server_name);
12975 ndr->depth--;
12976 ndr_print_uint32(ndr, "count", r->in.count);
12977 ndr_print_ptr(ndr, "addresses", r->in.addresses);
12978 ndr->depth++;
12979 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
12980 ndr->depth++;
12981 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
12982 char *idx_1=NULL;
12983 if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
12984 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
12985 free(idx_1);
12988 ndr->depth--;
12989 ndr->depth--;
12990 ndr->depth--;
12992 if (flags & NDR_OUT) {
12993 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
12994 ndr->depth++;
12995 ndr_print_ptr(ndr, "ctr", r->out.ctr);
12996 ndr->depth++;
12997 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
12998 ndr->depth++;
12999 if (*r->out.ctr) {
13000 ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
13002 ndr->depth--;
13003 ndr->depth--;
13004 ndr_print_WERROR(ndr, "result", r->out.result);
13005 ndr->depth--;
13007 ndr->depth--;
13010 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
13012 if (flags & NDR_IN) {
13013 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
13014 if (r->in.server_unc) {
13015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
13016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
13018 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));
13020 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
13021 if (r->in.client_account) {
13022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
13023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
13025 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));
13027 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
13028 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
13029 if (r->in.domain_name) {
13030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13033 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));
13035 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13036 if (r->in.domain_guid) {
13037 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
13039 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
13040 if (r->in.site_name) {
13041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
13042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
13044 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));
13046 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
13048 if (flags & NDR_OUT) {
13049 if (r->out.info == NULL) {
13050 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13052 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
13053 if (*r->out.info) {
13054 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
13056 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13058 return NDR_ERR_SUCCESS;
13061 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
13063 uint32_t _ptr_server_unc;
13064 uint32_t _ptr_client_account;
13065 uint32_t _ptr_domain_name;
13066 uint32_t _ptr_domain_guid;
13067 uint32_t _ptr_site_name;
13068 uint32_t _ptr_info;
13069 TALLOC_CTX *_mem_save_server_unc_0;
13070 TALLOC_CTX *_mem_save_client_account_0;
13071 TALLOC_CTX *_mem_save_domain_name_0;
13072 TALLOC_CTX *_mem_save_domain_guid_0;
13073 TALLOC_CTX *_mem_save_site_name_0;
13074 TALLOC_CTX *_mem_save_info_0;
13075 TALLOC_CTX *_mem_save_info_1;
13076 if (flags & NDR_IN) {
13077 ZERO_STRUCT(r->out);
13079 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
13080 if (_ptr_server_unc) {
13081 NDR_PULL_ALLOC(ndr, r->in.server_unc);
13082 } else {
13083 r->in.server_unc = NULL;
13085 if (r->in.server_unc) {
13086 _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
13087 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
13088 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
13089 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
13090 if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
13091 return 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));
13093 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
13094 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));
13095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
13097 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
13098 if (_ptr_client_account) {
13099 NDR_PULL_ALLOC(ndr, r->in.client_account);
13100 } else {
13101 r->in.client_account = NULL;
13103 if (r->in.client_account) {
13104 _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
13105 NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
13106 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
13107 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
13108 if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
13109 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.client_account), ndr_get_array_length(ndr, &r->in.client_account));
13111 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
13112 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));
13113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
13115 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
13116 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
13117 if (_ptr_domain_name) {
13118 NDR_PULL_ALLOC(ndr, r->in.domain_name);
13119 } else {
13120 r->in.domain_name = NULL;
13122 if (r->in.domain_name) {
13123 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13124 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
13125 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
13126 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
13127 if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
13128 return 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));
13130 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
13131 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));
13132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
13134 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
13135 if (_ptr_domain_guid) {
13136 NDR_PULL_ALLOC(ndr, r->in.domain_guid);
13137 } else {
13138 r->in.domain_guid = NULL;
13140 if (r->in.domain_guid) {
13141 _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13142 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
13143 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
13144 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
13146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
13147 if (_ptr_site_name) {
13148 NDR_PULL_ALLOC(ndr, r->in.site_name);
13149 } else {
13150 r->in.site_name = NULL;
13152 if (r->in.site_name) {
13153 _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13154 NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
13155 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
13156 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
13157 if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
13158 return 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));
13160 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
13161 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));
13162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
13164 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
13165 NDR_PULL_ALLOC(ndr, r->out.info);
13166 ZERO_STRUCTP(r->out.info);
13168 if (flags & NDR_OUT) {
13169 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13170 NDR_PULL_ALLOC(ndr, r->out.info);
13172 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13173 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
13174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
13175 if (_ptr_info) {
13176 NDR_PULL_ALLOC(ndr, *r->out.info);
13177 } else {
13178 *r->out.info = NULL;
13180 if (*r->out.info) {
13181 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
13182 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
13183 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
13184 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
13186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
13187 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13189 return NDR_ERR_SUCCESS;
13192 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
13194 ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
13195 ndr->depth++;
13196 if (flags & NDR_SET_VALUES) {
13197 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13199 if (flags & NDR_IN) {
13200 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
13201 ndr->depth++;
13202 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
13203 ndr->depth++;
13204 if (r->in.server_unc) {
13205 ndr_print_string(ndr, "server_unc", r->in.server_unc);
13207 ndr->depth--;
13208 ndr_print_ptr(ndr, "client_account", r->in.client_account);
13209 ndr->depth++;
13210 if (r->in.client_account) {
13211 ndr_print_string(ndr, "client_account", r->in.client_account);
13213 ndr->depth--;
13214 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
13215 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
13216 ndr->depth++;
13217 if (r->in.domain_name) {
13218 ndr_print_string(ndr, "domain_name", r->in.domain_name);
13220 ndr->depth--;
13221 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13222 ndr->depth++;
13223 if (r->in.domain_guid) {
13224 ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13226 ndr->depth--;
13227 ndr_print_ptr(ndr, "site_name", r->in.site_name);
13228 ndr->depth++;
13229 if (r->in.site_name) {
13230 ndr_print_string(ndr, "site_name", r->in.site_name);
13232 ndr->depth--;
13233 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
13234 ndr->depth--;
13236 if (flags & NDR_OUT) {
13237 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
13238 ndr->depth++;
13239 ndr_print_ptr(ndr, "info", r->out.info);
13240 ndr->depth++;
13241 ndr_print_ptr(ndr, "info", *r->out.info);
13242 ndr->depth++;
13243 if (*r->out.info) {
13244 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
13246 ndr->depth--;
13247 ndr->depth--;
13248 ndr_print_WERROR(ndr, "result", r->out.result);
13249 ndr->depth--;
13251 ndr->depth--;
13254 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13256 if (flags & NDR_IN) {
13258 if (flags & NDR_OUT) {
13259 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13261 return NDR_ERR_SUCCESS;
13264 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13266 if (flags & NDR_IN) {
13268 if (flags & NDR_OUT) {
13269 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13271 return NDR_ERR_SUCCESS;
13274 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13276 ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13277 ndr->depth++;
13278 if (flags & NDR_SET_VALUES) {
13279 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13281 if (flags & NDR_IN) {
13282 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13283 ndr->depth++;
13284 ndr->depth--;
13286 if (flags & NDR_OUT) {
13287 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13288 ndr->depth++;
13289 ndr_print_WERROR(ndr, "result", r->out.result);
13290 ndr->depth--;
13292 ndr->depth--;
13295 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13297 if (flags & NDR_IN) {
13298 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13299 if (r->in.server_name) {
13300 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13303 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));
13306 if (flags & NDR_OUT) {
13307 if (r->out.dom_trust_list == NULL) {
13308 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13310 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13311 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13313 return NDR_ERR_SUCCESS;
13316 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
13318 uint32_t _ptr_server_name;
13319 TALLOC_CTX *_mem_save_server_name_0;
13320 TALLOC_CTX *_mem_save_dom_trust_list_0;
13321 if (flags & NDR_IN) {
13322 ZERO_STRUCT(r->out);
13324 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13325 if (_ptr_server_name) {
13326 NDR_PULL_ALLOC(ndr, r->in.server_name);
13327 } else {
13328 r->in.server_name = NULL;
13330 if (r->in.server_name) {
13331 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13332 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13333 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13334 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13335 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13336 return 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));
13338 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13339 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));
13340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13342 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13343 ZERO_STRUCTP(r->out.dom_trust_list);
13345 if (flags & NDR_OUT) {
13346 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13347 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13349 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
13350 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
13351 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
13353 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13355 return NDR_ERR_SUCCESS;
13358 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13360 ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
13361 ndr->depth++;
13362 if (flags & NDR_SET_VALUES) {
13363 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13365 if (flags & NDR_IN) {
13366 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
13367 ndr->depth++;
13368 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13369 ndr->depth++;
13370 if (r->in.server_name) {
13371 ndr_print_string(ndr, "server_name", r->in.server_name);
13373 ndr->depth--;
13374 ndr->depth--;
13376 if (flags & NDR_OUT) {
13377 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
13378 ndr->depth++;
13379 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
13380 ndr->depth++;
13381 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
13382 ndr->depth--;
13383 ndr_print_WERROR(ndr, "result", r->out.result);
13384 ndr->depth--;
13386 ndr->depth--;
13389 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13391 uint32_t cntr_addresses_1;
13392 if (flags & NDR_IN) {
13393 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13394 if (r->in.server_name) {
13395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_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.server_name, CH_UTF16)));
13398 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));
13400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13401 if (r->in.addresses == NULL) {
13402 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13405 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13406 NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13408 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13409 NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13412 if (flags & NDR_OUT) {
13413 if (r->out.ctr == NULL) {
13414 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13416 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
13417 if (*r->out.ctr) {
13418 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13420 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13422 return NDR_ERR_SUCCESS;
13425 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
13427 uint32_t _ptr_server_name;
13428 uint32_t cntr_addresses_1;
13429 uint32_t _ptr_ctr;
13430 TALLOC_CTX *_mem_save_server_name_0;
13431 TALLOC_CTX *_mem_save_addresses_1;
13432 TALLOC_CTX *_mem_save_ctr_0;
13433 TALLOC_CTX *_mem_save_ctr_1;
13434 if (flags & NDR_IN) {
13435 ZERO_STRUCT(r->out);
13437 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13438 if (_ptr_server_name) {
13439 NDR_PULL_ALLOC(ndr, r->in.server_name);
13440 } else {
13441 r->in.server_name = NULL;
13443 if (r->in.server_name) {
13444 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13445 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13446 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13447 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13448 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13449 return 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));
13451 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13452 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));
13453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13456 if (r->in.count < 0 || r->in.count > 32000) {
13457 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13459 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
13460 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13461 NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
13463 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
13464 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
13465 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13466 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13468 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13469 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
13472 NDR_PULL_ALLOC(ndr, r->out.ctr);
13473 ZERO_STRUCTP(r->out.ctr);
13474 if (r->in.addresses) {
13475 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
13478 if (flags & NDR_OUT) {
13479 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13480 NDR_PULL_ALLOC(ndr, r->out.ctr);
13482 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13483 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13484 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
13485 if (_ptr_ctr) {
13486 NDR_PULL_ALLOC(ndr, *r->out.ctr);
13487 } else {
13488 *r->out.ctr = NULL;
13490 if (*r->out.ctr) {
13491 _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
13492 NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
13493 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13494 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
13496 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13497 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13499 return NDR_ERR_SUCCESS;
13502 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13504 uint32_t cntr_addresses_1;
13505 ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
13506 ndr->depth++;
13507 if (flags & NDR_SET_VALUES) {
13508 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13510 if (flags & NDR_IN) {
13511 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
13512 ndr->depth++;
13513 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13514 ndr->depth++;
13515 if (r->in.server_name) {
13516 ndr_print_string(ndr, "server_name", r->in.server_name);
13518 ndr->depth--;
13519 ndr_print_uint32(ndr, "count", r->in.count);
13520 ndr_print_ptr(ndr, "addresses", r->in.addresses);
13521 ndr->depth++;
13522 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
13523 ndr->depth++;
13524 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
13525 char *idx_1=NULL;
13526 if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
13527 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
13528 free(idx_1);
13531 ndr->depth--;
13532 ndr->depth--;
13533 ndr->depth--;
13535 if (flags & NDR_OUT) {
13536 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
13537 ndr->depth++;
13538 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13539 ndr->depth++;
13540 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
13541 ndr->depth++;
13542 if (*r->out.ctr) {
13543 ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
13545 ndr->depth--;
13546 ndr->depth--;
13547 ndr_print_WERROR(ndr, "result", r->out.result);
13548 ndr->depth--;
13550 ndr->depth--;
13553 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13555 if (flags & NDR_IN) {
13556 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13557 if (r->in.server_name) {
13558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13561 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));
13564 if (flags & NDR_OUT) {
13565 if (r->out.ctr == NULL) {
13566 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13568 NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13569 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13571 return NDR_ERR_SUCCESS;
13574 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
13576 uint32_t _ptr_server_name;
13577 TALLOC_CTX *_mem_save_server_name_0;
13578 TALLOC_CTX *_mem_save_ctr_0;
13579 if (flags & NDR_IN) {
13580 ZERO_STRUCT(r->out);
13582 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13583 if (_ptr_server_name) {
13584 NDR_PULL_ALLOC(ndr, r->in.server_name);
13585 } else {
13586 r->in.server_name = NULL;
13588 if (r->in.server_name) {
13589 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13590 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13591 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13592 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13593 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13594 return 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));
13596 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13597 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));
13598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13600 NDR_PULL_ALLOC(ndr, r->out.ctr);
13601 ZERO_STRUCTP(r->out.ctr);
13603 if (flags & NDR_OUT) {
13604 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13605 NDR_PULL_ALLOC(ndr, r->out.ctr);
13607 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13608 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13609 NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13611 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13613 return NDR_ERR_SUCCESS;
13616 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13618 ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
13619 ndr->depth++;
13620 if (flags & NDR_SET_VALUES) {
13621 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13623 if (flags & NDR_IN) {
13624 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
13625 ndr->depth++;
13626 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13627 ndr->depth++;
13628 if (r->in.server_name) {
13629 ndr_print_string(ndr, "server_name", r->in.server_name);
13631 ndr->depth--;
13632 ndr->depth--;
13634 if (flags & NDR_OUT) {
13635 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
13636 ndr->depth++;
13637 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13638 ndr->depth++;
13639 ndr_print_DcSitesCtr(ndr, "ctr", r->out.ctr);
13640 ndr->depth--;
13641 ndr_print_WERROR(ndr, "result", r->out.result);
13642 ndr->depth--;
13644 ndr->depth--;
13647 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
13649 if (flags & NDR_IN) {
13650 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13651 if (r->in.server_name) {
13652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13655 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));
13657 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13658 if (r->in.computer_name) {
13659 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13660 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13662 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));
13664 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
13665 if (r->in.logon == NULL) {
13666 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13668 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
13669 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
13670 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
13671 if (r->in.flags == NULL) {
13672 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
13676 if (flags & NDR_OUT) {
13677 if (r->out.validation == NULL) {
13678 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13680 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13681 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13682 if (r->out.authoritative == NULL) {
13683 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13685 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
13686 if (r->out.flags == NULL) {
13687 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
13690 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13692 return NDR_ERR_SUCCESS;
13695 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
13697 uint32_t _ptr_server_name;
13698 uint32_t _ptr_computer_name;
13699 TALLOC_CTX *_mem_save_server_name_0;
13700 TALLOC_CTX *_mem_save_computer_name_0;
13701 TALLOC_CTX *_mem_save_logon_0;
13702 TALLOC_CTX *_mem_save_validation_0;
13703 TALLOC_CTX *_mem_save_authoritative_0;
13704 TALLOC_CTX *_mem_save_flags_0;
13705 if (flags & NDR_IN) {
13706 ZERO_STRUCT(r->out);
13708 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13709 if (_ptr_server_name) {
13710 NDR_PULL_ALLOC(ndr, r->in.server_name);
13711 } else {
13712 r->in.server_name = NULL;
13714 if (r->in.server_name) {
13715 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13716 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13717 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13718 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13719 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13720 return 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));
13722 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13723 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));
13724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13726 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13727 if (_ptr_computer_name) {
13728 NDR_PULL_ALLOC(ndr, r->in.computer_name);
13729 } else {
13730 r->in.computer_name = NULL;
13732 if (r->in.computer_name) {
13733 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13734 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13735 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13736 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13737 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13738 return 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));
13740 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13741 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));
13742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13744 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
13745 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13746 NDR_PULL_ALLOC(ndr, r->in.logon);
13748 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
13749 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
13750 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
13751 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
13752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
13753 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
13754 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13755 NDR_PULL_ALLOC(ndr, r->in.flags);
13757 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13758 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
13759 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
13760 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13761 NDR_PULL_ALLOC(ndr, r->out.validation);
13762 ZERO_STRUCTP(r->out.validation);
13763 NDR_PULL_ALLOC(ndr, r->out.authoritative);
13764 ZERO_STRUCTP(r->out.authoritative);
13765 NDR_PULL_ALLOC(ndr, r->out.flags);
13766 *r->out.flags = *r->in.flags;
13768 if (flags & NDR_OUT) {
13769 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13770 NDR_PULL_ALLOC(ndr, r->out.validation);
13772 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
13773 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
13774 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13775 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13776 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
13777 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13778 NDR_PULL_ALLOC(ndr, r->out.authoritative);
13780 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
13781 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
13782 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
13783 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
13784 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13785 NDR_PULL_ALLOC(ndr, r->out.flags);
13787 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13788 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
13789 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
13790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13791 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13793 return NDR_ERR_SUCCESS;
13796 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
13798 ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
13799 ndr->depth++;
13800 if (flags & NDR_SET_VALUES) {
13801 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13803 if (flags & NDR_IN) {
13804 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
13805 ndr->depth++;
13806 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13807 ndr->depth++;
13808 if (r->in.server_name) {
13809 ndr_print_string(ndr, "server_name", r->in.server_name);
13811 ndr->depth--;
13812 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13813 ndr->depth++;
13814 if (r->in.computer_name) {
13815 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13817 ndr->depth--;
13818 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
13819 ndr_print_ptr(ndr, "logon", r->in.logon);
13820 ndr->depth++;
13821 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
13822 ndr_print_netr_LogonInfo(ndr, "logon", r->in.logon);
13823 ndr->depth--;
13824 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
13825 ndr_print_ptr(ndr, "flags", r->in.flags);
13826 ndr->depth++;
13827 ndr_print_uint32(ndr, "flags", *r->in.flags);
13828 ndr->depth--;
13829 ndr->depth--;
13831 if (flags & NDR_OUT) {
13832 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
13833 ndr->depth++;
13834 ndr_print_ptr(ndr, "validation", r->out.validation);
13835 ndr->depth++;
13836 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
13837 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
13838 ndr->depth--;
13839 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
13840 ndr->depth++;
13841 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
13842 ndr->depth--;
13843 ndr_print_ptr(ndr, "flags", r->out.flags);
13844 ndr->depth++;
13845 ndr_print_uint32(ndr, "flags", *r->out.flags);
13846 ndr->depth--;
13847 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13848 ndr->depth--;
13850 ndr->depth--;
13853 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13855 if (flags & NDR_IN) {
13856 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13857 if (r->in.server_name) {
13858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13861 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));
13863 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
13865 if (flags & NDR_OUT) {
13866 if (r->out.trusts == NULL) {
13867 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13869 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13870 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13872 return NDR_ERR_SUCCESS;
13875 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
13877 uint32_t _ptr_server_name;
13878 TALLOC_CTX *_mem_save_server_name_0;
13879 TALLOC_CTX *_mem_save_trusts_0;
13880 if (flags & NDR_IN) {
13881 ZERO_STRUCT(r->out);
13883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13884 if (_ptr_server_name) {
13885 NDR_PULL_ALLOC(ndr, r->in.server_name);
13886 } else {
13887 r->in.server_name = NULL;
13889 if (r->in.server_name) {
13890 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13891 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13892 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13893 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13894 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13895 return 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));
13897 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13898 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));
13899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13901 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
13902 NDR_PULL_ALLOC(ndr, r->out.trusts);
13903 ZERO_STRUCTP(r->out.trusts);
13905 if (flags & NDR_OUT) {
13906 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13907 NDR_PULL_ALLOC(ndr, r->out.trusts);
13909 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
13910 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
13911 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
13913 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13915 return NDR_ERR_SUCCESS;
13918 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13920 ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
13921 ndr->depth++;
13922 if (flags & NDR_SET_VALUES) {
13923 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13925 if (flags & NDR_IN) {
13926 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
13927 ndr->depth++;
13928 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13929 ndr->depth++;
13930 if (r->in.server_name) {
13931 ndr_print_string(ndr, "server_name", r->in.server_name);
13933 ndr->depth--;
13934 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
13935 ndr->depth--;
13937 if (flags & NDR_OUT) {
13938 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
13939 ndr->depth++;
13940 ndr_print_ptr(ndr, "trusts", r->out.trusts);
13941 ndr->depth++;
13942 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
13943 ndr->depth--;
13944 ndr_print_WERROR(ndr, "result", r->out.result);
13945 ndr->depth--;
13947 ndr->depth--;
13950 static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13952 if (flags & NDR_IN) {
13953 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13954 if (r->in.server_name) {
13955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13956 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13957 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13958 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));
13960 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
13961 if (r->in.domain) {
13962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13965 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13967 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13968 if (r->in.domain_guid) {
13969 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
13971 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
13972 if (r->in.dsa_guid) {
13973 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.dsa_guid));
13975 if (r->in.dns_host == NULL) {
13976 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
13979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
13981 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));
13983 if (flags & NDR_OUT) {
13984 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13986 return NDR_ERR_SUCCESS;
13989 static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
13991 uint32_t _ptr_server_name;
13992 uint32_t _ptr_domain;
13993 uint32_t _ptr_domain_guid;
13994 uint32_t _ptr_dsa_guid;
13995 TALLOC_CTX *_mem_save_server_name_0;
13996 TALLOC_CTX *_mem_save_domain_0;
13997 TALLOC_CTX *_mem_save_domain_guid_0;
13998 TALLOC_CTX *_mem_save_dsa_guid_0;
13999 if (flags & NDR_IN) {
14000 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14001 if (_ptr_server_name) {
14002 NDR_PULL_ALLOC(ndr, r->in.server_name);
14003 } else {
14004 r->in.server_name = NULL;
14006 if (r->in.server_name) {
14007 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14008 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14009 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14010 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14011 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14012 return 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));
14014 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14015 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));
14016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14018 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
14019 if (_ptr_domain) {
14020 NDR_PULL_ALLOC(ndr, r->in.domain);
14021 } else {
14022 r->in.domain = NULL;
14024 if (r->in.domain) {
14025 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
14026 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
14027 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
14028 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
14029 if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
14030 return 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));
14032 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
14033 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
14034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
14036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
14037 if (_ptr_domain_guid) {
14038 NDR_PULL_ALLOC(ndr, r->in.domain_guid);
14039 } else {
14040 r->in.domain_guid = NULL;
14042 if (r->in.domain_guid) {
14043 _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
14044 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
14045 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
14046 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
14048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
14049 if (_ptr_dsa_guid) {
14050 NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
14051 } else {
14052 r->in.dsa_guid = NULL;
14054 if (r->in.dsa_guid) {
14055 _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
14056 NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
14057 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.dsa_guid));
14058 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
14060 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
14061 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
14062 if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
14063 return 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));
14065 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
14066 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));
14068 if (flags & NDR_OUT) {
14069 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14071 return NDR_ERR_SUCCESS;
14074 _PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
14076 ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
14077 ndr->depth++;
14078 if (flags & NDR_SET_VALUES) {
14079 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14081 if (flags & NDR_IN) {
14082 ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
14083 ndr->depth++;
14084 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14085 ndr->depth++;
14086 if (r->in.server_name) {
14087 ndr_print_string(ndr, "server_name", r->in.server_name);
14089 ndr->depth--;
14090 ndr_print_ptr(ndr, "domain", r->in.domain);
14091 ndr->depth++;
14092 if (r->in.domain) {
14093 ndr_print_string(ndr, "domain", r->in.domain);
14095 ndr->depth--;
14096 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
14097 ndr->depth++;
14098 if (r->in.domain_guid) {
14099 ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
14101 ndr->depth--;
14102 ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
14103 ndr->depth++;
14104 if (r->in.dsa_guid) {
14105 ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
14107 ndr->depth--;
14108 ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
14109 ndr->depth++;
14110 ndr_print_string(ndr, "dns_host", r->in.dns_host);
14111 ndr->depth--;
14112 ndr->depth--;
14114 if (flags & NDR_OUT) {
14115 ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
14116 ndr->depth++;
14117 ndr_print_WERROR(ndr, "result", r->out.result);
14118 ndr->depth--;
14120 ndr->depth--;
14123 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
14125 if (flags & NDR_IN) {
14126 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14127 if (r->in.server_name) {
14128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14131 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));
14133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
14134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
14136 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));
14137 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
14138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14141 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));
14142 if (r->in.credential == NULL) {
14143 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14145 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14147 if (flags & NDR_OUT) {
14148 if (r->out.return_authenticator == NULL) {
14149 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14151 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14152 if (r->out.password == NULL) {
14153 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14155 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
14156 if (r->out.password2 == NULL) {
14157 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14159 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
14160 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14162 return NDR_ERR_SUCCESS;
14165 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
14167 uint32_t _ptr_server_name;
14168 TALLOC_CTX *_mem_save_server_name_0;
14169 TALLOC_CTX *_mem_save_credential_0;
14170 TALLOC_CTX *_mem_save_return_authenticator_0;
14171 TALLOC_CTX *_mem_save_password_0;
14172 TALLOC_CTX *_mem_save_password2_0;
14173 if (flags & NDR_IN) {
14174 ZERO_STRUCT(r->out);
14176 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14177 if (_ptr_server_name) {
14178 NDR_PULL_ALLOC(ndr, r->in.server_name);
14179 } else {
14180 r->in.server_name = NULL;
14182 if (r->in.server_name) {
14183 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14184 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14185 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14186 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14187 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14188 return 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));
14190 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14191 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));
14192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14194 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
14195 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
14196 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
14197 return 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));
14199 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
14200 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));
14201 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
14202 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14203 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14204 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14205 return 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));
14207 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14208 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));
14209 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14210 NDR_PULL_ALLOC(ndr, r->in.credential);
14212 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14213 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14214 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14216 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14217 ZERO_STRUCTP(r->out.return_authenticator);
14218 NDR_PULL_ALLOC(ndr, r->out.password);
14219 ZERO_STRUCTP(r->out.password);
14220 NDR_PULL_ALLOC(ndr, r->out.password2);
14221 ZERO_STRUCTP(r->out.password2);
14223 if (flags & NDR_OUT) {
14224 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14225 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14227 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14228 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14229 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14230 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14231 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14232 NDR_PULL_ALLOC(ndr, r->out.password);
14234 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
14235 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
14236 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
14237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
14238 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14239 NDR_PULL_ALLOC(ndr, r->out.password2);
14241 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
14242 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
14243 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
14244 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
14245 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14247 return NDR_ERR_SUCCESS;
14250 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
14252 ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
14253 ndr->depth++;
14254 if (flags & NDR_SET_VALUES) {
14255 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14257 if (flags & NDR_IN) {
14258 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
14259 ndr->depth++;
14260 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14261 ndr->depth++;
14262 if (r->in.server_name) {
14263 ndr_print_string(ndr, "server_name", r->in.server_name);
14265 ndr->depth--;
14266 ndr_print_string(ndr, "account_name", r->in.account_name);
14267 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
14268 ndr_print_string(ndr, "computer_name", r->in.computer_name);
14269 ndr_print_ptr(ndr, "credential", r->in.credential);
14270 ndr->depth++;
14271 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14272 ndr->depth--;
14273 ndr->depth--;
14275 if (flags & NDR_OUT) {
14276 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
14277 ndr->depth++;
14278 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14279 ndr->depth++;
14280 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14281 ndr->depth--;
14282 ndr_print_ptr(ndr, "password", r->out.password);
14283 ndr->depth++;
14284 ndr_print_samr_Password(ndr, "password", r->out.password);
14285 ndr->depth--;
14286 ndr_print_ptr(ndr, "password2", r->out.password2);
14287 ndr->depth++;
14288 ndr_print_samr_Password(ndr, "password2", r->out.password2);
14289 ndr->depth--;
14290 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14291 ndr->depth--;
14293 ndr->depth--;
14296 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
14298 if (flags & NDR_IN) {
14299 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14300 if (r->in.server_name) {
14301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14304 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));
14306 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
14307 if (r->in.trusted_domain_name) {
14308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14311 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));
14313 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14315 if (flags & NDR_OUT) {
14316 if (r->out.forest_trust_info == NULL) {
14317 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14319 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14320 if (*r->out.forest_trust_info) {
14321 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14323 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14325 return NDR_ERR_SUCCESS;
14328 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
14330 uint32_t _ptr_server_name;
14331 uint32_t _ptr_trusted_domain_name;
14332 uint32_t _ptr_forest_trust_info;
14333 TALLOC_CTX *_mem_save_server_name_0;
14334 TALLOC_CTX *_mem_save_trusted_domain_name_0;
14335 TALLOC_CTX *_mem_save_forest_trust_info_0;
14336 TALLOC_CTX *_mem_save_forest_trust_info_1;
14337 if (flags & NDR_IN) {
14338 ZERO_STRUCT(r->out);
14340 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14341 if (_ptr_server_name) {
14342 NDR_PULL_ALLOC(ndr, r->in.server_name);
14343 } else {
14344 r->in.server_name = NULL;
14346 if (r->in.server_name) {
14347 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14348 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14349 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14350 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14351 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14352 return 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));
14354 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14355 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));
14356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14358 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
14359 if (_ptr_trusted_domain_name) {
14360 NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
14361 } else {
14362 r->in.trusted_domain_name = NULL;
14364 if (r->in.trusted_domain_name) {
14365 _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14366 NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
14367 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14368 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14369 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14370 return 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));
14372 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14373 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));
14374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
14376 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14377 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14378 ZERO_STRUCTP(r->out.forest_trust_info);
14380 if (flags & NDR_OUT) {
14381 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14382 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14384 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14385 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14386 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14387 if (_ptr_forest_trust_info) {
14388 NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14389 } else {
14390 *r->out.forest_trust_info = NULL;
14392 if (*r->out.forest_trust_info) {
14393 _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14394 NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14395 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14399 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14401 return NDR_ERR_SUCCESS;
14404 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
14406 ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
14407 ndr->depth++;
14408 if (flags & NDR_SET_VALUES) {
14409 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14411 if (flags & NDR_IN) {
14412 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
14413 ndr->depth++;
14414 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14415 ndr->depth++;
14416 if (r->in.server_name) {
14417 ndr_print_string(ndr, "server_name", r->in.server_name);
14419 ndr->depth--;
14420 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14421 ndr->depth++;
14422 if (r->in.trusted_domain_name) {
14423 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14425 ndr->depth--;
14426 ndr_print_uint32(ndr, "flags", r->in.flags);
14427 ndr->depth--;
14429 if (flags & NDR_OUT) {
14430 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
14431 ndr->depth++;
14432 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14433 ndr->depth++;
14434 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14435 ndr->depth++;
14436 if (*r->out.forest_trust_info) {
14437 ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14439 ndr->depth--;
14440 ndr->depth--;
14441 ndr_print_WERROR(ndr, "result", r->out.result);
14442 ndr->depth--;
14444 ndr->depth--;
14447 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
14449 if (flags & NDR_IN) {
14450 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14451 if (r->in.server_name) {
14452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14455 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));
14457 if (r->in.trusted_domain_name == NULL) {
14458 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14463 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));
14464 if (r->in.credential == NULL) {
14465 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14467 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14470 if (flags & NDR_OUT) {
14471 if (r->out.return_authenticator == NULL) {
14472 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14474 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14475 if (r->out.forest_trust_info == NULL) {
14476 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14478 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14479 if (*r->out.forest_trust_info) {
14480 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14482 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14484 return NDR_ERR_SUCCESS;
14487 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
14489 uint32_t _ptr_server_name;
14490 uint32_t _ptr_forest_trust_info;
14491 TALLOC_CTX *_mem_save_server_name_0;
14492 TALLOC_CTX *_mem_save_credential_0;
14493 TALLOC_CTX *_mem_save_return_authenticator_0;
14494 TALLOC_CTX *_mem_save_forest_trust_info_0;
14495 TALLOC_CTX *_mem_save_forest_trust_info_1;
14496 if (flags & NDR_IN) {
14497 ZERO_STRUCT(r->out);
14499 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14500 if (_ptr_server_name) {
14501 NDR_PULL_ALLOC(ndr, r->in.server_name);
14502 } else {
14503 r->in.server_name = NULL;
14505 if (r->in.server_name) {
14506 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14507 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14508 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14509 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14510 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14511 return 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));
14513 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14514 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));
14515 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14517 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14518 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14519 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14520 return 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));
14522 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14523 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));
14524 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14525 NDR_PULL_ALLOC(ndr, r->in.credential);
14527 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14528 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14529 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14531 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14532 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14533 ZERO_STRUCTP(r->out.return_authenticator);
14534 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14535 ZERO_STRUCTP(r->out.forest_trust_info);
14537 if (flags & NDR_OUT) {
14538 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14539 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14541 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14542 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14543 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14545 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14546 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14548 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14549 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14550 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14551 if (_ptr_forest_trust_info) {
14552 NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14553 } else {
14554 *r->out.forest_trust_info = NULL;
14556 if (*r->out.forest_trust_info) {
14557 _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14558 NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14559 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14563 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14565 return NDR_ERR_SUCCESS;
14568 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
14570 ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
14571 ndr->depth++;
14572 if (flags & NDR_SET_VALUES) {
14573 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14575 if (flags & NDR_IN) {
14576 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
14577 ndr->depth++;
14578 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14579 ndr->depth++;
14580 if (r->in.server_name) {
14581 ndr_print_string(ndr, "server_name", r->in.server_name);
14583 ndr->depth--;
14584 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14585 ndr->depth++;
14586 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14587 ndr->depth--;
14588 ndr_print_ptr(ndr, "credential", r->in.credential);
14589 ndr->depth++;
14590 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14591 ndr->depth--;
14592 ndr_print_uint32(ndr, "flags", r->in.flags);
14593 ndr->depth--;
14595 if (flags & NDR_OUT) {
14596 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
14597 ndr->depth++;
14598 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14599 ndr->depth++;
14600 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14601 ndr->depth--;
14602 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14603 ndr->depth++;
14604 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14605 ndr->depth++;
14606 if (*r->out.forest_trust_info) {
14607 ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14609 ndr->depth--;
14610 ndr->depth--;
14611 ndr_print_WERROR(ndr, "result", r->out.result);
14612 ndr->depth--;
14614 ndr->depth--;
14617 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
14619 if (flags & NDR_IN) {
14620 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14621 if (r->in.server_name) {
14622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14625 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));
14627 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
14628 if (r->in.computer_name) {
14629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14630 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14632 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));
14634 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
14635 if (r->in.credential) {
14636 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14638 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
14639 if (r->in.return_authenticator) {
14640 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14642 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
14643 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14644 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14645 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
14646 if (r->in.flags == NULL) {
14647 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
14651 if (flags & NDR_OUT) {
14652 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
14653 if (r->out.return_authenticator) {
14654 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14656 if (r->out.validation == NULL) {
14657 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14659 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14660 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14661 if (r->out.authoritative == NULL) {
14662 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14664 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
14665 if (r->out.flags == NULL) {
14666 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
14669 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14671 return NDR_ERR_SUCCESS;
14674 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
14676 uint32_t _ptr_server_name;
14677 uint32_t _ptr_computer_name;
14678 uint32_t _ptr_credential;
14679 uint32_t _ptr_return_authenticator;
14680 TALLOC_CTX *_mem_save_server_name_0;
14681 TALLOC_CTX *_mem_save_computer_name_0;
14682 TALLOC_CTX *_mem_save_credential_0;
14683 TALLOC_CTX *_mem_save_return_authenticator_0;
14684 TALLOC_CTX *_mem_save_validation_0;
14685 TALLOC_CTX *_mem_save_authoritative_0;
14686 TALLOC_CTX *_mem_save_flags_0;
14687 if (flags & NDR_IN) {
14688 ZERO_STRUCT(r->out);
14690 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14691 if (_ptr_server_name) {
14692 NDR_PULL_ALLOC(ndr, r->in.server_name);
14693 } else {
14694 r->in.server_name = NULL;
14696 if (r->in.server_name) {
14697 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14698 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14699 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14700 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14701 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14702 return 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));
14704 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14705 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));
14706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14708 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
14709 if (_ptr_computer_name) {
14710 NDR_PULL_ALLOC(ndr, r->in.computer_name);
14711 } else {
14712 r->in.computer_name = NULL;
14714 if (r->in.computer_name) {
14715 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14716 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
14717 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14718 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14719 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14720 return 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));
14722 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14723 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));
14724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
14726 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
14727 if (_ptr_credential) {
14728 NDR_PULL_ALLOC(ndr, r->in.credential);
14729 } else {
14730 r->in.credential = NULL;
14732 if (r->in.credential) {
14733 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14734 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
14735 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
14738 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14739 if (_ptr_return_authenticator) {
14740 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
14741 } else {
14742 r->in.return_authenticator = NULL;
14744 if (r->in.return_authenticator) {
14745 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14746 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
14747 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14750 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
14751 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14752 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14753 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
14754 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14755 NDR_PULL_ALLOC(ndr, r->in.flags);
14757 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14758 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
14759 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
14760 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14761 NDR_PULL_ALLOC(ndr, r->out.validation);
14762 ZERO_STRUCTP(r->out.validation);
14763 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14764 ZERO_STRUCTP(r->out.authoritative);
14765 NDR_PULL_ALLOC(ndr, r->out.flags);
14766 *r->out.flags = *r->in.flags;
14768 if (flags & NDR_OUT) {
14769 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14770 if (_ptr_return_authenticator) {
14771 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14772 } else {
14773 r->out.return_authenticator = NULL;
14775 if (r->out.return_authenticator) {
14776 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14777 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
14778 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14781 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14782 NDR_PULL_ALLOC(ndr, r->out.validation);
14784 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
14785 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
14786 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14787 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14788 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
14789 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14790 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14792 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
14793 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
14794 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
14795 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
14796 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14797 NDR_PULL_ALLOC(ndr, r->out.flags);
14799 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14800 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
14801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
14802 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14803 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14805 return NDR_ERR_SUCCESS;
14808 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
14810 ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
14811 ndr->depth++;
14812 if (flags & NDR_SET_VALUES) {
14813 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14815 if (flags & NDR_IN) {
14816 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
14817 ndr->depth++;
14818 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14819 ndr->depth++;
14820 if (r->in.server_name) {
14821 ndr_print_string(ndr, "server_name", r->in.server_name);
14823 ndr->depth--;
14824 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14825 ndr->depth++;
14826 if (r->in.computer_name) {
14827 ndr_print_string(ndr, "computer_name", r->in.computer_name);
14829 ndr->depth--;
14830 ndr_print_ptr(ndr, "credential", r->in.credential);
14831 ndr->depth++;
14832 if (r->in.credential) {
14833 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14835 ndr->depth--;
14836 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
14837 ndr->depth++;
14838 if (r->in.return_authenticator) {
14839 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
14841 ndr->depth--;
14842 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
14843 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
14844 ndr_print_netr_LogonInfo(ndr, "logon", &r->in.logon);
14845 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
14846 ndr_print_ptr(ndr, "flags", r->in.flags);
14847 ndr->depth++;
14848 ndr_print_uint32(ndr, "flags", *r->in.flags);
14849 ndr->depth--;
14850 ndr->depth--;
14852 if (flags & NDR_OUT) {
14853 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
14854 ndr->depth++;
14855 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14856 ndr->depth++;
14857 if (r->out.return_authenticator) {
14858 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14860 ndr->depth--;
14861 ndr_print_ptr(ndr, "validation", r->out.validation);
14862 ndr->depth++;
14863 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
14864 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
14865 ndr->depth--;
14866 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
14867 ndr->depth++;
14868 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
14869 ndr->depth--;
14870 ndr_print_ptr(ndr, "flags", r->out.flags);
14871 ndr->depth++;
14872 ndr_print_uint32(ndr, "flags", *r->out.flags);
14873 ndr->depth--;
14874 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14875 ndr->depth--;
14877 ndr->depth--;
14880 static enum ndr_err_code ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14882 if (flags & NDR_IN) {
14884 if (flags & NDR_OUT) {
14885 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14887 return NDR_ERR_SUCCESS;
14890 static enum ndr_err_code ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERGETTRUSTINFO *r)
14892 if (flags & NDR_IN) {
14894 if (flags & NDR_OUT) {
14895 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14897 return NDR_ERR_SUCCESS;
14900 _PUBLIC_ void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14902 ndr_print_struct(ndr, name, "netr_NETRSERVERGETTRUSTINFO");
14903 ndr->depth++;
14904 if (flags & NDR_SET_VALUES) {
14905 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14907 if (flags & NDR_IN) {
14908 ndr_print_struct(ndr, "in", "netr_NETRSERVERGETTRUSTINFO");
14909 ndr->depth++;
14910 ndr->depth--;
14912 if (flags & NDR_OUT) {
14913 ndr_print_struct(ndr, "out", "netr_NETRSERVERGETTRUSTINFO");
14914 ndr->depth++;
14915 ndr_print_WERROR(ndr, "result", r->out.result);
14916 ndr->depth--;
14918 ndr->depth--;
14921 static const struct ndr_interface_call netlogon_calls[] = {
14923 "netr_LogonUasLogon",
14924 sizeof(struct netr_LogonUasLogon),
14925 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
14926 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
14927 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
14928 false,
14931 "netr_LogonUasLogoff",
14932 sizeof(struct netr_LogonUasLogoff),
14933 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
14934 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
14935 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
14936 false,
14939 "netr_LogonSamLogon",
14940 sizeof(struct netr_LogonSamLogon),
14941 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
14942 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
14943 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
14944 false,
14947 "netr_LogonSamLogoff",
14948 sizeof(struct netr_LogonSamLogoff),
14949 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
14950 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
14951 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
14952 false,
14955 "netr_ServerReqChallenge",
14956 sizeof(struct netr_ServerReqChallenge),
14957 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
14958 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
14959 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
14960 false,
14963 "netr_ServerAuthenticate",
14964 sizeof(struct netr_ServerAuthenticate),
14965 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
14966 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
14967 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
14968 false,
14971 "netr_ServerPasswordSet",
14972 sizeof(struct netr_ServerPasswordSet),
14973 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
14974 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
14975 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
14976 false,
14979 "netr_DatabaseDeltas",
14980 sizeof(struct netr_DatabaseDeltas),
14981 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
14982 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
14983 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
14984 false,
14987 "netr_DatabaseSync",
14988 sizeof(struct netr_DatabaseSync),
14989 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
14990 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
14991 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
14992 false,
14995 "netr_AccountDeltas",
14996 sizeof(struct netr_AccountDeltas),
14997 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
14998 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
14999 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
15000 false,
15003 "netr_AccountSync",
15004 sizeof(struct netr_AccountSync),
15005 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
15006 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
15007 (ndr_print_function_t) ndr_print_netr_AccountSync,
15008 false,
15011 "netr_GetDcName",
15012 sizeof(struct netr_GetDcName),
15013 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
15014 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
15015 (ndr_print_function_t) ndr_print_netr_GetDcName,
15016 false,
15019 "netr_LogonControl",
15020 sizeof(struct netr_LogonControl),
15021 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
15022 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
15023 (ndr_print_function_t) ndr_print_netr_LogonControl,
15024 false,
15027 "netr_GetAnyDCName",
15028 sizeof(struct netr_GetAnyDCName),
15029 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
15030 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
15031 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
15032 false,
15035 "netr_LogonControl2",
15036 sizeof(struct netr_LogonControl2),
15037 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
15038 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
15039 (ndr_print_function_t) ndr_print_netr_LogonControl2,
15040 false,
15043 "netr_ServerAuthenticate2",
15044 sizeof(struct netr_ServerAuthenticate2),
15045 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
15046 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
15047 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
15048 false,
15051 "netr_DatabaseSync2",
15052 sizeof(struct netr_DatabaseSync2),
15053 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
15054 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
15055 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
15056 false,
15059 "netr_DatabaseRedo",
15060 sizeof(struct netr_DatabaseRedo),
15061 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
15062 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
15063 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
15064 false,
15067 "netr_LogonControl2Ex",
15068 sizeof(struct netr_LogonControl2Ex),
15069 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
15070 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
15071 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
15072 false,
15075 "netr_NetrEnumerateTrustedDomains",
15076 sizeof(struct netr_NetrEnumerateTrustedDomains),
15077 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
15078 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
15079 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
15080 false,
15083 "netr_DsRGetDCName",
15084 sizeof(struct netr_DsRGetDCName),
15085 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
15086 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
15087 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
15088 false,
15091 "netr_NETRLOGONDUMMYROUTINE1",
15092 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
15093 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
15094 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
15095 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
15096 false,
15099 "netr_NETRLOGONSETSERVICEBITS",
15100 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
15101 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
15102 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
15103 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
15104 false,
15107 "netr_LogonGetTrustRid",
15108 sizeof(struct netr_LogonGetTrustRid),
15109 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
15110 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
15111 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
15112 false,
15115 "netr_NETRLOGONCOMPUTESERVERDIGEST",
15116 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
15117 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
15118 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
15119 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
15120 false,
15123 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
15124 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
15125 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
15126 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
15127 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
15128 false,
15131 "netr_ServerAuthenticate3",
15132 sizeof(struct netr_ServerAuthenticate3),
15133 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
15134 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
15135 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
15136 false,
15139 "netr_DsRGetDCNameEx",
15140 sizeof(struct netr_DsRGetDCNameEx),
15141 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
15142 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
15143 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
15144 false,
15147 "netr_DsRGetSiteName",
15148 sizeof(struct netr_DsRGetSiteName),
15149 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
15150 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
15151 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
15152 false,
15155 "netr_LogonGetDomainInfo",
15156 sizeof(struct netr_LogonGetDomainInfo),
15157 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
15158 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
15159 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
15160 false,
15163 "netr_ServerPasswordSet2",
15164 sizeof(struct netr_ServerPasswordSet2),
15165 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
15166 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
15167 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
15168 false,
15171 "netr_ServerPasswordGet",
15172 sizeof(struct netr_ServerPasswordGet),
15173 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
15174 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
15175 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
15176 false,
15179 "netr_NETRLOGONSENDTOSAM",
15180 sizeof(struct netr_NETRLOGONSENDTOSAM),
15181 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
15182 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
15183 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
15184 false,
15187 "netr_DsRAddressToSitenamesW",
15188 sizeof(struct netr_DsRAddressToSitenamesW),
15189 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
15190 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
15191 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
15192 false,
15195 "netr_DsRGetDCNameEx2",
15196 sizeof(struct netr_DsRGetDCNameEx2),
15197 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
15198 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
15199 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
15200 false,
15203 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
15204 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
15205 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
15206 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
15207 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
15208 false,
15211 "netr_NetrEnumerateTrustedDomainsEx",
15212 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
15213 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
15214 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
15215 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
15216 false,
15219 "netr_DsRAddressToSitenamesExW",
15220 sizeof(struct netr_DsRAddressToSitenamesExW),
15221 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
15222 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
15223 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
15224 false,
15227 "netr_DsrGetDcSiteCoverageW",
15228 sizeof(struct netr_DsrGetDcSiteCoverageW),
15229 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
15230 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
15231 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
15232 false,
15235 "netr_LogonSamLogonEx",
15236 sizeof(struct netr_LogonSamLogonEx),
15237 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
15238 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
15239 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
15240 false,
15243 "netr_DsrEnumerateDomainTrusts",
15244 sizeof(struct netr_DsrEnumerateDomainTrusts),
15245 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
15246 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
15247 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
15248 false,
15251 "netr_DsrDeregisterDNSHostRecords",
15252 sizeof(struct netr_DsrDeregisterDNSHostRecords),
15253 (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
15254 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
15255 (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
15256 false,
15259 "netr_ServerTrustPasswordsGet",
15260 sizeof(struct netr_ServerTrustPasswordsGet),
15261 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
15262 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
15263 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
15264 false,
15267 "netr_DsRGetForestTrustInformation",
15268 sizeof(struct netr_DsRGetForestTrustInformation),
15269 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
15270 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
15271 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
15272 false,
15275 "netr_GetForestTrustInformation",
15276 sizeof(struct netr_GetForestTrustInformation),
15277 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
15278 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
15279 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
15280 false,
15283 "netr_LogonSamLogonWithFlags",
15284 sizeof(struct netr_LogonSamLogonWithFlags),
15285 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
15286 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
15287 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
15288 false,
15291 "netr_NETRSERVERGETTRUSTINFO",
15292 sizeof(struct netr_NETRSERVERGETTRUSTINFO),
15293 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERGETTRUSTINFO,
15294 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERGETTRUSTINFO,
15295 (ndr_print_function_t) ndr_print_netr_NETRSERVERGETTRUSTINFO,
15296 false,
15298 { NULL, 0, NULL, NULL, NULL, false }
15301 static const char * const netlogon_endpoint_strings[] = {
15302 "ncacn_np:[\\pipe\\netlogon]",
15303 "ncacn_ip_tcp:",
15304 "ncalrpc:",
15307 static const struct ndr_interface_string_array netlogon_endpoints = {
15308 .count = 3,
15309 .names = netlogon_endpoint_strings
15312 static const char * const netlogon_authservice_strings[] = {
15313 "host",
15316 static const struct ndr_interface_string_array netlogon_authservices = {
15317 .count = 1,
15318 .names = netlogon_authservice_strings
15322 const struct ndr_interface_table ndr_table_netlogon = {
15323 .name = "netlogon",
15324 .syntax_id = {
15325 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
15326 NDR_NETLOGON_VERSION
15328 .helpstring = NDR_NETLOGON_HELPSTRING,
15329 .num_calls = 47,
15330 .calls = netlogon_calls,
15331 .endpoints = &netlogon_endpoints,
15332 .authservices = &netlogon_authservices