r25068: Older samba3 DCs will return DCERPC_FAULT_OP_RNG_ERROR for every opcode on the
[Samba.git] / source / librpc / gen_ndr / ndr_netlogon.c
blob0e0fa196e81ad901eff1551a5946627bf383e814
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 NTSTATUS ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r)
11 if (ndr_flags & NDR_SCALARS) {
12 NDR_CHECK(ndr_push_align(ndr, 4));
13 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
14 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv));
15 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags));
16 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count));
17 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count));
18 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon));
19 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff));
20 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time));
21 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time));
22 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age));
23 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change));
24 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change));
25 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer));
26 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
27 NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path));
28 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
30 if (ndr_flags & NDR_BUFFERS) {
31 if (r->account_name) {
32 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
33 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
34 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
35 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
37 if (r->computer) {
38 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
39 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
40 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
41 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
43 if (r->domain) {
44 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
45 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
46 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
47 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
49 if (r->script_path) {
50 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
51 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
52 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
53 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
56 return NT_STATUS_OK;
59 NTSTATUS ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r)
61 uint32_t _ptr_account_name;
62 TALLOC_CTX *_mem_save_account_name_0;
63 uint32_t _ptr_computer;
64 TALLOC_CTX *_mem_save_computer_0;
65 uint32_t _ptr_domain;
66 TALLOC_CTX *_mem_save_domain_0;
67 uint32_t _ptr_script_path;
68 TALLOC_CTX *_mem_save_script_path_0;
69 if (ndr_flags & NDR_SCALARS) {
70 NDR_CHECK(ndr_pull_align(ndr, 4));
71 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
72 if (_ptr_account_name) {
73 NDR_PULL_ALLOC(ndr, r->account_name);
74 } else {
75 r->account_name = NULL;
77 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv));
78 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags));
79 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count));
80 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count));
81 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon));
82 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff));
83 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time));
84 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time));
85 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age));
86 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change));
87 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change));
88 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer));
89 if (_ptr_computer) {
90 NDR_PULL_ALLOC(ndr, r->computer);
91 } else {
92 r->computer = NULL;
94 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
95 if (_ptr_domain) {
96 NDR_PULL_ALLOC(ndr, r->domain);
97 } else {
98 r->domain = NULL;
100 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path));
101 if (_ptr_script_path) {
102 NDR_PULL_ALLOC(ndr, r->script_path);
103 } else {
104 r->script_path = NULL;
106 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
108 if (ndr_flags & NDR_BUFFERS) {
109 if (r->account_name) {
110 _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
111 NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
112 NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
113 NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
114 if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
115 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
117 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
118 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
121 if (r->computer) {
122 _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr);
123 NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0);
124 NDR_CHECK(ndr_pull_array_size(ndr, &r->computer));
125 NDR_CHECK(ndr_pull_array_length(ndr, &r->computer));
126 if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) {
127 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer), ndr_get_array_length(ndr, &r->computer));
129 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t)));
130 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16));
131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0);
133 if (r->domain) {
134 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
135 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
136 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
137 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
138 if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
139 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
141 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
142 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
143 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
145 if (r->script_path) {
146 _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
147 NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0);
148 NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path));
149 NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path));
150 if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) {
151 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->script_path), ndr_get_array_length(ndr, &r->script_path));
153 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t)));
154 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16));
155 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0);
158 return NT_STATUS_OK;
161 _PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r)
163 ndr_print_struct(ndr, name, "netr_UasInfo");
164 ndr->depth++;
165 ndr_print_ptr(ndr, "account_name", r->account_name);
166 ndr->depth++;
167 if (r->account_name) {
168 ndr_print_string(ndr, "account_name", r->account_name);
170 ndr->depth--;
171 ndr_print_uint32(ndr, "priv", r->priv);
172 ndr_print_uint32(ndr, "auth_flags", r->auth_flags);
173 ndr_print_uint32(ndr, "logon_count", r->logon_count);
174 ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count);
175 ndr_print_time_t(ndr, "last_logon", r->last_logon);
176 ndr_print_time_t(ndr, "last_logoff", r->last_logoff);
177 ndr_print_time_t(ndr, "logoff_time", r->logoff_time);
178 ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time);
179 ndr_print_uint32(ndr, "password_age", r->password_age);
180 ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change);
181 ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change);
182 ndr_print_ptr(ndr, "computer", r->computer);
183 ndr->depth++;
184 if (r->computer) {
185 ndr_print_string(ndr, "computer", r->computer);
187 ndr->depth--;
188 ndr_print_ptr(ndr, "domain", r->domain);
189 ndr->depth++;
190 if (r->domain) {
191 ndr_print_string(ndr, "domain", r->domain);
193 ndr->depth--;
194 ndr_print_ptr(ndr, "script_path", r->script_path);
195 ndr->depth++;
196 if (r->script_path) {
197 ndr_print_string(ndr, "script_path", r->script_path);
199 ndr->depth--;
200 ndr_print_uint32(ndr, "unknown", r->unknown);
201 ndr->depth--;
204 NTSTATUS ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r)
206 if (ndr_flags & NDR_SCALARS) {
207 NDR_CHECK(ndr_push_align(ndr, 4));
208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration));
209 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
211 if (ndr_flags & NDR_BUFFERS) {
213 return NT_STATUS_OK;
216 NTSTATUS ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r)
218 if (ndr_flags & NDR_SCALARS) {
219 NDR_CHECK(ndr_pull_align(ndr, 4));
220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration));
221 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
223 if (ndr_flags & NDR_BUFFERS) {
225 return NT_STATUS_OK;
228 _PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r)
230 ndr_print_struct(ndr, name, "netr_UasLogoffInfo");
231 ndr->depth++;
232 ndr_print_uint32(ndr, "duration", r->duration);
233 ndr_print_uint16(ndr, "logon_count", r->logon_count);
234 ndr->depth--;
237 NTSTATUS ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r)
239 uint32_t cntr_bindata_1;
240 if (ndr_flags & NDR_SCALARS) {
241 NDR_CHECK(ndr_push_align(ndr, 4));
242 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
243 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
244 NDR_CHECK(ndr_push_unique_ptr(ndr, r->bindata));
246 if (ndr_flags & NDR_BUFFERS) {
247 if (r->bindata) {
248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
251 for (cntr_bindata_1 = 0; cntr_bindata_1 < r->length / 2; cntr_bindata_1++) {
252 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bindata[cntr_bindata_1]));
256 return NT_STATUS_OK;
259 NTSTATUS ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r)
261 uint32_t _ptr_bindata;
262 uint32_t cntr_bindata_1;
263 TALLOC_CTX *_mem_save_bindata_0;
264 TALLOC_CTX *_mem_save_bindata_1;
265 if (ndr_flags & NDR_SCALARS) {
266 NDR_CHECK(ndr_pull_align(ndr, 4));
267 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
268 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
269 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bindata));
270 if (_ptr_bindata) {
271 NDR_PULL_ALLOC(ndr, r->bindata);
272 } else {
273 r->bindata = NULL;
276 if (ndr_flags & NDR_BUFFERS) {
277 if (r->bindata) {
278 _mem_save_bindata_0 = NDR_PULL_GET_MEM_CTX(ndr);
279 NDR_PULL_SET_MEM_CTX(ndr, r->bindata, 0);
280 NDR_CHECK(ndr_pull_array_size(ndr, &r->bindata));
281 NDR_CHECK(ndr_pull_array_length(ndr, &r->bindata));
282 if (ndr_get_array_length(ndr, &r->bindata) > ndr_get_array_size(ndr, &r->bindata)) {
283 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->bindata), ndr_get_array_length(ndr, &r->bindata));
285 NDR_PULL_ALLOC_N(ndr, r->bindata, ndr_get_array_size(ndr, &r->bindata));
286 _mem_save_bindata_1 = NDR_PULL_GET_MEM_CTX(ndr);
287 NDR_PULL_SET_MEM_CTX(ndr, r->bindata, 0);
288 for (cntr_bindata_1 = 0; cntr_bindata_1 < r->length / 2; cntr_bindata_1++) {
289 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bindata[cntr_bindata_1]));
291 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bindata_1, 0);
292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bindata_0, 0);
294 if (r->bindata) {
295 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->bindata, r->size / 2));
297 if (r->bindata) {
298 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->bindata, r->length / 2));
301 return NT_STATUS_OK;
304 _PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r)
306 uint32_t cntr_bindata_1;
307 ndr_print_struct(ndr, name, "netr_AcctLockStr");
308 ndr->depth++;
309 ndr_print_uint16(ndr, "size", r->size);
310 ndr_print_uint16(ndr, "length", r->length);
311 ndr_print_ptr(ndr, "bindata", r->bindata);
312 ndr->depth++;
313 if (r->bindata) {
314 ndr->print(ndr, "%s: ARRAY(%d)", "bindata", r->length / 2);
315 ndr->depth++;
316 for (cntr_bindata_1=0;cntr_bindata_1<r->length / 2;cntr_bindata_1++) {
317 char *idx_1=NULL;
318 asprintf(&idx_1, "[%d]", cntr_bindata_1);
319 if (idx_1) {
320 ndr_print_uint16(ndr, "bindata", r->bindata[cntr_bindata_1]);
321 free(idx_1);
324 ndr->depth--;
326 ndr->depth--;
327 ndr->depth--;
330 NTSTATUS ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
332 if (ndr_flags & NDR_SCALARS) {
333 NDR_CHECK(ndr_push_align(ndr, 4));
334 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parameter_control));
336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
338 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
339 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
341 if (ndr_flags & NDR_BUFFERS) {
342 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
343 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
344 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
346 return NT_STATUS_OK;
349 NTSTATUS ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
351 if (ndr_flags & NDR_SCALARS) {
352 NDR_CHECK(ndr_pull_align(ndr, 4));
353 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
354 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parameter_control));
355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
356 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
357 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
358 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
360 if (ndr_flags & NDR_BUFFERS) {
361 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
362 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
363 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
365 return NT_STATUS_OK;
368 _PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
370 ndr_print_struct(ndr, name, "netr_IdentityInfo");
371 ndr->depth++;
372 ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
373 ndr_print_uint32(ndr, "parameter_control", r->parameter_control);
374 ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
375 ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
376 ndr_print_lsa_String(ndr, "account_name", &r->account_name);
377 ndr_print_lsa_String(ndr, "workstation", &r->workstation);
378 ndr->depth--;
381 NTSTATUS ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
383 if (ndr_flags & NDR_SCALARS) {
384 NDR_CHECK(ndr_push_align(ndr, 4));
385 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
386 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
387 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
389 if (ndr_flags & NDR_BUFFERS) {
390 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
391 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
392 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
394 return NT_STATUS_OK;
397 NTSTATUS ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r)
399 if (ndr_flags & NDR_SCALARS) {
400 NDR_CHECK(ndr_pull_align(ndr, 4));
401 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
402 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
403 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
405 if (ndr_flags & NDR_BUFFERS) {
406 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
407 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
408 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
410 return NT_STATUS_OK;
413 _PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
415 ndr_print_struct(ndr, name, "netr_PasswordInfo");
416 ndr->depth++;
417 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
418 ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
419 ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
420 ndr->depth--;
423 NTSTATUS ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
426 uint32_t _flags_save_STRUCT = ndr->flags;
427 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
428 if (ndr_flags & NDR_SCALARS) {
429 NDR_CHECK(ndr_push_align(ndr, 4));
430 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
431 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
432 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
434 if (ndr_flags & NDR_BUFFERS) {
435 if (r->data) {
436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
439 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
442 ndr->flags = _flags_save_STRUCT;
444 return NT_STATUS_OK;
447 NTSTATUS ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
449 uint32_t _ptr_data;
450 TALLOC_CTX *_mem_save_data_0;
452 uint32_t _flags_save_STRUCT = ndr->flags;
453 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
454 if (ndr_flags & NDR_SCALARS) {
455 NDR_CHECK(ndr_pull_align(ndr, 4));
456 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
457 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
458 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
459 if (_ptr_data) {
460 NDR_PULL_ALLOC(ndr, r->data);
461 } else {
462 r->data = NULL;
465 if (ndr_flags & NDR_BUFFERS) {
466 if (r->data) {
467 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
468 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
469 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
470 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
471 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
472 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data));
474 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
475 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
478 if (r->data) {
479 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
481 if (r->data) {
482 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
485 ndr->flags = _flags_save_STRUCT;
487 return NT_STATUS_OK;
490 _PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
492 ndr_print_struct(ndr, name, "netr_ChallengeResponse");
494 uint32_t _flags_save_STRUCT = ndr->flags;
495 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
496 ndr->depth++;
497 ndr_print_uint16(ndr, "length", r->length);
498 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
499 ndr_print_ptr(ndr, "data", r->data);
500 ndr->depth++;
501 if (r->data) {
502 ndr_print_array_uint8(ndr, "data", r->data, r->length);
504 ndr->depth--;
505 ndr->depth--;
506 ndr->flags = _flags_save_STRUCT;
510 NTSTATUS ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
513 uint32_t _flags_save_STRUCT = ndr->flags;
514 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
515 if (ndr_flags & NDR_SCALARS) {
516 NDR_CHECK(ndr_push_align(ndr, 4));
517 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
518 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
519 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
520 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
522 if (ndr_flags & NDR_BUFFERS) {
523 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
524 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
525 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
527 ndr->flags = _flags_save_STRUCT;
529 return NT_STATUS_OK;
532 NTSTATUS ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
535 uint32_t _flags_save_STRUCT = ndr->flags;
536 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
537 if (ndr_flags & NDR_SCALARS) {
538 NDR_CHECK(ndr_pull_align(ndr, 4));
539 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
540 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
541 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
542 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
544 if (ndr_flags & NDR_BUFFERS) {
545 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
546 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
547 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
549 ndr->flags = _flags_save_STRUCT;
551 return NT_STATUS_OK;
554 _PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
556 ndr_print_struct(ndr, name, "netr_NetworkInfo");
558 uint32_t _flags_save_STRUCT = ndr->flags;
559 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
560 ndr->depth++;
561 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
562 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
563 ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
564 ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
565 ndr->depth--;
566 ndr->flags = _flags_save_STRUCT;
570 _PUBLIC_ NTSTATUS ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, const union netr_LogonLevel *r)
572 if (ndr_flags & NDR_SCALARS) {
573 int level = ndr_push_get_switch_value(ndr, r);
574 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
575 switch (level) {
576 case 1:
577 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
578 break;
580 case 2:
581 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
582 break;
584 case 3:
585 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
586 break;
588 case 5:
589 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
590 break;
592 case 6:
593 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
594 break;
596 default:
597 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
600 if (ndr_flags & NDR_BUFFERS) {
601 int level = ndr_push_get_switch_value(ndr, r);
602 switch (level) {
603 case 1:
604 if (r->password) {
605 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
607 break;
609 case 2:
610 if (r->network) {
611 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
613 break;
615 case 3:
616 if (r->password) {
617 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
619 break;
621 case 5:
622 if (r->password) {
623 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
625 break;
627 case 6:
628 if (r->network) {
629 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
631 break;
633 default:
634 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
637 return NT_STATUS_OK;
640 _PUBLIC_ NTSTATUS ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, union netr_LogonLevel *r)
642 int level;
643 uint16_t _level;
644 TALLOC_CTX *_mem_save_password_0;
645 TALLOC_CTX *_mem_save_network_0;
646 level = ndr_pull_get_switch_value(ndr, r);
647 if (ndr_flags & NDR_SCALARS) {
648 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
649 if (_level != level) {
650 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
652 switch (level) {
653 case 1: {
654 uint32_t _ptr_password;
655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
656 if (_ptr_password) {
657 NDR_PULL_ALLOC(ndr, r->password);
658 } else {
659 r->password = NULL;
661 break; }
663 case 2: {
664 uint32_t _ptr_network;
665 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
666 if (_ptr_network) {
667 NDR_PULL_ALLOC(ndr, r->network);
668 } else {
669 r->network = NULL;
671 break; }
673 case 3: {
674 uint32_t _ptr_password;
675 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
676 if (_ptr_password) {
677 NDR_PULL_ALLOC(ndr, r->password);
678 } else {
679 r->password = NULL;
681 break; }
683 case 5: {
684 uint32_t _ptr_password;
685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
686 if (_ptr_password) {
687 NDR_PULL_ALLOC(ndr, r->password);
688 } else {
689 r->password = NULL;
691 break; }
693 case 6: {
694 uint32_t _ptr_network;
695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
696 if (_ptr_network) {
697 NDR_PULL_ALLOC(ndr, r->network);
698 } else {
699 r->network = NULL;
701 break; }
703 default:
704 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
707 if (ndr_flags & NDR_BUFFERS) {
708 switch (level) {
709 case 1:
710 if (r->password) {
711 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
712 NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
713 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
716 break;
718 case 2:
719 if (r->network) {
720 _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
721 NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
722 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
725 break;
727 case 3:
728 if (r->password) {
729 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
730 NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
731 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
734 break;
736 case 5:
737 if (r->password) {
738 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
739 NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
740 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
743 break;
745 case 6:
746 if (r->network) {
747 _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
748 NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
749 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
752 break;
754 default:
755 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
758 return NT_STATUS_OK;
761 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, const union netr_LogonLevel *r)
763 int level;
764 level = ndr_print_get_switch_value(ndr, r);
765 ndr_print_union(ndr, name, level, "netr_LogonLevel");
766 switch (level) {
767 case 1:
768 ndr_print_ptr(ndr, "password", r->password);
769 ndr->depth++;
770 if (r->password) {
771 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
773 ndr->depth--;
774 break;
776 case 2:
777 ndr_print_ptr(ndr, "network", r->network);
778 ndr->depth++;
779 if (r->network) {
780 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
782 ndr->depth--;
783 break;
785 case 3:
786 ndr_print_ptr(ndr, "password", r->password);
787 ndr->depth++;
788 if (r->password) {
789 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
791 ndr->depth--;
792 break;
794 case 5:
795 ndr_print_ptr(ndr, "password", r->password);
796 ndr->depth++;
797 if (r->password) {
798 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
800 ndr->depth--;
801 break;
803 case 6:
804 ndr_print_ptr(ndr, "network", r->network);
805 ndr->depth++;
806 if (r->network) {
807 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
809 ndr->depth--;
810 break;
812 default:
813 ndr_print_bad_level(ndr, name, level);
817 _PUBLIC_ NTSTATUS ndr_push_netr_GroupMembership(struct ndr_push *ndr, int ndr_flags, const struct netr_GroupMembership *r)
819 if (ndr_flags & NDR_SCALARS) {
820 NDR_CHECK(ndr_push_align(ndr, 4));
821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
824 if (ndr_flags & NDR_BUFFERS) {
826 return NT_STATUS_OK;
829 _PUBLIC_ NTSTATUS ndr_pull_netr_GroupMembership(struct ndr_pull *ndr, int ndr_flags, struct netr_GroupMembership *r)
831 if (ndr_flags & NDR_SCALARS) {
832 NDR_CHECK(ndr_pull_align(ndr, 4));
833 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
834 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
836 if (ndr_flags & NDR_BUFFERS) {
838 return NT_STATUS_OK;
841 _PUBLIC_ void ndr_print_netr_GroupMembership(struct ndr_print *ndr, const char *name, const struct netr_GroupMembership *r)
843 ndr_print_struct(ndr, name, "netr_GroupMembership");
844 ndr->depth++;
845 ndr_print_uint32(ndr, "rid", r->rid);
846 ndr_print_uint32(ndr, "attributes", r->attributes);
847 ndr->depth--;
850 _PUBLIC_ NTSTATUS ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
853 uint32_t _flags_save_STRUCT = ndr->flags;
854 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
855 if (ndr_flags & NDR_SCALARS) {
856 NDR_CHECK(ndr_push_align(ndr, 1));
857 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
859 if (ndr_flags & NDR_BUFFERS) {
861 ndr->flags = _flags_save_STRUCT;
863 return NT_STATUS_OK;
866 _PUBLIC_ NTSTATUS ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
869 uint32_t _flags_save_STRUCT = ndr->flags;
870 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
871 if (ndr_flags & NDR_SCALARS) {
872 NDR_CHECK(ndr_pull_align(ndr, 1));
873 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
875 if (ndr_flags & NDR_BUFFERS) {
877 ndr->flags = _flags_save_STRUCT;
879 return NT_STATUS_OK;
882 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
884 ndr_print_struct(ndr, name, "netr_UserSessionKey");
886 uint32_t _flags_save_STRUCT = ndr->flags;
887 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
888 ndr->depth++;
889 ndr_print_array_uint8(ndr, "key", r->key, 16);
890 ndr->depth--;
891 ndr->flags = _flags_save_STRUCT;
895 _PUBLIC_ NTSTATUS ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
898 uint32_t _flags_save_STRUCT = ndr->flags;
899 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
900 if (ndr_flags & NDR_SCALARS) {
901 NDR_CHECK(ndr_push_align(ndr, 1));
902 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
904 if (ndr_flags & NDR_BUFFERS) {
906 ndr->flags = _flags_save_STRUCT;
908 return NT_STATUS_OK;
911 _PUBLIC_ NTSTATUS ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
914 uint32_t _flags_save_STRUCT = ndr->flags;
915 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
916 if (ndr_flags & NDR_SCALARS) {
917 NDR_CHECK(ndr_pull_align(ndr, 1));
918 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
920 if (ndr_flags & NDR_BUFFERS) {
922 ndr->flags = _flags_save_STRUCT;
924 return NT_STATUS_OK;
927 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
929 ndr_print_struct(ndr, name, "netr_LMSessionKey");
931 uint32_t _flags_save_STRUCT = ndr->flags;
932 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
933 ndr->depth++;
934 ndr_print_array_uint8(ndr, "key", r->key, 8);
935 ndr->depth--;
936 ndr->flags = _flags_save_STRUCT;
940 _PUBLIC_ NTSTATUS ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
942 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
943 return NT_STATUS_OK;
946 _PUBLIC_ NTSTATUS ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
948 uint32_t v;
949 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
950 *r = v;
951 return NT_STATUS_OK;
954 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
956 ndr_print_uint32(ndr, name, r);
957 ndr->depth++;
958 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
959 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
960 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
961 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
962 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
963 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
964 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
965 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
966 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
967 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
968 ndr->depth--;
971 NTSTATUS ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
973 uint32_t cntr_unknown_0;
974 if (ndr_flags & NDR_SCALARS) {
975 NDR_CHECK(ndr_push_align(ndr, 4));
976 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
977 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
978 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
979 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
980 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
981 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
982 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
983 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
984 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
985 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
986 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
987 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
988 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
989 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
991 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
992 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
993 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
994 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
995 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
996 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
997 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
998 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
999 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
1000 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
1004 if (ndr_flags & NDR_BUFFERS) {
1005 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1006 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1007 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1008 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1009 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1010 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1011 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1012 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1013 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1014 if (r->domain_sid) {
1015 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1018 return NT_STATUS_OK;
1021 NTSTATUS ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
1023 uint32_t _ptr_domain_sid;
1024 TALLOC_CTX *_mem_save_domain_sid_0;
1025 uint32_t cntr_unknown_0;
1026 if (ndr_flags & NDR_SCALARS) {
1027 NDR_CHECK(ndr_pull_align(ndr, 4));
1028 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
1029 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
1030 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
1031 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
1032 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
1033 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
1034 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1035 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1036 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1037 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1038 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1039 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1040 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
1041 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
1042 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
1043 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1044 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1045 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
1046 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1047 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1048 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
1050 if (_ptr_domain_sid) {
1051 NDR_PULL_ALLOC(ndr, r->domain_sid);
1052 } else {
1053 r->domain_sid = NULL;
1055 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1056 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
1057 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1058 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
1061 if (ndr_flags & NDR_BUFFERS) {
1062 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1063 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1064 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1065 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1066 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1067 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1068 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1069 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1070 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1071 if (r->domain_sid) {
1072 _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1073 NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1074 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1078 return NT_STATUS_OK;
1081 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
1083 uint32_t cntr_unknown_0;
1084 ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1085 ndr->depth++;
1086 ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1087 ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1088 ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1089 ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1090 ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1091 ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1092 ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1093 ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1094 ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1095 ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1096 ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1097 ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1098 ndr_print_uint16(ndr, "logon_count", r->logon_count);
1099 ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1100 ndr_print_uint32(ndr, "rid", r->rid);
1101 ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1102 ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1103 ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1104 ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1105 ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1106 ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1107 ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1108 ndr->depth++;
1109 if (r->domain_sid) {
1110 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1112 ndr->depth--;
1113 ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1114 ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1115 ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 7);
1116 ndr->depth++;
1117 for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1118 char *idx_0=NULL;
1119 asprintf(&idx_0, "[%d]", cntr_unknown_0);
1120 if (idx_0) {
1121 ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1122 free(idx_0);
1125 ndr->depth--;
1126 ndr->depth--;
1129 NTSTATUS ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
1131 if (ndr_flags & NDR_SCALARS) {
1132 NDR_CHECK(ndr_push_align(ndr, 4));
1133 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1135 if (ndr_flags & NDR_BUFFERS) {
1136 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1138 return NT_STATUS_OK;
1141 NTSTATUS ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
1143 if (ndr_flags & NDR_SCALARS) {
1144 NDR_CHECK(ndr_pull_align(ndr, 4));
1145 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1147 if (ndr_flags & NDR_BUFFERS) {
1148 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1150 return NT_STATUS_OK;
1153 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
1155 ndr_print_struct(ndr, name, "netr_SamInfo2");
1156 ndr->depth++;
1157 ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1158 ndr->depth--;
1161 NTSTATUS ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
1163 if (ndr_flags & NDR_SCALARS) {
1164 NDR_CHECK(ndr_push_align(ndr, 4));
1165 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribute));
1168 if (ndr_flags & NDR_BUFFERS) {
1169 if (r->sid) {
1170 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1173 return NT_STATUS_OK;
1176 NTSTATUS ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
1178 uint32_t _ptr_sid;
1179 TALLOC_CTX *_mem_save_sid_0;
1180 if (ndr_flags & NDR_SCALARS) {
1181 NDR_CHECK(ndr_pull_align(ndr, 4));
1182 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1183 if (_ptr_sid) {
1184 NDR_PULL_ALLOC(ndr, r->sid);
1185 } else {
1186 r->sid = NULL;
1188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribute));
1190 if (ndr_flags & NDR_BUFFERS) {
1191 if (r->sid) {
1192 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1193 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1194 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1198 return NT_STATUS_OK;
1201 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
1203 ndr_print_struct(ndr, name, "netr_SidAttr");
1204 ndr->depth++;
1205 ndr_print_ptr(ndr, "sid", r->sid);
1206 ndr->depth++;
1207 if (r->sid) {
1208 ndr_print_dom_sid2(ndr, "sid", r->sid);
1210 ndr->depth--;
1211 ndr_print_uint32(ndr, "attribute", r->attribute);
1212 ndr->depth--;
1215 _PUBLIC_ NTSTATUS ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
1217 uint32_t cntr_sids_1;
1218 if (ndr_flags & NDR_SCALARS) {
1219 NDR_CHECK(ndr_push_align(ndr, 4));
1220 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1222 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1224 if (ndr_flags & NDR_BUFFERS) {
1225 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1226 if (r->sids) {
1227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1228 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1229 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1231 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1232 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1236 return NT_STATUS_OK;
1239 _PUBLIC_ NTSTATUS ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
1241 uint32_t _ptr_sids;
1242 uint32_t cntr_sids_1;
1243 TALLOC_CTX *_mem_save_sids_0;
1244 TALLOC_CTX *_mem_save_sids_1;
1245 if (ndr_flags & NDR_SCALARS) {
1246 NDR_CHECK(ndr_pull_align(ndr, 4));
1247 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1248 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1250 if (_ptr_sids) {
1251 NDR_PULL_ALLOC(ndr, r->sids);
1252 } else {
1253 r->sids = NULL;
1256 if (ndr_flags & NDR_BUFFERS) {
1257 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1258 if (r->sids) {
1259 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1260 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1261 NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1262 NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1263 _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1264 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1265 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1266 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1268 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1269 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1271 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1274 if (r->sids) {
1275 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1278 return NT_STATUS_OK;
1281 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
1283 uint32_t cntr_sids_1;
1284 ndr_print_struct(ndr, name, "netr_SamInfo3");
1285 ndr->depth++;
1286 ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1287 ndr_print_uint32(ndr, "sidcount", r->sidcount);
1288 ndr_print_ptr(ndr, "sids", r->sids);
1289 ndr->depth++;
1290 if (r->sids) {
1291 ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->sidcount);
1292 ndr->depth++;
1293 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1294 char *idx_1=NULL;
1295 asprintf(&idx_1, "[%d]", cntr_sids_1);
1296 if (idx_1) {
1297 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1298 free(idx_1);
1301 ndr->depth--;
1303 ndr->depth--;
1304 ndr->depth--;
1307 NTSTATUS ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
1309 uint32_t cntr_sids_1;
1310 uint32_t cntr_unknown4_0;
1311 if (ndr_flags & NDR_SCALARS) {
1312 NDR_CHECK(ndr_push_align(ndr, 4));
1313 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1315 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1316 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1317 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1318 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1322 if (ndr_flags & NDR_BUFFERS) {
1323 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1324 if (r->sids) {
1325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1326 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1327 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1329 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1330 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1333 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1334 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1336 return NT_STATUS_OK;
1339 NTSTATUS ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
1341 uint32_t _ptr_sids;
1342 uint32_t cntr_sids_1;
1343 TALLOC_CTX *_mem_save_sids_0;
1344 TALLOC_CTX *_mem_save_sids_1;
1345 uint32_t cntr_unknown4_0;
1346 if (ndr_flags & NDR_SCALARS) {
1347 NDR_CHECK(ndr_pull_align(ndr, 4));
1348 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1350 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1351 if (_ptr_sids) {
1352 NDR_PULL_ALLOC(ndr, r->sids);
1353 } else {
1354 r->sids = NULL;
1356 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1357 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1358 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1359 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1362 if (ndr_flags & NDR_BUFFERS) {
1363 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1364 if (r->sids) {
1365 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1366 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1367 NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1368 NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1369 _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1370 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1371 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1372 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1374 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1375 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1377 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1380 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1381 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1382 if (r->sids) {
1383 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1386 return NT_STATUS_OK;
1389 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
1391 uint32_t cntr_sids_1;
1392 uint32_t cntr_unknown4_0;
1393 ndr_print_struct(ndr, name, "netr_SamInfo6");
1394 ndr->depth++;
1395 ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1396 ndr_print_uint32(ndr, "sidcount", r->sidcount);
1397 ndr_print_ptr(ndr, "sids", r->sids);
1398 ndr->depth++;
1399 if (r->sids) {
1400 ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->sidcount);
1401 ndr->depth++;
1402 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1403 char *idx_1=NULL;
1404 asprintf(&idx_1, "[%d]", cntr_sids_1);
1405 if (idx_1) {
1406 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1407 free(idx_1);
1410 ndr->depth--;
1412 ndr->depth--;
1413 ndr_print_lsa_String(ndr, "forest", &r->forest);
1414 ndr_print_lsa_String(ndr, "principle", &r->principle);
1415 ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", 20);
1416 ndr->depth++;
1417 for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1418 char *idx_0=NULL;
1419 asprintf(&idx_0, "[%d]", cntr_unknown4_0);
1420 if (idx_0) {
1421 ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1422 free(idx_0);
1425 ndr->depth--;
1426 ndr->depth--;
1429 NTSTATUS ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
1431 uint32_t cntr_expansionroom_0;
1432 if (ndr_flags & NDR_SCALARS) {
1433 NDR_CHECK(ndr_push_align(ndr, 4));
1434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1435 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1436 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1437 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1438 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1440 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1441 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1442 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1445 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1446 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1447 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1448 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1450 if (ndr_flags & NDR_BUFFERS) {
1451 if (r->pac) {
1452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1453 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1455 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1456 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1457 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1458 if (r->auth) {
1459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1460 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1462 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1463 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1464 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1465 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1467 return NT_STATUS_OK;
1470 NTSTATUS ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
1472 uint32_t _ptr_pac;
1473 TALLOC_CTX *_mem_save_pac_0;
1474 uint32_t _ptr_auth;
1475 TALLOC_CTX *_mem_save_auth_0;
1476 uint32_t cntr_expansionroom_0;
1477 if (ndr_flags & NDR_SCALARS) {
1478 NDR_CHECK(ndr_pull_align(ndr, 4));
1479 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1481 if (_ptr_pac) {
1482 NDR_PULL_ALLOC(ndr, r->pac);
1483 } else {
1484 r->pac = NULL;
1486 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1487 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1488 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1489 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1490 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1491 if (_ptr_auth) {
1492 NDR_PULL_ALLOC(ndr, r->auth);
1493 } else {
1494 r->auth = NULL;
1496 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1497 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1498 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1500 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1501 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1502 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1503 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1505 if (ndr_flags & NDR_BUFFERS) {
1506 if (r->pac) {
1507 _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1508 NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1509 NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1510 NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1511 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1514 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1515 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1516 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1517 if (r->auth) {
1518 _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1519 NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1520 NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1521 NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1522 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1525 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1526 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1527 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1528 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1529 if (r->pac) {
1530 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1532 if (r->auth) {
1533 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1536 return NT_STATUS_OK;
1539 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
1541 uint32_t cntr_expansionroom_0;
1542 ndr_print_struct(ndr, name, "netr_PacInfo");
1543 ndr->depth++;
1544 ndr_print_uint32(ndr, "pac_size", r->pac_size);
1545 ndr_print_ptr(ndr, "pac", r->pac);
1546 ndr->depth++;
1547 if (r->pac) {
1548 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1550 ndr->depth--;
1551 ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1552 ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1553 ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1554 ndr_print_uint32(ndr, "auth_size", r->auth_size);
1555 ndr_print_ptr(ndr, "auth", r->auth);
1556 ndr->depth++;
1557 if (r->auth) {
1558 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1560 ndr->depth--;
1561 ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1562 ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", 10);
1563 ndr->depth++;
1564 for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1565 char *idx_0=NULL;
1566 asprintf(&idx_0, "[%d]", cntr_expansionroom_0);
1567 if (idx_0) {
1568 ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1569 free(idx_0);
1572 ndr->depth--;
1573 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1574 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1575 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1576 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1577 ndr->depth--;
1580 _PUBLIC_ NTSTATUS ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
1582 if (ndr_flags & NDR_SCALARS) {
1583 int level = ndr_push_get_switch_value(ndr, r);
1584 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1585 switch (level) {
1586 case 2:
1587 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1588 break;
1590 case 3:
1591 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1592 break;
1594 case 4:
1595 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1596 break;
1598 case 5:
1599 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1600 break;
1602 case 6:
1603 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1604 break;
1606 default:
1607 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1610 if (ndr_flags & NDR_BUFFERS) {
1611 int level = ndr_push_get_switch_value(ndr, r);
1612 switch (level) {
1613 case 2:
1614 if (r->sam2) {
1615 NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1617 break;
1619 case 3:
1620 if (r->sam3) {
1621 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1623 break;
1625 case 4:
1626 if (r->pac) {
1627 NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1629 break;
1631 case 5:
1632 if (r->pac) {
1633 NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1635 break;
1637 case 6:
1638 if (r->sam6) {
1639 NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1641 break;
1643 default:
1644 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1647 return NT_STATUS_OK;
1650 _PUBLIC_ NTSTATUS ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
1652 int level;
1653 uint16_t _level;
1654 TALLOC_CTX *_mem_save_sam2_0;
1655 TALLOC_CTX *_mem_save_sam3_0;
1656 TALLOC_CTX *_mem_save_pac_0;
1657 TALLOC_CTX *_mem_save_sam6_0;
1658 level = ndr_pull_get_switch_value(ndr, r);
1659 if (ndr_flags & NDR_SCALARS) {
1660 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1661 if (_level != level) {
1662 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1664 switch (level) {
1665 case 2: {
1666 uint32_t _ptr_sam2;
1667 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1668 if (_ptr_sam2) {
1669 NDR_PULL_ALLOC(ndr, r->sam2);
1670 } else {
1671 r->sam2 = NULL;
1673 break; }
1675 case 3: {
1676 uint32_t _ptr_sam3;
1677 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1678 if (_ptr_sam3) {
1679 NDR_PULL_ALLOC(ndr, r->sam3);
1680 } else {
1681 r->sam3 = NULL;
1683 break; }
1685 case 4: {
1686 uint32_t _ptr_pac;
1687 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1688 if (_ptr_pac) {
1689 NDR_PULL_ALLOC(ndr, r->pac);
1690 } else {
1691 r->pac = NULL;
1693 break; }
1695 case 5: {
1696 uint32_t _ptr_pac;
1697 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1698 if (_ptr_pac) {
1699 NDR_PULL_ALLOC(ndr, r->pac);
1700 } else {
1701 r->pac = NULL;
1703 break; }
1705 case 6: {
1706 uint32_t _ptr_sam6;
1707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1708 if (_ptr_sam6) {
1709 NDR_PULL_ALLOC(ndr, r->sam6);
1710 } else {
1711 r->sam6 = NULL;
1713 break; }
1715 default:
1716 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1719 if (ndr_flags & NDR_BUFFERS) {
1720 switch (level) {
1721 case 2:
1722 if (r->sam2) {
1723 _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1724 NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1725 NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1728 break;
1730 case 3:
1731 if (r->sam3) {
1732 _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1733 NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1734 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1737 break;
1739 case 4:
1740 if (r->pac) {
1741 _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1742 NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1743 NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1746 break;
1748 case 5:
1749 if (r->pac) {
1750 _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1751 NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1752 NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1755 break;
1757 case 6:
1758 if (r->sam6) {
1759 _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1760 NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1761 NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1764 break;
1766 default:
1767 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1770 return NT_STATUS_OK;
1773 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
1775 int level;
1776 level = ndr_print_get_switch_value(ndr, r);
1777 ndr_print_union(ndr, name, level, "netr_Validation");
1778 switch (level) {
1779 case 2:
1780 ndr_print_ptr(ndr, "sam2", r->sam2);
1781 ndr->depth++;
1782 if (r->sam2) {
1783 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
1785 ndr->depth--;
1786 break;
1788 case 3:
1789 ndr_print_ptr(ndr, "sam3", r->sam3);
1790 ndr->depth++;
1791 if (r->sam3) {
1792 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
1794 ndr->depth--;
1795 break;
1797 case 4:
1798 ndr_print_ptr(ndr, "pac", r->pac);
1799 ndr->depth++;
1800 if (r->pac) {
1801 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1803 ndr->depth--;
1804 break;
1806 case 5:
1807 ndr_print_ptr(ndr, "pac", r->pac);
1808 ndr->depth++;
1809 if (r->pac) {
1810 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1812 ndr->depth--;
1813 break;
1815 case 6:
1816 ndr_print_ptr(ndr, "sam6", r->sam6);
1817 ndr->depth++;
1818 if (r->sam6) {
1819 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
1821 ndr->depth--;
1822 break;
1824 default:
1825 ndr_print_bad_level(ndr, name, level);
1829 _PUBLIC_ NTSTATUS ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
1832 uint32_t _flags_save_STRUCT = ndr->flags;
1833 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1834 if (ndr_flags & NDR_SCALARS) {
1835 NDR_CHECK(ndr_push_align(ndr, 1));
1836 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1838 if (ndr_flags & NDR_BUFFERS) {
1840 ndr->flags = _flags_save_STRUCT;
1842 return NT_STATUS_OK;
1845 _PUBLIC_ NTSTATUS ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
1848 uint32_t _flags_save_STRUCT = ndr->flags;
1849 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1850 if (ndr_flags & NDR_SCALARS) {
1851 NDR_CHECK(ndr_pull_align(ndr, 1));
1852 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1854 if (ndr_flags & NDR_BUFFERS) {
1856 ndr->flags = _flags_save_STRUCT;
1858 return NT_STATUS_OK;
1861 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
1863 ndr_print_struct(ndr, name, "netr_Credential");
1865 uint32_t _flags_save_STRUCT = ndr->flags;
1866 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1867 ndr->depth++;
1868 ndr_print_array_uint8(ndr, "data", r->data, 8);
1869 ndr->depth--;
1870 ndr->flags = _flags_save_STRUCT;
1874 _PUBLIC_ NTSTATUS ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
1876 if (ndr_flags & NDR_SCALARS) {
1877 NDR_CHECK(ndr_push_align(ndr, 4));
1878 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1879 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
1881 if (ndr_flags & NDR_BUFFERS) {
1883 return NT_STATUS_OK;
1886 _PUBLIC_ NTSTATUS ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
1888 if (ndr_flags & NDR_SCALARS) {
1889 NDR_CHECK(ndr_pull_align(ndr, 4));
1890 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1891 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
1893 if (ndr_flags & NDR_BUFFERS) {
1895 return NT_STATUS_OK;
1898 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
1900 ndr_print_struct(ndr, name, "netr_Authenticator");
1901 ndr->depth++;
1902 ndr_print_netr_Credential(ndr, "cred", &r->cred);
1903 ndr_print_time_t(ndr, "timestamp", r->timestamp);
1904 ndr->depth--;
1907 NTSTATUS ndr_push_netr_DELTA_DELETE_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_USER *r)
1909 if (ndr_flags & NDR_SCALARS) {
1910 NDR_CHECK(ndr_push_align(ndr, 4));
1911 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
1912 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1913 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1914 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1915 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
1917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
1918 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
1919 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
1921 if (ndr_flags & NDR_BUFFERS) {
1922 if (r->account_name) {
1923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1924 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1925 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1926 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
1928 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1929 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1930 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1931 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1933 return NT_STATUS_OK;
1936 NTSTATUS ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
1938 uint32_t _ptr_account_name;
1939 TALLOC_CTX *_mem_save_account_name_0;
1940 if (ndr_flags & NDR_SCALARS) {
1941 NDR_CHECK(ndr_pull_align(ndr, 4));
1942 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
1943 if (_ptr_account_name) {
1944 NDR_PULL_ALLOC(ndr, r->account_name);
1945 } else {
1946 r->account_name = NULL;
1948 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1949 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1950 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1951 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1952 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
1953 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
1954 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
1955 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
1957 if (ndr_flags & NDR_BUFFERS) {
1958 if (r->account_name) {
1959 _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1960 NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
1961 NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
1962 NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
1963 if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
1964 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
1966 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
1967 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
1968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
1970 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1971 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1972 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1973 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1975 return NT_STATUS_OK;
1978 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
1980 ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
1981 ndr->depth++;
1982 ndr_print_ptr(ndr, "account_name", r->account_name);
1983 ndr->depth++;
1984 if (r->account_name) {
1985 ndr_print_string(ndr, "account_name", r->account_name);
1987 ndr->depth--;
1988 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1989 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1990 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1991 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1992 ndr_print_uint32(ndr, "unknown5", r->unknown5);
1993 ndr_print_uint32(ndr, "unknown6", r->unknown6);
1994 ndr_print_uint32(ndr, "unknown7", r->unknown7);
1995 ndr_print_uint32(ndr, "unknown8", r->unknown8);
1996 ndr->depth--;
1999 NTSTATUS ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
2001 if (ndr_flags & NDR_SCALARS) {
2002 NDR_CHECK(ndr_push_align(ndr, 4));
2003 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2004 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
2006 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2008 if (ndr_flags & NDR_BUFFERS) {
2009 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
2011 return NT_STATUS_OK;
2014 NTSTATUS ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
2016 if (ndr_flags & NDR_SCALARS) {
2017 NDR_CHECK(ndr_pull_align(ndr, 4));
2018 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
2019 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
2020 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
2021 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2023 if (ndr_flags & NDR_BUFFERS) {
2024 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
2026 return NT_STATUS_OK;
2029 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
2031 ndr_print_struct(ndr, name, "netr_USER_KEY16");
2032 ndr->depth++;
2033 ndr_print_uint16(ndr, "length", r->length);
2034 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
2035 ndr_print_uint32(ndr, "flags", r->flags);
2036 ndr_print_samr_Password(ndr, "pwd", &r->pwd);
2037 ndr->depth--;
2040 NTSTATUS ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
2042 if (ndr_flags & NDR_SCALARS) {
2043 NDR_CHECK(ndr_push_align(ndr, 4));
2044 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2045 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_size));
2046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2047 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2048 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_size));
2049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2050 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2051 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2053 if (ndr_flags & NDR_BUFFERS) {
2055 return NT_STATUS_OK;
2058 NTSTATUS ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
2060 if (ndr_flags & NDR_SCALARS) {
2061 NDR_CHECK(ndr_pull_align(ndr, 4));
2062 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
2063 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2064 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2065 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2066 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2067 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2068 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2069 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2070 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2071 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2073 if (ndr_flags & NDR_BUFFERS) {
2075 return NT_STATUS_OK;
2078 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
2080 ndr_print_struct(ndr, name, "netr_PasswordHistory");
2081 ndr->depth++;
2082 ndr_print_uint16(ndr, "nt_length", r->nt_length);
2083 ndr_print_uint16(ndr, "nt_size", r->nt_size);
2084 ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2085 ndr_print_uint16(ndr, "lm_length", r->lm_length);
2086 ndr_print_uint16(ndr, "lm_size", r->lm_size);
2087 ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2088 ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2089 ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2090 ndr->depth--;
2093 NTSTATUS ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
2095 if (ndr_flags & NDR_SCALARS) {
2096 NDR_CHECK(ndr_push_align(ndr, 4));
2097 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2098 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2099 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->lmhistory));
2101 if (ndr_flags & NDR_BUFFERS) {
2102 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2103 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2105 return NT_STATUS_OK;
2108 NTSTATUS ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
2110 if (ndr_flags & NDR_SCALARS) {
2111 NDR_CHECK(ndr_pull_align(ndr, 4));
2112 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2113 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2114 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->lmhistory));
2116 if (ndr_flags & NDR_BUFFERS) {
2117 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2118 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2120 return NT_STATUS_OK;
2123 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
2125 ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2126 ndr->depth++;
2127 ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2128 ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2129 ndr_print_netr_PasswordHistory(ndr, "lmhistory", &r->lmhistory);
2130 ndr->depth--;
2133 NTSTATUS ndr_push_netr_USER_KEY_UNION(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY_UNION *r)
2135 if (ndr_flags & NDR_SCALARS) {
2136 NDR_CHECK(ndr_push_align(ndr, 4));
2137 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2139 if (ndr_flags & NDR_BUFFERS) {
2140 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2142 return NT_STATUS_OK;
2145 NTSTATUS ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
2147 if (ndr_flags & NDR_SCALARS) {
2148 NDR_CHECK(ndr_pull_align(ndr, 4));
2149 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2151 if (ndr_flags & NDR_BUFFERS) {
2152 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2154 return NT_STATUS_OK;
2157 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
2159 ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2160 ndr->depth++;
2161 ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2162 ndr->depth--;
2165 _PUBLIC_ NTSTATUS ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
2167 if (ndr_flags & NDR_SCALARS) {
2168 NDR_CHECK(ndr_push_align(ndr, 4));
2169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2170 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2172 if (ndr_flags & NDR_BUFFERS) {
2173 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2175 return NT_STATUS_OK;
2178 _PUBLIC_ NTSTATUS ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
2180 if (ndr_flags & NDR_SCALARS) {
2181 NDR_CHECK(ndr_pull_align(ndr, 4));
2182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2183 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2185 if (ndr_flags & NDR_BUFFERS) {
2186 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2188 return NT_STATUS_OK;
2191 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
2193 ndr_print_struct(ndr, name, "netr_USER_KEYS");
2194 ndr->depth++;
2195 ndr_print_uint32(ndr, "version", r->version);
2196 ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2197 ndr->depth--;
2200 NTSTATUS ndr_push_netr_USER_PRIVATE_INFO(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_PRIVATE_INFO *r)
2202 if (ndr_flags & NDR_SCALARS) {
2203 NDR_CHECK(ndr_push_align(ndr, 4));
2204 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2207 uint32_t _flags_save_uint8 = ndr->flags;
2208 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2209 NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
2210 ndr->flags = _flags_save_uint8;
2213 if (ndr_flags & NDR_BUFFERS) {
2215 uint32_t _flags_save_uint8 = ndr->flags;
2216 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2217 if (r->SensitiveData) {
2218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2219 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2221 ndr->flags = _flags_save_uint8;
2224 return NT_STATUS_OK;
2227 NTSTATUS ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
2229 uint32_t _ptr_SensitiveData;
2230 TALLOC_CTX *_mem_save_SensitiveData_0;
2231 if (ndr_flags & NDR_SCALARS) {
2232 NDR_CHECK(ndr_pull_align(ndr, 4));
2233 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2236 uint32_t _flags_save_uint8 = ndr->flags;
2237 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2238 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2239 if (_ptr_SensitiveData) {
2240 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2241 } else {
2242 r->SensitiveData = NULL;
2244 ndr->flags = _flags_save_uint8;
2247 if (ndr_flags & NDR_BUFFERS) {
2249 uint32_t _flags_save_uint8 = ndr->flags;
2250 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2251 if (r->SensitiveData) {
2252 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2253 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2254 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2255 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2256 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2257 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2259 ndr->flags = _flags_save_uint8;
2261 if (r->SensitiveData) {
2262 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2265 return NT_STATUS_OK;
2268 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
2270 ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2271 ndr->depth++;
2272 ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2273 ndr_print_uint32(ndr, "DataLength", r->DataLength);
2274 ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2275 ndr->depth++;
2276 if (r->SensitiveData) {
2277 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2279 ndr->depth--;
2280 ndr->depth--;
2283 NTSTATUS ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
2285 if (ndr_flags & NDR_SCALARS) {
2286 NDR_CHECK(ndr_push_align(ndr, 4));
2287 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2288 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2291 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2292 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2293 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2294 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2295 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2296 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2297 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2298 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2299 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2300 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2301 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2302 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2303 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2304 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2305 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2306 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2307 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2308 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2309 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2310 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2311 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2312 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2313 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2315 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2316 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2317 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2318 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2319 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2325 if (ndr_flags & NDR_BUFFERS) {
2326 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2327 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2328 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2329 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2330 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2331 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2332 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2333 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2334 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2335 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2336 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2337 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2338 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2339 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2340 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2341 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2342 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2343 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2345 return NT_STATUS_OK;
2348 NTSTATUS ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
2350 if (ndr_flags & NDR_SCALARS) {
2351 NDR_CHECK(ndr_pull_align(ndr, 4));
2352 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2353 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2354 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2356 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2357 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2358 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2359 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2360 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2361 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2362 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2363 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2364 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2365 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2366 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2367 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2368 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2369 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2370 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2371 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2372 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2373 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2374 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2375 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2376 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2377 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2378 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2379 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2380 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2381 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2382 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2383 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2384 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2386 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2387 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2388 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2390 if (ndr_flags & NDR_BUFFERS) {
2391 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2392 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2393 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2394 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2395 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2396 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2397 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2398 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2399 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2400 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2401 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2402 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2403 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2404 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2405 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2406 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2407 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2408 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2410 return NT_STATUS_OK;
2413 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
2415 ndr_print_struct(ndr, name, "netr_DELTA_USER");
2416 ndr->depth++;
2417 ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2418 ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2419 ndr_print_uint32(ndr, "rid", r->rid);
2420 ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2421 ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2422 ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2423 ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2424 ndr_print_lsa_String(ndr, "description", &r->description);
2425 ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2426 ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2427 ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2428 ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2429 ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2430 ndr_print_uint16(ndr, "logon_count", r->logon_count);
2431 ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2432 ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2433 ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2434 ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2435 ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2436 ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2437 ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2438 ndr_print_uint8(ndr, "password_expired", r->password_expired);
2439 ndr_print_lsa_String(ndr, "comment", &r->comment);
2440 ndr_print_lsa_String(ndr, "parameters", &r->parameters);
2441 ndr_print_uint16(ndr, "country_code", r->country_code);
2442 ndr_print_uint16(ndr, "code_page", r->code_page);
2443 ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2444 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2445 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2446 ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2447 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2448 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2449 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2450 ndr_print_uint32(ndr, "unknown5", r->unknown5);
2451 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2452 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2453 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2454 ndr->depth--;
2457 NTSTATUS ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
2459 if (ndr_flags & NDR_SCALARS) {
2460 NDR_CHECK(ndr_push_align(ndr, 4));
2461 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2462 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2463 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2464 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2465 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2466 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2467 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2468 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2469 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2471 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2472 NDR_CHECK(ndr_push_netr_AcctLockStr(ndr, NDR_SCALARS, &r->account_lockout));
2473 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2474 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2475 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2479 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2481 if (ndr_flags & NDR_BUFFERS) {
2482 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2483 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2484 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2485 NDR_CHECK(ndr_push_netr_AcctLockStr(ndr, NDR_BUFFERS, &r->account_lockout));
2486 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2487 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2488 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2490 return NT_STATUS_OK;
2493 NTSTATUS ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
2495 if (ndr_flags & NDR_SCALARS) {
2496 NDR_CHECK(ndr_pull_align(ndr, 4));
2497 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2498 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2499 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2500 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2501 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2502 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2503 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2504 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2505 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2507 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2508 NDR_CHECK(ndr_pull_netr_AcctLockStr(ndr, NDR_SCALARS, &r->account_lockout));
2509 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2510 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2511 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2513 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2514 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2515 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2517 if (ndr_flags & NDR_BUFFERS) {
2518 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2519 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2520 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2521 NDR_CHECK(ndr_pull_netr_AcctLockStr(ndr, NDR_BUFFERS, &r->account_lockout));
2522 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2523 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2524 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2526 return NT_STATUS_OK;
2529 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
2531 ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2532 ndr->depth++;
2533 ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2534 ndr_print_lsa_String(ndr, "comment", &r->comment);
2535 ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2536 ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2537 ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2538 ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2539 ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2540 ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2541 ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2542 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2543 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2544 ndr_print_netr_AcctLockStr(ndr, "account_lockout", &r->account_lockout);
2545 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2546 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2547 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2548 ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2549 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2550 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2551 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2552 ndr->depth--;
2555 NTSTATUS ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
2557 if (ndr_flags & NDR_SCALARS) {
2558 NDR_CHECK(ndr_push_align(ndr, 4));
2559 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2561 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2562 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2563 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2564 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2565 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2566 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2567 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2568 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2571 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2574 if (ndr_flags & NDR_BUFFERS) {
2575 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2576 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2577 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2578 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2579 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2580 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2581 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2583 return NT_STATUS_OK;
2586 NTSTATUS ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
2588 if (ndr_flags & NDR_SCALARS) {
2589 NDR_CHECK(ndr_pull_align(ndr, 4));
2590 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2592 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2593 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2595 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2596 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2597 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2598 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2599 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2600 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2601 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2602 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2603 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2605 if (ndr_flags & NDR_BUFFERS) {
2606 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2607 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2608 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2609 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2610 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2611 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2612 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2614 return NT_STATUS_OK;
2617 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
2619 ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2620 ndr->depth++;
2621 ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2622 ndr_print_uint32(ndr, "rid", r->rid);
2623 ndr_print_uint32(ndr, "attributes", r->attributes);
2624 ndr_print_lsa_String(ndr, "description", &r->description);
2625 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2626 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2627 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2628 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2629 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2630 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2631 ndr_print_uint32(ndr, "unknown5", r->unknown5);
2632 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2633 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2634 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2635 ndr->depth--;
2638 NTSTATUS ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
2640 if (ndr_flags & NDR_SCALARS) {
2641 NDR_CHECK(ndr_push_align(ndr, 4));
2642 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2643 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2644 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2645 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2646 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2647 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2653 if (ndr_flags & NDR_BUFFERS) {
2654 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2655 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2656 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2657 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2658 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2659 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2661 return NT_STATUS_OK;
2664 NTSTATUS ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
2666 if (ndr_flags & NDR_SCALARS) {
2667 NDR_CHECK(ndr_pull_align(ndr, 4));
2668 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2669 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2670 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2671 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2672 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2673 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2674 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2675 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2677 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2679 if (ndr_flags & NDR_BUFFERS) {
2680 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2681 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2682 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2683 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2684 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2685 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2687 return NT_STATUS_OK;
2690 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
2692 ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2693 ndr->depth++;
2694 ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2695 ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2696 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2697 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2698 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2699 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2700 ndr_print_uint32(ndr, "unknown5", r->unknown5);
2701 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2702 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2703 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2704 ndr->depth--;
2707 NTSTATUS ndr_push_netr_DELTA_GROUP_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP_MEMBER *r)
2709 uint32_t cntr_rids_1;
2710 uint32_t cntr_attribs_1;
2711 if (ndr_flags & NDR_SCALARS) {
2712 NDR_CHECK(ndr_push_align(ndr, 4));
2713 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2714 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2721 if (ndr_flags & NDR_BUFFERS) {
2722 if (r->rids) {
2723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2724 for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2728 if (r->attribs) {
2729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2730 for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2735 return NT_STATUS_OK;
2738 NTSTATUS ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
2740 uint32_t _ptr_rids;
2741 uint32_t cntr_rids_1;
2742 TALLOC_CTX *_mem_save_rids_0;
2743 TALLOC_CTX *_mem_save_rids_1;
2744 uint32_t _ptr_attribs;
2745 uint32_t cntr_attribs_1;
2746 TALLOC_CTX *_mem_save_attribs_0;
2747 TALLOC_CTX *_mem_save_attribs_1;
2748 if (ndr_flags & NDR_SCALARS) {
2749 NDR_CHECK(ndr_pull_align(ndr, 4));
2750 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2751 if (_ptr_rids) {
2752 NDR_PULL_ALLOC(ndr, r->rids);
2753 } else {
2754 r->rids = NULL;
2756 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2757 if (_ptr_attribs) {
2758 NDR_PULL_ALLOC(ndr, r->attribs);
2759 } else {
2760 r->attribs = NULL;
2762 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2765 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2768 if (ndr_flags & NDR_BUFFERS) {
2769 if (r->rids) {
2770 _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2771 NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2772 NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2773 NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2774 _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2775 NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2776 for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2777 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2782 if (r->attribs) {
2783 _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2784 NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2785 NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2786 NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2787 _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2788 NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2789 for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2790 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2793 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2795 if (r->rids) {
2796 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2798 if (r->attribs) {
2799 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
2802 return NT_STATUS_OK;
2805 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
2807 uint32_t cntr_rids_1;
2808 uint32_t cntr_attribs_1;
2809 ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
2810 ndr->depth++;
2811 ndr_print_ptr(ndr, "rids", r->rids);
2812 ndr->depth++;
2813 if (r->rids) {
2814 ndr->print(ndr, "%s: ARRAY(%d)", "rids", r->num_rids);
2815 ndr->depth++;
2816 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
2817 char *idx_1=NULL;
2818 asprintf(&idx_1, "[%d]", cntr_rids_1);
2819 if (idx_1) {
2820 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
2821 free(idx_1);
2824 ndr->depth--;
2826 ndr->depth--;
2827 ndr_print_ptr(ndr, "attribs", r->attribs);
2828 ndr->depth++;
2829 if (r->attribs) {
2830 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", r->num_rids);
2831 ndr->depth++;
2832 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
2833 char *idx_1=NULL;
2834 asprintf(&idx_1, "[%d]", cntr_attribs_1);
2835 if (idx_1) {
2836 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
2837 free(idx_1);
2840 ndr->depth--;
2842 ndr->depth--;
2843 ndr_print_uint32(ndr, "num_rids", r->num_rids);
2844 ndr_print_uint32(ndr, "unknown1", r->unknown1);
2845 ndr_print_uint32(ndr, "unknown2", r->unknown2);
2846 ndr_print_uint32(ndr, "unknown3", r->unknown3);
2847 ndr_print_uint32(ndr, "unknown4", r->unknown4);
2848 ndr->depth--;
2851 NTSTATUS ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
2853 if (ndr_flags & NDR_SCALARS) {
2854 NDR_CHECK(ndr_push_align(ndr, 4));
2855 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2858 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2859 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2860 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2861 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2862 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2868 if (ndr_flags & NDR_BUFFERS) {
2869 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2870 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2871 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2872 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2873 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2874 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2876 return NT_STATUS_OK;
2879 NTSTATUS ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
2881 if (ndr_flags & NDR_SCALARS) {
2882 NDR_CHECK(ndr_pull_align(ndr, 4));
2883 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2884 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2886 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2887 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2888 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2889 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2890 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2891 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2892 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2896 if (ndr_flags & NDR_BUFFERS) {
2897 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2898 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2899 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2900 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2901 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2902 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2904 return NT_STATUS_OK;
2907 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
2909 ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
2910 ndr->depth++;
2911 ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
2912 ndr_print_uint32(ndr, "rid", r->rid);
2913 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2914 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2915 ndr_print_lsa_String(ndr, "description", &r->description);
2916 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2917 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2918 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2919 ndr_print_uint32(ndr, "unknown5", r->unknown5);
2920 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2921 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2922 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2923 ndr->depth--;
2926 NTSTATUS ndr_push_netr_DELTA_ALIAS_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS_MEMBER *r)
2928 if (ndr_flags & NDR_SCALARS) {
2929 NDR_CHECK(ndr_push_align(ndr, 4));
2930 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2931 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2932 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2936 if (ndr_flags & NDR_BUFFERS) {
2937 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2939 return NT_STATUS_OK;
2942 NTSTATUS ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
2944 if (ndr_flags & NDR_SCALARS) {
2945 NDR_CHECK(ndr_pull_align(ndr, 4));
2946 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2948 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2949 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2952 if (ndr_flags & NDR_BUFFERS) {
2953 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2955 return NT_STATUS_OK;
2958 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
2960 ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
2961 ndr->depth++;
2962 ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
2963 ndr_print_uint32(ndr, "unknown1", r->unknown1);
2964 ndr_print_uint32(ndr, "unknown2", r->unknown2);
2965 ndr_print_uint32(ndr, "unknown3", r->unknown3);
2966 ndr_print_uint32(ndr, "unknown4", r->unknown4);
2967 ndr->depth--;
2970 NTSTATUS ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
2972 if (ndr_flags & NDR_SCALARS) {
2973 NDR_CHECK(ndr_push_align(ndr, 4));
2974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
2975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
2976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
2977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
2978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
2979 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
2981 if (ndr_flags & NDR_BUFFERS) {
2983 return NT_STATUS_OK;
2986 NTSTATUS ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
2988 if (ndr_flags & NDR_SCALARS) {
2989 NDR_CHECK(ndr_pull_align(ndr, 4));
2990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
2991 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
2992 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
2993 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
2994 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
2995 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
2997 if (ndr_flags & NDR_BUFFERS) {
2999 return NT_STATUS_OK;
3002 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
3004 ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
3005 ndr->depth++;
3006 ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
3007 ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
3008 ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
3009 ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
3010 ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
3011 ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
3012 ndr->depth--;
3015 NTSTATUS ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
3017 uint32_t cntr_eventauditoptions_1;
3018 if (ndr_flags & NDR_SCALARS) {
3019 NDR_CHECK(ndr_push_align(ndr, 4));
3020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
3021 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
3022 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
3023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
3024 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
3025 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3026 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
3027 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3028 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
3029 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
3030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3031 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3032 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3033 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3034 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3035 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3041 if (ndr_flags & NDR_BUFFERS) {
3042 if (r->eventauditoptions) {
3043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
3044 for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
3048 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3049 if (r->sid) {
3050 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3052 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3053 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3054 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3055 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3056 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3058 return NT_STATUS_OK;
3061 NTSTATUS ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
3063 uint32_t _ptr_eventauditoptions;
3064 uint32_t cntr_eventauditoptions_1;
3065 TALLOC_CTX *_mem_save_eventauditoptions_0;
3066 TALLOC_CTX *_mem_save_eventauditoptions_1;
3067 uint32_t _ptr_sid;
3068 TALLOC_CTX *_mem_save_sid_0;
3069 if (ndr_flags & NDR_SCALARS) {
3070 NDR_CHECK(ndr_pull_align(ndr, 4));
3071 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3072 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3073 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3074 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3075 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3076 if (_ptr_eventauditoptions) {
3077 NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3078 } else {
3079 r->eventauditoptions = NULL;
3081 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3082 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3083 if (_ptr_sid) {
3084 NDR_PULL_ALLOC(ndr, r->sid);
3085 } else {
3086 r->sid = NULL;
3088 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3089 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3090 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3091 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3092 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3093 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3094 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3095 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3096 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3097 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3098 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3099 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3100 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3102 if (ndr_flags & NDR_BUFFERS) {
3103 if (r->eventauditoptions) {
3104 _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3105 NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3106 NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3107 NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3108 _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3109 NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3110 for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3111 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3116 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3117 if (r->sid) {
3118 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3119 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3120 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3123 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3124 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3125 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3126 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3127 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3128 if (r->eventauditoptions) {
3129 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3132 return NT_STATUS_OK;
3135 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
3137 uint32_t cntr_eventauditoptions_1;
3138 ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3139 ndr->depth++;
3140 ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3141 ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3142 ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3143 ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3144 ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3145 ndr->depth++;
3146 if (r->eventauditoptions) {
3147 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", r->maxauditeventcount + 1);
3148 ndr->depth++;
3149 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3150 char *idx_1=NULL;
3151 asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1);
3152 if (idx_1) {
3153 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3154 free(idx_1);
3157 ndr->depth--;
3159 ndr->depth--;
3160 ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3161 ndr_print_ptr(ndr, "sid", r->sid);
3162 ndr->depth++;
3163 if (r->sid) {
3164 ndr_print_dom_sid2(ndr, "sid", r->sid);
3166 ndr->depth--;
3167 ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3168 ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3169 ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3170 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3171 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3172 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3173 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3174 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3175 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3176 ndr_print_uint32(ndr, "unknown5", r->unknown5);
3177 ndr_print_uint32(ndr, "unknown6", r->unknown6);
3178 ndr_print_uint32(ndr, "unknown7", r->unknown7);
3179 ndr_print_uint32(ndr, "unknown8", r->unknown8);
3180 ndr->depth--;
3183 NTSTATUS ndr_push_netr_DELTA_TRUSTED_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3185 uint32_t cntr_controller_names_1;
3186 if (ndr_flags & NDR_SCALARS) {
3187 NDR_CHECK(ndr_push_align(ndr, 4));
3188 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3189 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3190 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3192 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3193 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3194 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3195 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3196 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3202 if (ndr_flags & NDR_BUFFERS) {
3203 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3204 if (r->controller_names) {
3205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3206 for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3207 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3209 for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3210 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3213 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3214 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3215 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3216 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3217 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3219 return NT_STATUS_OK;
3222 NTSTATUS ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
3224 uint32_t _ptr_controller_names;
3225 uint32_t cntr_controller_names_1;
3226 TALLOC_CTX *_mem_save_controller_names_0;
3227 TALLOC_CTX *_mem_save_controller_names_1;
3228 if (ndr_flags & NDR_SCALARS) {
3229 NDR_CHECK(ndr_pull_align(ndr, 4));
3230 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3231 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3232 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3233 if (_ptr_controller_names) {
3234 NDR_PULL_ALLOC(ndr, r->controller_names);
3235 } else {
3236 r->controller_names = NULL;
3238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3239 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3240 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3241 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3242 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3243 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3244 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3245 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3246 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3247 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3249 if (ndr_flags & NDR_BUFFERS) {
3250 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3251 if (r->controller_names) {
3252 _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3253 NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3254 NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3255 NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3256 _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3257 NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3258 for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3259 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3261 for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3262 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3267 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3268 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3269 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3270 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3271 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3272 if (r->controller_names) {
3273 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3276 return NT_STATUS_OK;
3279 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3281 uint32_t cntr_controller_names_1;
3282 ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3283 ndr->depth++;
3284 ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3285 ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3286 ndr_print_ptr(ndr, "controller_names", r->controller_names);
3287 ndr->depth++;
3288 if (r->controller_names) {
3289 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", r->num_controllers);
3290 ndr->depth++;
3291 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3292 char *idx_1=NULL;
3293 asprintf(&idx_1, "[%d]", cntr_controller_names_1);
3294 if (idx_1) {
3295 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3296 free(idx_1);
3299 ndr->depth--;
3301 ndr->depth--;
3302 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3303 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3304 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3305 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3306 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3307 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3308 ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3309 ndr_print_uint32(ndr, "unknown6", r->unknown6);
3310 ndr_print_uint32(ndr, "unknown7", r->unknown7);
3311 ndr_print_uint32(ndr, "unknown8", r->unknown8);
3312 ndr->depth--;
3315 NTSTATUS ndr_push_netr_DELTA_DELETE_TRUST(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_TRUST *r)
3317 if (ndr_flags & NDR_SCALARS) {
3318 NDR_CHECK(ndr_push_align(ndr, 2));
3319 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3321 if (ndr_flags & NDR_BUFFERS) {
3323 return NT_STATUS_OK;
3326 NTSTATUS ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
3328 if (ndr_flags & NDR_SCALARS) {
3329 NDR_CHECK(ndr_pull_align(ndr, 2));
3330 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3332 if (ndr_flags & NDR_BUFFERS) {
3334 return NT_STATUS_OK;
3337 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
3339 ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3340 ndr->depth++;
3341 ndr_print_uint16(ndr, "unknown", r->unknown);
3342 ndr->depth--;
3345 NTSTATUS ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
3347 uint32_t cntr_privilege_attrib_1;
3348 uint32_t cntr_privilege_name_1;
3349 if (ndr_flags & NDR_SCALARS) {
3350 NDR_CHECK(ndr_push_align(ndr, 4));
3351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3353 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3354 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3355 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3358 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3359 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3360 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3361 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3362 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3368 if (ndr_flags & NDR_BUFFERS) {
3369 if (r->privilege_attrib) {
3370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3371 for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3372 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3375 if (r->privilege_name) {
3376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3377 for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3378 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3380 for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3381 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3384 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3385 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3386 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3387 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3388 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3390 return NT_STATUS_OK;
3393 NTSTATUS ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
3395 uint32_t _ptr_privilege_attrib;
3396 uint32_t cntr_privilege_attrib_1;
3397 TALLOC_CTX *_mem_save_privilege_attrib_0;
3398 TALLOC_CTX *_mem_save_privilege_attrib_1;
3399 uint32_t _ptr_privilege_name;
3400 uint32_t cntr_privilege_name_1;
3401 TALLOC_CTX *_mem_save_privilege_name_0;
3402 TALLOC_CTX *_mem_save_privilege_name_1;
3403 if (ndr_flags & NDR_SCALARS) {
3404 NDR_CHECK(ndr_pull_align(ndr, 4));
3405 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3406 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3407 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3408 if (_ptr_privilege_attrib) {
3409 NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3410 } else {
3411 r->privilege_attrib = NULL;
3413 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3414 if (_ptr_privilege_name) {
3415 NDR_PULL_ALLOC(ndr, r->privilege_name);
3416 } else {
3417 r->privilege_name = NULL;
3419 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3422 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3423 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3424 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3425 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3426 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3432 if (ndr_flags & NDR_BUFFERS) {
3433 if (r->privilege_attrib) {
3434 _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3435 NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3436 NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3437 NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3438 _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3439 NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3440 for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3441 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3446 if (r->privilege_name) {
3447 _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3448 NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3449 NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3450 NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3451 _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3452 NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3453 for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3454 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3456 for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3457 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3459 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3462 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3463 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3464 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3465 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3466 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3467 if (r->privilege_attrib) {
3468 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3470 if (r->privilege_name) {
3471 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3474 return NT_STATUS_OK;
3477 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
3479 uint32_t cntr_privilege_attrib_1;
3480 uint32_t cntr_privilege_name_1;
3481 ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3482 ndr->depth++;
3483 ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3484 ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3485 ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3486 ndr->depth++;
3487 if (r->privilege_attrib) {
3488 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", r->privilege_entries);
3489 ndr->depth++;
3490 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3491 char *idx_1=NULL;
3492 asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1);
3493 if (idx_1) {
3494 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3495 free(idx_1);
3498 ndr->depth--;
3500 ndr->depth--;
3501 ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3502 ndr->depth++;
3503 if (r->privilege_name) {
3504 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", r->privilege_entries);
3505 ndr->depth++;
3506 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3507 char *idx_1=NULL;
3508 asprintf(&idx_1, "[%d]", cntr_privilege_name_1);
3509 if (idx_1) {
3510 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3511 free(idx_1);
3514 ndr->depth--;
3516 ndr->depth--;
3517 ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3518 ndr_print_uint32(ndr, "system_flags", r->system_flags);
3519 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3520 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3521 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3522 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3523 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3524 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3525 ndr_print_uint32(ndr, "unknown5", r->unknown5);
3526 ndr_print_uint32(ndr, "unknown6", r->unknown6);
3527 ndr_print_uint32(ndr, "unknown7", r->unknown7);
3528 ndr_print_uint32(ndr, "unknown8", r->unknown8);
3529 ndr->depth--;
3532 NTSTATUS ndr_push_netr_DELTA_DELETE_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_ACCOUNT *r)
3534 if (ndr_flags & NDR_SCALARS) {
3535 NDR_CHECK(ndr_push_align(ndr, 2));
3536 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3538 if (ndr_flags & NDR_BUFFERS) {
3540 return NT_STATUS_OK;
3543 NTSTATUS ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
3545 if (ndr_flags & NDR_SCALARS) {
3546 NDR_CHECK(ndr_pull_align(ndr, 2));
3547 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3549 if (ndr_flags & NDR_BUFFERS) {
3551 return NT_STATUS_OK;
3554 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
3556 ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3557 ndr->depth++;
3558 ndr_print_uint16(ndr, "unknown", r->unknown);
3559 ndr->depth--;
3562 NTSTATUS ndr_push_netr_DELTA_DELETE_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_SECRET *r)
3564 if (ndr_flags & NDR_SCALARS) {
3565 NDR_CHECK(ndr_push_align(ndr, 2));
3566 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3568 if (ndr_flags & NDR_BUFFERS) {
3570 return NT_STATUS_OK;
3573 NTSTATUS ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
3575 if (ndr_flags & NDR_SCALARS) {
3576 NDR_CHECK(ndr_pull_align(ndr, 2));
3577 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3579 if (ndr_flags & NDR_BUFFERS) {
3581 return NT_STATUS_OK;
3584 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
3586 ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3587 ndr->depth++;
3588 ndr_print_uint16(ndr, "unknown", r->unknown);
3589 ndr->depth--;
3592 NTSTATUS ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
3594 if (ndr_flags & NDR_SCALARS) {
3595 NDR_CHECK(ndr_push_align(ndr, 4));
3596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3598 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3600 if (ndr_flags & NDR_BUFFERS) {
3601 if (r->cipher_data) {
3602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3605 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3608 return NT_STATUS_OK;
3611 NTSTATUS ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
3613 uint32_t _ptr_cipher_data;
3614 TALLOC_CTX *_mem_save_cipher_data_0;
3615 if (ndr_flags & NDR_SCALARS) {
3616 NDR_CHECK(ndr_pull_align(ndr, 4));
3617 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3618 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3619 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3620 if (_ptr_cipher_data) {
3621 NDR_PULL_ALLOC(ndr, r->cipher_data);
3622 } else {
3623 r->cipher_data = NULL;
3626 if (ndr_flags & NDR_BUFFERS) {
3627 if (r->cipher_data) {
3628 _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3629 NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3630 NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3631 NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3632 if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3633 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->cipher_data), ndr_get_array_length(ndr, &r->cipher_data));
3635 NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3636 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3639 if (r->cipher_data) {
3640 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3642 if (r->cipher_data) {
3643 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3646 return NT_STATUS_OK;
3649 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
3651 ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3652 ndr->depth++;
3653 ndr_print_uint32(ndr, "len", r->len);
3654 ndr_print_uint32(ndr, "maxlen", r->maxlen);
3655 ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3656 ndr->depth++;
3657 if (r->cipher_data) {
3658 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3660 ndr->depth--;
3661 ndr->depth--;
3664 NTSTATUS ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
3666 if (ndr_flags & NDR_SCALARS) {
3667 NDR_CHECK(ndr_push_align(ndr, 4));
3668 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3669 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3670 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3671 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3673 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3674 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3675 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3676 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3677 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3683 if (ndr_flags & NDR_BUFFERS) {
3684 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3685 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3686 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3687 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3688 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3689 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3690 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3692 return NT_STATUS_OK;
3695 NTSTATUS ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
3697 if (ndr_flags & NDR_SCALARS) {
3698 NDR_CHECK(ndr_pull_align(ndr, 4));
3699 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3700 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3701 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3702 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3703 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3704 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3705 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3706 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3707 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3708 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3709 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3710 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3711 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3712 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3714 if (ndr_flags & NDR_BUFFERS) {
3715 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3716 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3717 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3718 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3719 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3720 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3721 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3723 return NT_STATUS_OK;
3726 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
3728 ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3729 ndr->depth++;
3730 ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3731 ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3732 ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3733 ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3734 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3735 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3736 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3737 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3738 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3739 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3740 ndr_print_uint32(ndr, "unknown5", r->unknown5);
3741 ndr_print_uint32(ndr, "unknown6", r->unknown6);
3742 ndr_print_uint32(ndr, "unknown7", r->unknown7);
3743 ndr_print_uint32(ndr, "unknown8", r->unknown8);
3744 ndr->depth--;
3747 NTSTATUS ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
3749 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3750 return NT_STATUS_OK;
3753 NTSTATUS ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
3755 uint16_t v;
3756 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3757 *r = v;
3758 return NT_STATUS_OK;
3761 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
3763 const char *val = NULL;
3765 switch (r) {
3766 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3767 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3768 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3769 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3770 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3771 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3772 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3773 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3774 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3775 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3776 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3777 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3778 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3779 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3780 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3781 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3782 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3783 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3784 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3785 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3786 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3787 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3789 ndr_print_enum(ndr, name, "ENUM", val, r);
3792 NTSTATUS ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
3794 if (ndr_flags & NDR_SCALARS) {
3795 int level = ndr_push_get_switch_value(ndr, r);
3796 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3797 switch (level) {
3798 case NETR_DELTA_DOMAIN:
3799 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3800 break;
3802 case NETR_DELTA_GROUP:
3803 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3804 break;
3806 case NETR_DELTA_DELETE_GROUP:
3807 break;
3809 case NETR_DELTA_RENAME_GROUP:
3810 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
3811 break;
3813 case NETR_DELTA_USER:
3814 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
3815 break;
3817 case NETR_DELTA_DELETE_USER:
3818 break;
3820 case NETR_DELTA_RENAME_USER:
3821 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
3822 break;
3824 case NETR_DELTA_GROUP_MEMBER:
3825 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
3826 break;
3828 case NETR_DELTA_ALIAS:
3829 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
3830 break;
3832 case NETR_DELTA_DELETE_ALIAS:
3833 break;
3835 case NETR_DELTA_RENAME_ALIAS:
3836 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
3837 break;
3839 case NETR_DELTA_ALIAS_MEMBER:
3840 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
3841 break;
3843 case NETR_DELTA_POLICY:
3844 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
3845 break;
3847 case NETR_DELTA_TRUSTED_DOMAIN:
3848 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
3849 break;
3851 case NETR_DELTA_DELETE_TRUST:
3852 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
3853 break;
3855 case NETR_DELTA_ACCOUNT:
3856 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
3857 break;
3859 case NETR_DELTA_DELETE_ACCOUNT:
3860 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
3861 break;
3863 case NETR_DELTA_SECRET:
3864 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
3865 break;
3867 case NETR_DELTA_DELETE_SECRET:
3868 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
3869 break;
3871 case NETR_DELTA_DELETE_GROUP2:
3872 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
3873 break;
3875 case NETR_DELTA_DELETE_USER2:
3876 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
3877 break;
3879 case NETR_DELTA_MODIFY_COUNT:
3880 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
3881 break;
3883 default:
3884 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3887 if (ndr_flags & NDR_BUFFERS) {
3888 int level = ndr_push_get_switch_value(ndr, r);
3889 switch (level) {
3890 case NETR_DELTA_DOMAIN:
3891 if (r->domain) {
3892 NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
3894 break;
3896 case NETR_DELTA_GROUP:
3897 if (r->group) {
3898 NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
3900 break;
3902 case NETR_DELTA_DELETE_GROUP:
3903 break;
3905 case NETR_DELTA_RENAME_GROUP:
3906 if (r->rename_group) {
3907 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
3909 break;
3911 case NETR_DELTA_USER:
3912 if (r->user) {
3913 NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
3915 break;
3917 case NETR_DELTA_DELETE_USER:
3918 break;
3920 case NETR_DELTA_RENAME_USER:
3921 if (r->rename_user) {
3922 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
3924 break;
3926 case NETR_DELTA_GROUP_MEMBER:
3927 if (r->group_member) {
3928 NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
3930 break;
3932 case NETR_DELTA_ALIAS:
3933 if (r->alias) {
3934 NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
3936 break;
3938 case NETR_DELTA_DELETE_ALIAS:
3939 break;
3941 case NETR_DELTA_RENAME_ALIAS:
3942 if (r->rename_alias) {
3943 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
3945 break;
3947 case NETR_DELTA_ALIAS_MEMBER:
3948 if (r->alias_member) {
3949 NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
3951 break;
3953 case NETR_DELTA_POLICY:
3954 if (r->policy) {
3955 NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
3957 break;
3959 case NETR_DELTA_TRUSTED_DOMAIN:
3960 if (r->trusted_domain) {
3961 NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
3963 break;
3965 case NETR_DELTA_DELETE_TRUST:
3966 break;
3968 case NETR_DELTA_ACCOUNT:
3969 if (r->account) {
3970 NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
3972 break;
3974 case NETR_DELTA_DELETE_ACCOUNT:
3975 break;
3977 case NETR_DELTA_SECRET:
3978 if (r->secret) {
3979 NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
3981 break;
3983 case NETR_DELTA_DELETE_SECRET:
3984 break;
3986 case NETR_DELTA_DELETE_GROUP2:
3987 if (r->delete_group) {
3988 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
3990 break;
3992 case NETR_DELTA_DELETE_USER2:
3993 if (r->delete_user) {
3994 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
3996 break;
3998 case NETR_DELTA_MODIFY_COUNT:
3999 if (r->modified_count) {
4000 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
4002 break;
4004 default:
4005 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4008 return NT_STATUS_OK;
4011 NTSTATUS ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
4013 int level;
4014 uint16_t _level;
4015 TALLOC_CTX *_mem_save_domain_0;
4016 TALLOC_CTX *_mem_save_group_0;
4017 TALLOC_CTX *_mem_save_rename_group_0;
4018 TALLOC_CTX *_mem_save_user_0;
4019 TALLOC_CTX *_mem_save_rename_user_0;
4020 TALLOC_CTX *_mem_save_group_member_0;
4021 TALLOC_CTX *_mem_save_alias_0;
4022 TALLOC_CTX *_mem_save_rename_alias_0;
4023 TALLOC_CTX *_mem_save_alias_member_0;
4024 TALLOC_CTX *_mem_save_policy_0;
4025 TALLOC_CTX *_mem_save_trusted_domain_0;
4026 TALLOC_CTX *_mem_save_account_0;
4027 TALLOC_CTX *_mem_save_secret_0;
4028 TALLOC_CTX *_mem_save_delete_group_0;
4029 TALLOC_CTX *_mem_save_delete_user_0;
4030 TALLOC_CTX *_mem_save_modified_count_0;
4031 level = ndr_pull_get_switch_value(ndr, r);
4032 if (ndr_flags & NDR_SCALARS) {
4033 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4034 if (_level != level) {
4035 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4037 switch (level) {
4038 case NETR_DELTA_DOMAIN: {
4039 uint32_t _ptr_domain;
4040 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
4041 if (_ptr_domain) {
4042 NDR_PULL_ALLOC(ndr, r->domain);
4043 } else {
4044 r->domain = NULL;
4046 break; }
4048 case NETR_DELTA_GROUP: {
4049 uint32_t _ptr_group;
4050 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
4051 if (_ptr_group) {
4052 NDR_PULL_ALLOC(ndr, r->group);
4053 } else {
4054 r->group = NULL;
4056 break; }
4058 case NETR_DELTA_DELETE_GROUP: {
4059 break; }
4061 case NETR_DELTA_RENAME_GROUP: {
4062 uint32_t _ptr_rename_group;
4063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4064 if (_ptr_rename_group) {
4065 NDR_PULL_ALLOC(ndr, r->rename_group);
4066 } else {
4067 r->rename_group = NULL;
4069 break; }
4071 case NETR_DELTA_USER: {
4072 uint32_t _ptr_user;
4073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4074 if (_ptr_user) {
4075 NDR_PULL_ALLOC(ndr, r->user);
4076 } else {
4077 r->user = NULL;
4079 break; }
4081 case NETR_DELTA_DELETE_USER: {
4082 break; }
4084 case NETR_DELTA_RENAME_USER: {
4085 uint32_t _ptr_rename_user;
4086 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4087 if (_ptr_rename_user) {
4088 NDR_PULL_ALLOC(ndr, r->rename_user);
4089 } else {
4090 r->rename_user = NULL;
4092 break; }
4094 case NETR_DELTA_GROUP_MEMBER: {
4095 uint32_t _ptr_group_member;
4096 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4097 if (_ptr_group_member) {
4098 NDR_PULL_ALLOC(ndr, r->group_member);
4099 } else {
4100 r->group_member = NULL;
4102 break; }
4104 case NETR_DELTA_ALIAS: {
4105 uint32_t _ptr_alias;
4106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4107 if (_ptr_alias) {
4108 NDR_PULL_ALLOC(ndr, r->alias);
4109 } else {
4110 r->alias = NULL;
4112 break; }
4114 case NETR_DELTA_DELETE_ALIAS: {
4115 break; }
4117 case NETR_DELTA_RENAME_ALIAS: {
4118 uint32_t _ptr_rename_alias;
4119 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4120 if (_ptr_rename_alias) {
4121 NDR_PULL_ALLOC(ndr, r->rename_alias);
4122 } else {
4123 r->rename_alias = NULL;
4125 break; }
4127 case NETR_DELTA_ALIAS_MEMBER: {
4128 uint32_t _ptr_alias_member;
4129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4130 if (_ptr_alias_member) {
4131 NDR_PULL_ALLOC(ndr, r->alias_member);
4132 } else {
4133 r->alias_member = NULL;
4135 break; }
4137 case NETR_DELTA_POLICY: {
4138 uint32_t _ptr_policy;
4139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4140 if (_ptr_policy) {
4141 NDR_PULL_ALLOC(ndr, r->policy);
4142 } else {
4143 r->policy = NULL;
4145 break; }
4147 case NETR_DELTA_TRUSTED_DOMAIN: {
4148 uint32_t _ptr_trusted_domain;
4149 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4150 if (_ptr_trusted_domain) {
4151 NDR_PULL_ALLOC(ndr, r->trusted_domain);
4152 } else {
4153 r->trusted_domain = NULL;
4155 break; }
4157 case NETR_DELTA_DELETE_TRUST: {
4158 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4159 break; }
4161 case NETR_DELTA_ACCOUNT: {
4162 uint32_t _ptr_account;
4163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4164 if (_ptr_account) {
4165 NDR_PULL_ALLOC(ndr, r->account);
4166 } else {
4167 r->account = NULL;
4169 break; }
4171 case NETR_DELTA_DELETE_ACCOUNT: {
4172 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4173 break; }
4175 case NETR_DELTA_SECRET: {
4176 uint32_t _ptr_secret;
4177 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4178 if (_ptr_secret) {
4179 NDR_PULL_ALLOC(ndr, r->secret);
4180 } else {
4181 r->secret = NULL;
4183 break; }
4185 case NETR_DELTA_DELETE_SECRET: {
4186 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4187 break; }
4189 case NETR_DELTA_DELETE_GROUP2: {
4190 uint32_t _ptr_delete_group;
4191 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4192 if (_ptr_delete_group) {
4193 NDR_PULL_ALLOC(ndr, r->delete_group);
4194 } else {
4195 r->delete_group = NULL;
4197 break; }
4199 case NETR_DELTA_DELETE_USER2: {
4200 uint32_t _ptr_delete_user;
4201 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4202 if (_ptr_delete_user) {
4203 NDR_PULL_ALLOC(ndr, r->delete_user);
4204 } else {
4205 r->delete_user = NULL;
4207 break; }
4209 case NETR_DELTA_MODIFY_COUNT: {
4210 uint32_t _ptr_modified_count;
4211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4212 if (_ptr_modified_count) {
4213 NDR_PULL_ALLOC(ndr, r->modified_count);
4214 } else {
4215 r->modified_count = NULL;
4217 break; }
4219 default:
4220 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4223 if (ndr_flags & NDR_BUFFERS) {
4224 switch (level) {
4225 case NETR_DELTA_DOMAIN:
4226 if (r->domain) {
4227 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4228 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4229 NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4230 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4232 break;
4234 case NETR_DELTA_GROUP:
4235 if (r->group) {
4236 _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4237 NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4238 NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4241 break;
4243 case NETR_DELTA_DELETE_GROUP:
4244 break;
4246 case NETR_DELTA_RENAME_GROUP:
4247 if (r->rename_group) {
4248 _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4249 NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4250 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4253 break;
4255 case NETR_DELTA_USER:
4256 if (r->user) {
4257 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4258 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4259 NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4262 break;
4264 case NETR_DELTA_DELETE_USER:
4265 break;
4267 case NETR_DELTA_RENAME_USER:
4268 if (r->rename_user) {
4269 _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4270 NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4271 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4274 break;
4276 case NETR_DELTA_GROUP_MEMBER:
4277 if (r->group_member) {
4278 _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4279 NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4280 NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4283 break;
4285 case NETR_DELTA_ALIAS:
4286 if (r->alias) {
4287 _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4288 NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4289 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4292 break;
4294 case NETR_DELTA_DELETE_ALIAS:
4295 break;
4297 case NETR_DELTA_RENAME_ALIAS:
4298 if (r->rename_alias) {
4299 _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4300 NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4301 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4304 break;
4306 case NETR_DELTA_ALIAS_MEMBER:
4307 if (r->alias_member) {
4308 _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4309 NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4310 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4313 break;
4315 case NETR_DELTA_POLICY:
4316 if (r->policy) {
4317 _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4318 NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4319 NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4322 break;
4324 case NETR_DELTA_TRUSTED_DOMAIN:
4325 if (r->trusted_domain) {
4326 _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4327 NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4328 NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4329 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4331 break;
4333 case NETR_DELTA_DELETE_TRUST:
4334 break;
4336 case NETR_DELTA_ACCOUNT:
4337 if (r->account) {
4338 _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4339 NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4340 NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4341 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4343 break;
4345 case NETR_DELTA_DELETE_ACCOUNT:
4346 break;
4348 case NETR_DELTA_SECRET:
4349 if (r->secret) {
4350 _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4351 NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4352 NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4353 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4355 break;
4357 case NETR_DELTA_DELETE_SECRET:
4358 break;
4360 case NETR_DELTA_DELETE_GROUP2:
4361 if (r->delete_group) {
4362 _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4363 NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4364 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4367 break;
4369 case NETR_DELTA_DELETE_USER2:
4370 if (r->delete_user) {
4371 _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4372 NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4373 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4376 break;
4378 case NETR_DELTA_MODIFY_COUNT:
4379 if (r->modified_count) {
4380 _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4381 NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4382 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4383 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4385 break;
4387 default:
4388 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4391 return NT_STATUS_OK;
4394 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
4396 int level;
4397 level = ndr_print_get_switch_value(ndr, r);
4398 ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4399 switch (level) {
4400 case NETR_DELTA_DOMAIN:
4401 ndr_print_ptr(ndr, "domain", r->domain);
4402 ndr->depth++;
4403 if (r->domain) {
4404 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4406 ndr->depth--;
4407 break;
4409 case NETR_DELTA_GROUP:
4410 ndr_print_ptr(ndr, "group", r->group);
4411 ndr->depth++;
4412 if (r->group) {
4413 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4415 ndr->depth--;
4416 break;
4418 case NETR_DELTA_DELETE_GROUP:
4419 break;
4421 case NETR_DELTA_RENAME_GROUP:
4422 ndr_print_ptr(ndr, "rename_group", r->rename_group);
4423 ndr->depth++;
4424 if (r->rename_group) {
4425 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4427 ndr->depth--;
4428 break;
4430 case NETR_DELTA_USER:
4431 ndr_print_ptr(ndr, "user", r->user);
4432 ndr->depth++;
4433 if (r->user) {
4434 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4436 ndr->depth--;
4437 break;
4439 case NETR_DELTA_DELETE_USER:
4440 break;
4442 case NETR_DELTA_RENAME_USER:
4443 ndr_print_ptr(ndr, "rename_user", r->rename_user);
4444 ndr->depth++;
4445 if (r->rename_user) {
4446 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4448 ndr->depth--;
4449 break;
4451 case NETR_DELTA_GROUP_MEMBER:
4452 ndr_print_ptr(ndr, "group_member", r->group_member);
4453 ndr->depth++;
4454 if (r->group_member) {
4455 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4457 ndr->depth--;
4458 break;
4460 case NETR_DELTA_ALIAS:
4461 ndr_print_ptr(ndr, "alias", r->alias);
4462 ndr->depth++;
4463 if (r->alias) {
4464 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4466 ndr->depth--;
4467 break;
4469 case NETR_DELTA_DELETE_ALIAS:
4470 break;
4472 case NETR_DELTA_RENAME_ALIAS:
4473 ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4474 ndr->depth++;
4475 if (r->rename_alias) {
4476 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4478 ndr->depth--;
4479 break;
4481 case NETR_DELTA_ALIAS_MEMBER:
4482 ndr_print_ptr(ndr, "alias_member", r->alias_member);
4483 ndr->depth++;
4484 if (r->alias_member) {
4485 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4487 ndr->depth--;
4488 break;
4490 case NETR_DELTA_POLICY:
4491 ndr_print_ptr(ndr, "policy", r->policy);
4492 ndr->depth++;
4493 if (r->policy) {
4494 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4496 ndr->depth--;
4497 break;
4499 case NETR_DELTA_TRUSTED_DOMAIN:
4500 ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4501 ndr->depth++;
4502 if (r->trusted_domain) {
4503 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4505 ndr->depth--;
4506 break;
4508 case NETR_DELTA_DELETE_TRUST:
4509 ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4510 break;
4512 case NETR_DELTA_ACCOUNT:
4513 ndr_print_ptr(ndr, "account", r->account);
4514 ndr->depth++;
4515 if (r->account) {
4516 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4518 ndr->depth--;
4519 break;
4521 case NETR_DELTA_DELETE_ACCOUNT:
4522 ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4523 break;
4525 case NETR_DELTA_SECRET:
4526 ndr_print_ptr(ndr, "secret", r->secret);
4527 ndr->depth++;
4528 if (r->secret) {
4529 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4531 ndr->depth--;
4532 break;
4534 case NETR_DELTA_DELETE_SECRET:
4535 ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4536 break;
4538 case NETR_DELTA_DELETE_GROUP2:
4539 ndr_print_ptr(ndr, "delete_group", r->delete_group);
4540 ndr->depth++;
4541 if (r->delete_group) {
4542 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4544 ndr->depth--;
4545 break;
4547 case NETR_DELTA_DELETE_USER2:
4548 ndr_print_ptr(ndr, "delete_user", r->delete_user);
4549 ndr->depth++;
4550 if (r->delete_user) {
4551 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4553 ndr->depth--;
4554 break;
4556 case NETR_DELTA_MODIFY_COUNT:
4557 ndr_print_ptr(ndr, "modified_count", r->modified_count);
4558 ndr->depth++;
4559 if (r->modified_count) {
4560 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4562 ndr->depth--;
4563 break;
4565 default:
4566 ndr_print_bad_level(ndr, name, level);
4570 NTSTATUS ndr_push_netr_DELTA_ID_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_ID_UNION *r)
4572 if (ndr_flags & NDR_SCALARS) {
4573 int level = ndr_push_get_switch_value(ndr, r);
4574 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4575 switch (level) {
4576 case NETR_DELTA_DOMAIN:
4577 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4578 break;
4580 case NETR_DELTA_GROUP:
4581 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4582 break;
4584 case NETR_DELTA_DELETE_GROUP:
4585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4586 break;
4588 case NETR_DELTA_RENAME_GROUP:
4589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4590 break;
4592 case NETR_DELTA_USER:
4593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4594 break;
4596 case NETR_DELTA_DELETE_USER:
4597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4598 break;
4600 case NETR_DELTA_RENAME_USER:
4601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4602 break;
4604 case NETR_DELTA_GROUP_MEMBER:
4605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4606 break;
4608 case NETR_DELTA_ALIAS:
4609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4610 break;
4612 case NETR_DELTA_DELETE_ALIAS:
4613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4614 break;
4616 case NETR_DELTA_RENAME_ALIAS:
4617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4618 break;
4620 case NETR_DELTA_ALIAS_MEMBER:
4621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4622 break;
4624 case NETR_DELTA_POLICY:
4625 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4626 break;
4628 case NETR_DELTA_TRUSTED_DOMAIN:
4629 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4630 break;
4632 case NETR_DELTA_DELETE_TRUST:
4633 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4634 break;
4636 case NETR_DELTA_ACCOUNT:
4637 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4638 break;
4640 case NETR_DELTA_DELETE_ACCOUNT:
4641 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4642 break;
4644 case NETR_DELTA_SECRET:
4645 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4646 break;
4648 case NETR_DELTA_DELETE_SECRET:
4649 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4650 break;
4652 case NETR_DELTA_DELETE_GROUP2:
4653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4654 break;
4656 case NETR_DELTA_DELETE_USER2:
4657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4658 break;
4660 case NETR_DELTA_MODIFY_COUNT:
4661 break;
4663 default:
4664 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4667 if (ndr_flags & NDR_BUFFERS) {
4668 int level = ndr_push_get_switch_value(ndr, r);
4669 switch (level) {
4670 case NETR_DELTA_DOMAIN:
4671 break;
4673 case NETR_DELTA_GROUP:
4674 break;
4676 case NETR_DELTA_DELETE_GROUP:
4677 break;
4679 case NETR_DELTA_RENAME_GROUP:
4680 break;
4682 case NETR_DELTA_USER:
4683 break;
4685 case NETR_DELTA_DELETE_USER:
4686 break;
4688 case NETR_DELTA_RENAME_USER:
4689 break;
4691 case NETR_DELTA_GROUP_MEMBER:
4692 break;
4694 case NETR_DELTA_ALIAS:
4695 break;
4697 case NETR_DELTA_DELETE_ALIAS:
4698 break;
4700 case NETR_DELTA_RENAME_ALIAS:
4701 break;
4703 case NETR_DELTA_ALIAS_MEMBER:
4704 break;
4706 case NETR_DELTA_POLICY:
4707 if (r->sid) {
4708 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4710 break;
4712 case NETR_DELTA_TRUSTED_DOMAIN:
4713 if (r->sid) {
4714 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4716 break;
4718 case NETR_DELTA_DELETE_TRUST:
4719 if (r->sid) {
4720 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4722 break;
4724 case NETR_DELTA_ACCOUNT:
4725 if (r->sid) {
4726 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4728 break;
4730 case NETR_DELTA_DELETE_ACCOUNT:
4731 if (r->sid) {
4732 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4734 break;
4736 case NETR_DELTA_SECRET:
4737 if (r->name) {
4738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4741 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4743 break;
4745 case NETR_DELTA_DELETE_SECRET:
4746 if (r->name) {
4747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4750 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4752 break;
4754 case NETR_DELTA_DELETE_GROUP2:
4755 break;
4757 case NETR_DELTA_DELETE_USER2:
4758 break;
4760 case NETR_DELTA_MODIFY_COUNT:
4761 break;
4763 default:
4764 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4767 return NT_STATUS_OK;
4770 NTSTATUS ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
4772 int level;
4773 uint16_t _level;
4774 TALLOC_CTX *_mem_save_sid_0;
4775 TALLOC_CTX *_mem_save_name_0;
4776 level = ndr_pull_get_switch_value(ndr, r);
4777 if (ndr_flags & NDR_SCALARS) {
4778 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4779 if (_level != level) {
4780 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4782 switch (level) {
4783 case NETR_DELTA_DOMAIN: {
4784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4785 break; }
4787 case NETR_DELTA_GROUP: {
4788 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4789 break; }
4791 case NETR_DELTA_DELETE_GROUP: {
4792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4793 break; }
4795 case NETR_DELTA_RENAME_GROUP: {
4796 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4797 break; }
4799 case NETR_DELTA_USER: {
4800 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4801 break; }
4803 case NETR_DELTA_DELETE_USER: {
4804 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4805 break; }
4807 case NETR_DELTA_RENAME_USER: {
4808 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4809 break; }
4811 case NETR_DELTA_GROUP_MEMBER: {
4812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4813 break; }
4815 case NETR_DELTA_ALIAS: {
4816 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4817 break; }
4819 case NETR_DELTA_DELETE_ALIAS: {
4820 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4821 break; }
4823 case NETR_DELTA_RENAME_ALIAS: {
4824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4825 break; }
4827 case NETR_DELTA_ALIAS_MEMBER: {
4828 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4829 break; }
4831 case NETR_DELTA_POLICY: {
4832 uint32_t _ptr_sid;
4833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4834 if (_ptr_sid) {
4835 NDR_PULL_ALLOC(ndr, r->sid);
4836 } else {
4837 r->sid = NULL;
4839 break; }
4841 case NETR_DELTA_TRUSTED_DOMAIN: {
4842 uint32_t _ptr_sid;
4843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4844 if (_ptr_sid) {
4845 NDR_PULL_ALLOC(ndr, r->sid);
4846 } else {
4847 r->sid = NULL;
4849 break; }
4851 case NETR_DELTA_DELETE_TRUST: {
4852 uint32_t _ptr_sid;
4853 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4854 if (_ptr_sid) {
4855 NDR_PULL_ALLOC(ndr, r->sid);
4856 } else {
4857 r->sid = NULL;
4859 break; }
4861 case NETR_DELTA_ACCOUNT: {
4862 uint32_t _ptr_sid;
4863 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4864 if (_ptr_sid) {
4865 NDR_PULL_ALLOC(ndr, r->sid);
4866 } else {
4867 r->sid = NULL;
4869 break; }
4871 case NETR_DELTA_DELETE_ACCOUNT: {
4872 uint32_t _ptr_sid;
4873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4874 if (_ptr_sid) {
4875 NDR_PULL_ALLOC(ndr, r->sid);
4876 } else {
4877 r->sid = NULL;
4879 break; }
4881 case NETR_DELTA_SECRET: {
4882 uint32_t _ptr_name;
4883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4884 if (_ptr_name) {
4885 NDR_PULL_ALLOC(ndr, r->name);
4886 } else {
4887 r->name = NULL;
4889 break; }
4891 case NETR_DELTA_DELETE_SECRET: {
4892 uint32_t _ptr_name;
4893 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4894 if (_ptr_name) {
4895 NDR_PULL_ALLOC(ndr, r->name);
4896 } else {
4897 r->name = NULL;
4899 break; }
4901 case NETR_DELTA_DELETE_GROUP2: {
4902 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4903 break; }
4905 case NETR_DELTA_DELETE_USER2: {
4906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4907 break; }
4909 case NETR_DELTA_MODIFY_COUNT: {
4910 break; }
4912 default:
4913 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4916 if (ndr_flags & NDR_BUFFERS) {
4917 switch (level) {
4918 case NETR_DELTA_DOMAIN:
4919 break;
4921 case NETR_DELTA_GROUP:
4922 break;
4924 case NETR_DELTA_DELETE_GROUP:
4925 break;
4927 case NETR_DELTA_RENAME_GROUP:
4928 break;
4930 case NETR_DELTA_USER:
4931 break;
4933 case NETR_DELTA_DELETE_USER:
4934 break;
4936 case NETR_DELTA_RENAME_USER:
4937 break;
4939 case NETR_DELTA_GROUP_MEMBER:
4940 break;
4942 case NETR_DELTA_ALIAS:
4943 break;
4945 case NETR_DELTA_DELETE_ALIAS:
4946 break;
4948 case NETR_DELTA_RENAME_ALIAS:
4949 break;
4951 case NETR_DELTA_ALIAS_MEMBER:
4952 break;
4954 case NETR_DELTA_POLICY:
4955 if (r->sid) {
4956 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4957 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4958 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4961 break;
4963 case NETR_DELTA_TRUSTED_DOMAIN:
4964 if (r->sid) {
4965 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4966 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4967 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4970 break;
4972 case NETR_DELTA_DELETE_TRUST:
4973 if (r->sid) {
4974 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4975 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4976 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4979 break;
4981 case NETR_DELTA_ACCOUNT:
4982 if (r->sid) {
4983 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4984 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4985 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4988 break;
4990 case NETR_DELTA_DELETE_ACCOUNT:
4991 if (r->sid) {
4992 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4993 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4994 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4997 break;
4999 case NETR_DELTA_SECRET:
5000 if (r->name) {
5001 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5002 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5003 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5004 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5005 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5006 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
5008 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5009 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5012 break;
5014 case NETR_DELTA_DELETE_SECRET:
5015 if (r->name) {
5016 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5017 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5018 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5019 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5020 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5021 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
5023 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5024 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5027 break;
5029 case NETR_DELTA_DELETE_GROUP2:
5030 break;
5032 case NETR_DELTA_DELETE_USER2:
5033 break;
5035 case NETR_DELTA_MODIFY_COUNT:
5036 break;
5038 default:
5039 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5042 return NT_STATUS_OK;
5045 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
5047 int level;
5048 level = ndr_print_get_switch_value(ndr, r);
5049 ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
5050 switch (level) {
5051 case NETR_DELTA_DOMAIN:
5052 ndr_print_uint32(ndr, "rid", r->rid);
5053 break;
5055 case NETR_DELTA_GROUP:
5056 ndr_print_uint32(ndr, "rid", r->rid);
5057 break;
5059 case NETR_DELTA_DELETE_GROUP:
5060 ndr_print_uint32(ndr, "rid", r->rid);
5061 break;
5063 case NETR_DELTA_RENAME_GROUP:
5064 ndr_print_uint32(ndr, "rid", r->rid);
5065 break;
5067 case NETR_DELTA_USER:
5068 ndr_print_uint32(ndr, "rid", r->rid);
5069 break;
5071 case NETR_DELTA_DELETE_USER:
5072 ndr_print_uint32(ndr, "rid", r->rid);
5073 break;
5075 case NETR_DELTA_RENAME_USER:
5076 ndr_print_uint32(ndr, "rid", r->rid);
5077 break;
5079 case NETR_DELTA_GROUP_MEMBER:
5080 ndr_print_uint32(ndr, "rid", r->rid);
5081 break;
5083 case NETR_DELTA_ALIAS:
5084 ndr_print_uint32(ndr, "rid", r->rid);
5085 break;
5087 case NETR_DELTA_DELETE_ALIAS:
5088 ndr_print_uint32(ndr, "rid", r->rid);
5089 break;
5091 case NETR_DELTA_RENAME_ALIAS:
5092 ndr_print_uint32(ndr, "rid", r->rid);
5093 break;
5095 case NETR_DELTA_ALIAS_MEMBER:
5096 ndr_print_uint32(ndr, "rid", r->rid);
5097 break;
5099 case NETR_DELTA_POLICY:
5100 ndr_print_ptr(ndr, "sid", r->sid);
5101 ndr->depth++;
5102 if (r->sid) {
5103 ndr_print_dom_sid2(ndr, "sid", r->sid);
5105 ndr->depth--;
5106 break;
5108 case NETR_DELTA_TRUSTED_DOMAIN:
5109 ndr_print_ptr(ndr, "sid", r->sid);
5110 ndr->depth++;
5111 if (r->sid) {
5112 ndr_print_dom_sid2(ndr, "sid", r->sid);
5114 ndr->depth--;
5115 break;
5117 case NETR_DELTA_DELETE_TRUST:
5118 ndr_print_ptr(ndr, "sid", r->sid);
5119 ndr->depth++;
5120 if (r->sid) {
5121 ndr_print_dom_sid2(ndr, "sid", r->sid);
5123 ndr->depth--;
5124 break;
5126 case NETR_DELTA_ACCOUNT:
5127 ndr_print_ptr(ndr, "sid", r->sid);
5128 ndr->depth++;
5129 if (r->sid) {
5130 ndr_print_dom_sid2(ndr, "sid", r->sid);
5132 ndr->depth--;
5133 break;
5135 case NETR_DELTA_DELETE_ACCOUNT:
5136 ndr_print_ptr(ndr, "sid", r->sid);
5137 ndr->depth++;
5138 if (r->sid) {
5139 ndr_print_dom_sid2(ndr, "sid", r->sid);
5141 ndr->depth--;
5142 break;
5144 case NETR_DELTA_SECRET:
5145 ndr_print_ptr(ndr, "name", r->name);
5146 ndr->depth++;
5147 if (r->name) {
5148 ndr_print_string(ndr, "name", r->name);
5150 ndr->depth--;
5151 break;
5153 case NETR_DELTA_DELETE_SECRET:
5154 ndr_print_ptr(ndr, "name", r->name);
5155 ndr->depth++;
5156 if (r->name) {
5157 ndr_print_string(ndr, "name", r->name);
5159 ndr->depth--;
5160 break;
5162 case NETR_DELTA_DELETE_GROUP2:
5163 ndr_print_uint32(ndr, "rid", r->rid);
5164 break;
5166 case NETR_DELTA_DELETE_USER2:
5167 ndr_print_uint32(ndr, "rid", r->rid);
5168 break;
5170 case NETR_DELTA_MODIFY_COUNT:
5171 break;
5173 default:
5174 ndr_print_bad_level(ndr, name, level);
5178 NTSTATUS ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
5180 if (ndr_flags & NDR_SCALARS) {
5181 NDR_CHECK(ndr_push_align(ndr, 4));
5182 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5183 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5184 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5185 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5186 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5188 if (ndr_flags & NDR_BUFFERS) {
5189 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5190 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5192 return NT_STATUS_OK;
5195 NTSTATUS ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
5197 if (ndr_flags & NDR_SCALARS) {
5198 NDR_CHECK(ndr_pull_align(ndr, 4));
5199 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5200 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5201 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5202 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5203 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5205 if (ndr_flags & NDR_BUFFERS) {
5206 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5207 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5209 return NT_STATUS_OK;
5212 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
5214 ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5215 ndr->depth++;
5216 ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5217 ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5218 ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5219 ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5220 ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5221 ndr->depth--;
5224 NTSTATUS ndr_push_netr_DELTA_ENUM_ARRAY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM_ARRAY *r)
5226 uint32_t cntr_delta_enum_1;
5227 if (ndr_flags & NDR_SCALARS) {
5228 NDR_CHECK(ndr_push_align(ndr, 4));
5229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5230 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5232 if (ndr_flags & NDR_BUFFERS) {
5233 if (r->delta_enum) {
5234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5235 for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5236 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5238 for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5239 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5243 return NT_STATUS_OK;
5246 NTSTATUS ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
5248 uint32_t _ptr_delta_enum;
5249 uint32_t cntr_delta_enum_1;
5250 TALLOC_CTX *_mem_save_delta_enum_0;
5251 TALLOC_CTX *_mem_save_delta_enum_1;
5252 if (ndr_flags & NDR_SCALARS) {
5253 NDR_CHECK(ndr_pull_align(ndr, 4));
5254 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5255 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5256 if (_ptr_delta_enum) {
5257 NDR_PULL_ALLOC(ndr, r->delta_enum);
5258 } else {
5259 r->delta_enum = NULL;
5262 if (ndr_flags & NDR_BUFFERS) {
5263 if (r->delta_enum) {
5264 _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5265 NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5266 NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5267 NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5268 _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5269 NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5270 for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5271 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5273 for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5274 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5279 if (r->delta_enum) {
5280 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5283 return NT_STATUS_OK;
5286 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
5288 uint32_t cntr_delta_enum_1;
5289 ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5290 ndr->depth++;
5291 ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5292 ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5293 ndr->depth++;
5294 if (r->delta_enum) {
5295 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", r->num_deltas);
5296 ndr->depth++;
5297 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5298 char *idx_1=NULL;
5299 asprintf(&idx_1, "[%d]", cntr_delta_enum_1);
5300 if (idx_1) {
5301 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5302 free(idx_1);
5305 ndr->depth--;
5307 ndr->depth--;
5308 ndr->depth--;
5311 NTSTATUS ndr_push_netr_UAS_INFO_0(struct ndr_push *ndr, int ndr_flags, const struct netr_UAS_INFO_0 *r)
5314 uint32_t _flags_save_STRUCT = ndr->flags;
5315 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5316 if (ndr_flags & NDR_SCALARS) {
5317 NDR_CHECK(ndr_push_align(ndr, 4));
5318 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5322 if (ndr_flags & NDR_BUFFERS) {
5324 ndr->flags = _flags_save_STRUCT;
5326 return NT_STATUS_OK;
5329 NTSTATUS ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
5332 uint32_t _flags_save_STRUCT = ndr->flags;
5333 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5334 if (ndr_flags & NDR_SCALARS) {
5335 NDR_CHECK(ndr_pull_align(ndr, 4));
5336 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5337 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5340 if (ndr_flags & NDR_BUFFERS) {
5342 ndr->flags = _flags_save_STRUCT;
5344 return NT_STATUS_OK;
5347 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
5349 ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5351 uint32_t _flags_save_STRUCT = ndr->flags;
5352 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5353 ndr->depth++;
5354 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5355 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5356 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5357 ndr->depth--;
5358 ndr->flags = _flags_save_STRUCT;
5362 NTSTATUS ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
5364 if (ndr_flags & NDR_SCALARS) {
5365 NDR_CHECK(ndr_push_align(ndr, 4));
5367 uint32_t _flags_save_DATA_BLOB = ndr->flags;
5368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5369 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5370 ndr->flags = _flags_save_DATA_BLOB;
5373 if (ndr_flags & NDR_BUFFERS) {
5375 return NT_STATUS_OK;
5378 NTSTATUS ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
5380 if (ndr_flags & NDR_SCALARS) {
5381 NDR_CHECK(ndr_pull_align(ndr, 4));
5383 uint32_t _flags_save_DATA_BLOB = ndr->flags;
5384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5385 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5386 ndr->flags = _flags_save_DATA_BLOB;
5389 if (ndr_flags & NDR_BUFFERS) {
5391 return NT_STATUS_OK;
5394 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
5396 ndr_print_struct(ndr, name, "netr_AccountBuffer");
5397 ndr->depth++;
5398 ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5399 ndr->depth--;
5402 NTSTATUS ndr_push_netr_NETLOGON_INFO_1(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_1 *r)
5404 if (ndr_flags & NDR_SCALARS) {
5405 NDR_CHECK(ndr_push_align(ndr, 4));
5406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5409 if (ndr_flags & NDR_BUFFERS) {
5411 return NT_STATUS_OK;
5414 NTSTATUS ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
5416 if (ndr_flags & NDR_SCALARS) {
5417 NDR_CHECK(ndr_pull_align(ndr, 4));
5418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5421 if (ndr_flags & NDR_BUFFERS) {
5423 return NT_STATUS_OK;
5426 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
5428 ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5429 ndr->depth++;
5430 ndr_print_uint32(ndr, "flags", r->flags);
5431 ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5432 ndr->depth--;
5435 NTSTATUS ndr_push_netr_NETLOGON_INFO_2(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_2 *r)
5437 if (ndr_flags & NDR_SCALARS) {
5438 NDR_CHECK(ndr_push_align(ndr, 4));
5439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5444 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->trusted_dc_name, ndr_charset_length(r->trusted_dc_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status));
5447 if (ndr_flags & NDR_BUFFERS) {
5449 return NT_STATUS_OK;
5452 NTSTATUS ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
5454 if (ndr_flags & NDR_SCALARS) {
5455 NDR_CHECK(ndr_pull_align(ndr, 4));
5456 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5457 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5458 NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5459 NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5460 if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5461 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->trusted_dc_name), ndr_get_array_length(ndr, &r->trusted_dc_name));
5463 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5464 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_dc_name, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t), CH_UTF16));
5465 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status));
5467 if (ndr_flags & NDR_BUFFERS) {
5469 return NT_STATUS_OK;
5472 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
5474 ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5475 ndr->depth++;
5476 ndr_print_uint32(ndr, "flags", r->flags);
5477 ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5478 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5479 ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status);
5480 ndr->depth--;
5483 NTSTATUS 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_uint32(ndr, NDR_SCALARS, r->flags));
5488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5490 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5495 if (ndr_flags & NDR_BUFFERS) {
5497 return NT_STATUS_OK;
5500 NTSTATUS 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_uint32(ndr, NDR_SCALARS, &r->flags));
5505 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5509 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5512 if (ndr_flags & NDR_BUFFERS) {
5514 return NT_STATUS_OK;
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_uint32(ndr, "flags", r->flags);
5522 ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5523 ndr_print_uint32(ndr, "unknown1", r->unknown1);
5524 ndr_print_uint32(ndr, "unknown2", r->unknown2);
5525 ndr_print_uint32(ndr, "unknown3", r->unknown3);
5526 ndr_print_uint32(ndr, "unknown4", r->unknown4);
5527 ndr_print_uint32(ndr, "unknown5", r->unknown5);
5528 ndr->depth--;
5531 NTSTATUS 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, 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 NT_STATUS_OK;
5581 NTSTATUS 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, 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 NT_STATUS_OK;
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 NTSTATUS 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 NT_STATUS_OK;
5709 NTSTATUS 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 NT_STATUS_OK;
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_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
5723 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
5724 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5725 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
5727 ndr_print_enum(ndr, name, "ENUM", val, r);
5730 NTSTATUS ndr_push_netr_CONTROL_DATA_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_DATA_INFORMATION *r)
5732 if (ndr_flags & NDR_SCALARS) {
5733 int level = ndr_push_get_switch_value(ndr, r);
5734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5735 switch (level) {
5736 case NETLOGON_CONTROL_REDISCOVER:
5737 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5738 break;
5740 case NETLOGON_CONTROL_TC_QUERY:
5741 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5742 break;
5744 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5745 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5746 break;
5748 case NETLOGON_CONTROL_SET_DBFLAG:
5749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
5750 break;
5752 default:
5753 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5756 if (ndr_flags & NDR_BUFFERS) {
5757 int level = ndr_push_get_switch_value(ndr, r);
5758 switch (level) {
5759 case NETLOGON_CONTROL_REDISCOVER:
5760 if (r->domain) {
5761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5764 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5766 break;
5768 case NETLOGON_CONTROL_TC_QUERY:
5769 if (r->domain) {
5770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5773 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5775 break;
5777 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5778 if (r->domain) {
5779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5782 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5784 break;
5786 case NETLOGON_CONTROL_SET_DBFLAG:
5787 break;
5789 default:
5790 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5793 return NT_STATUS_OK;
5796 NTSTATUS ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
5798 int level;
5799 uint32_t _level;
5800 TALLOC_CTX *_mem_save_domain_0;
5801 level = ndr_pull_get_switch_value(ndr, r);
5802 if (ndr_flags & NDR_SCALARS) {
5803 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5804 if (_level != level) {
5805 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5807 switch (level) {
5808 case NETLOGON_CONTROL_REDISCOVER: {
5809 uint32_t _ptr_domain;
5810 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5811 if (_ptr_domain) {
5812 NDR_PULL_ALLOC(ndr, r->domain);
5813 } else {
5814 r->domain = NULL;
5816 break; }
5818 case NETLOGON_CONTROL_TC_QUERY: {
5819 uint32_t _ptr_domain;
5820 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5821 if (_ptr_domain) {
5822 NDR_PULL_ALLOC(ndr, r->domain);
5823 } else {
5824 r->domain = NULL;
5826 break; }
5828 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5829 uint32_t _ptr_domain;
5830 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5831 if (_ptr_domain) {
5832 NDR_PULL_ALLOC(ndr, r->domain);
5833 } else {
5834 r->domain = NULL;
5836 break; }
5838 case NETLOGON_CONTROL_SET_DBFLAG: {
5839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
5840 break; }
5842 default:
5843 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5846 if (ndr_flags & NDR_BUFFERS) {
5847 switch (level) {
5848 case NETLOGON_CONTROL_REDISCOVER:
5849 if (r->domain) {
5850 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5851 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5852 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5853 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5854 if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5855 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
5857 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5858 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5861 break;
5863 case NETLOGON_CONTROL_TC_QUERY:
5864 if (r->domain) {
5865 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5866 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5867 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5868 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5869 if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5870 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
5872 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5873 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5876 break;
5878 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5879 if (r->domain) {
5880 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5881 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5882 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5883 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5884 if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5885 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
5887 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5888 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5889 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5891 break;
5893 case NETLOGON_CONTROL_SET_DBFLAG:
5894 break;
5896 default:
5897 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5900 return NT_STATUS_OK;
5903 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
5905 int level;
5906 level = ndr_print_get_switch_value(ndr, r);
5907 ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
5908 switch (level) {
5909 case NETLOGON_CONTROL_REDISCOVER:
5910 ndr_print_ptr(ndr, "domain", r->domain);
5911 ndr->depth++;
5912 if (r->domain) {
5913 ndr_print_string(ndr, "domain", r->domain);
5915 ndr->depth--;
5916 break;
5918 case NETLOGON_CONTROL_TC_QUERY:
5919 ndr_print_ptr(ndr, "domain", r->domain);
5920 ndr->depth++;
5921 if (r->domain) {
5922 ndr_print_string(ndr, "domain", r->domain);
5924 ndr->depth--;
5925 break;
5927 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5928 ndr_print_ptr(ndr, "domain", r->domain);
5929 ndr->depth++;
5930 if (r->domain) {
5931 ndr_print_string(ndr, "domain", r->domain);
5933 ndr->depth--;
5934 break;
5936 case NETLOGON_CONTROL_SET_DBFLAG:
5937 ndr_print_uint32(ndr, "debug_level", r->debug_level);
5938 break;
5940 default:
5941 ndr_print_bad_level(ndr, name, level);
5945 NTSTATUS ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
5947 if (ndr_flags & NDR_SCALARS) {
5948 NDR_CHECK(ndr_push_align(ndr, 4));
5949 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
5950 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
5951 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->dc_address_type));
5952 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
5953 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
5954 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
5955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dc_flags));
5956 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
5957 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
5959 if (ndr_flags & NDR_BUFFERS) {
5960 if (r->dc_unc) {
5961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
5962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
5964 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5966 if (r->dc_address) {
5967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
5968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
5970 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5972 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
5973 if (r->domain_name) {
5974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
5975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
5977 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5979 if (r->forest_name) {
5980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
5981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
5983 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5985 if (r->dc_site_name) {
5986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
5987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5988 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
5989 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_site_name, ndr_charset_length(r->dc_site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5991 if (r->client_site_name) {
5992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
5993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
5995 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_site_name, ndr_charset_length(r->client_site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5998 return NT_STATUS_OK;
6001 NTSTATUS ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6003 uint32_t _ptr_dc_unc;
6004 TALLOC_CTX *_mem_save_dc_unc_0;
6005 uint32_t _ptr_dc_address;
6006 TALLOC_CTX *_mem_save_dc_address_0;
6007 uint32_t _ptr_domain_name;
6008 TALLOC_CTX *_mem_save_domain_name_0;
6009 uint32_t _ptr_forest_name;
6010 TALLOC_CTX *_mem_save_forest_name_0;
6011 uint32_t _ptr_dc_site_name;
6012 TALLOC_CTX *_mem_save_dc_site_name_0;
6013 uint32_t _ptr_client_site_name;
6014 TALLOC_CTX *_mem_save_client_site_name_0;
6015 if (ndr_flags & NDR_SCALARS) {
6016 NDR_CHECK(ndr_pull_align(ndr, 4));
6017 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6018 if (_ptr_dc_unc) {
6019 NDR_PULL_ALLOC(ndr, r->dc_unc);
6020 } else {
6021 r->dc_unc = NULL;
6023 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6024 if (_ptr_dc_address) {
6025 NDR_PULL_ALLOC(ndr, r->dc_address);
6026 } else {
6027 r->dc_address = NULL;
6029 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->dc_address_type));
6030 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6031 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6032 if (_ptr_domain_name) {
6033 NDR_PULL_ALLOC(ndr, r->domain_name);
6034 } else {
6035 r->domain_name = NULL;
6037 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6038 if (_ptr_forest_name) {
6039 NDR_PULL_ALLOC(ndr, r->forest_name);
6040 } else {
6041 r->forest_name = NULL;
6043 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dc_flags));
6044 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6045 if (_ptr_dc_site_name) {
6046 NDR_PULL_ALLOC(ndr, r->dc_site_name);
6047 } else {
6048 r->dc_site_name = NULL;
6050 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6051 if (_ptr_client_site_name) {
6052 NDR_PULL_ALLOC(ndr, r->client_site_name);
6053 } else {
6054 r->client_site_name = NULL;
6057 if (ndr_flags & NDR_BUFFERS) {
6058 if (r->dc_unc) {
6059 _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6060 NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6061 NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6062 NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6063 if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6064 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_unc), ndr_get_array_length(ndr, &r->dc_unc));
6066 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6067 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6070 if (r->dc_address) {
6071 _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6072 NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6073 NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6074 NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6075 if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6076 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_address), ndr_get_array_length(ndr, &r->dc_address));
6078 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6079 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6082 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6083 if (r->domain_name) {
6084 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6085 NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6086 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6087 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6088 if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6089 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name));
6091 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6092 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6095 if (r->forest_name) {
6096 _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6097 NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6098 NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
6099 NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
6100 if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
6101 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->forest_name), ndr_get_array_length(ndr, &r->forest_name));
6103 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
6104 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
6105 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
6107 if (r->dc_site_name) {
6108 _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6109 NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
6110 NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
6111 NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
6112 if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
6113 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_site_name), ndr_get_array_length(ndr, &r->dc_site_name));
6115 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
6116 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_site_name, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t), CH_UTF16));
6117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
6119 if (r->client_site_name) {
6120 _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6121 NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
6122 NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
6123 NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
6124 if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
6125 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client_site_name), ndr_get_array_length(ndr, &r->client_site_name));
6127 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
6128 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_site_name, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t), CH_UTF16));
6129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
6132 return NT_STATUS_OK;
6135 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
6137 ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
6138 ndr->depth++;
6139 ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
6140 ndr->depth++;
6141 if (r->dc_unc) {
6142 ndr_print_string(ndr, "dc_unc", r->dc_unc);
6144 ndr->depth--;
6145 ndr_print_ptr(ndr, "dc_address", r->dc_address);
6146 ndr->depth++;
6147 if (r->dc_address) {
6148 ndr_print_string(ndr, "dc_address", r->dc_address);
6150 ndr->depth--;
6151 ndr_print_int32(ndr, "dc_address_type", r->dc_address_type);
6152 ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
6153 ndr_print_ptr(ndr, "domain_name", r->domain_name);
6154 ndr->depth++;
6155 if (r->domain_name) {
6156 ndr_print_string(ndr, "domain_name", r->domain_name);
6158 ndr->depth--;
6159 ndr_print_ptr(ndr, "forest_name", r->forest_name);
6160 ndr->depth++;
6161 if (r->forest_name) {
6162 ndr_print_string(ndr, "forest_name", r->forest_name);
6164 ndr->depth--;
6165 ndr_print_uint32(ndr, "dc_flags", r->dc_flags);
6166 ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
6167 ndr->depth++;
6168 if (r->dc_site_name) {
6169 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
6171 ndr->depth--;
6172 ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
6173 ndr->depth++;
6174 if (r->client_site_name) {
6175 ndr_print_string(ndr, "client_site_name", r->client_site_name);
6177 ndr->depth--;
6178 ndr->depth--;
6181 NTSTATUS ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
6183 if (ndr_flags & NDR_SCALARS) {
6184 NDR_CHECK(ndr_push_align(ndr, 4));
6185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6188 if (ndr_flags & NDR_BUFFERS) {
6189 if (r->data) {
6190 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6191 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
6194 return NT_STATUS_OK;
6197 NTSTATUS ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
6199 uint32_t _ptr_data;
6200 TALLOC_CTX *_mem_save_data_0;
6201 if (ndr_flags & NDR_SCALARS) {
6202 NDR_CHECK(ndr_pull_align(ndr, 4));
6203 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
6204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6205 if (_ptr_data) {
6206 NDR_PULL_ALLOC(ndr, r->data);
6207 } else {
6208 r->data = NULL;
6211 if (ndr_flags & NDR_BUFFERS) {
6212 if (r->data) {
6213 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6214 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6215 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6216 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6217 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
6218 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6220 if (r->data) {
6221 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
6224 return NT_STATUS_OK;
6227 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
6229 ndr_print_struct(ndr, name, "netr_Blob");
6230 ndr->depth++;
6231 ndr_print_uint32(ndr, "length", r->length);
6232 ndr_print_ptr(ndr, "data", r->data);
6233 ndr->depth++;
6234 if (r->data) {
6235 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6237 ndr->depth--;
6238 ndr->depth--;
6241 NTSTATUS ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r)
6243 uint32_t cntr_data_1;
6245 uint32_t _flags_save_STRUCT = ndr->flags;
6246 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6247 if (ndr_flags & NDR_SCALARS) {
6248 NDR_CHECK(ndr_push_align(ndr, 4));
6249 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
6250 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
6251 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6253 if (ndr_flags & NDR_BUFFERS) {
6254 if (r->data) {
6255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
6256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
6258 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6259 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1]));
6263 ndr->flags = _flags_save_STRUCT;
6265 return NT_STATUS_OK;
6268 NTSTATUS ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r)
6270 uint32_t _ptr_data;
6271 uint32_t cntr_data_1;
6272 TALLOC_CTX *_mem_save_data_0;
6273 TALLOC_CTX *_mem_save_data_1;
6275 uint32_t _flags_save_STRUCT = ndr->flags;
6276 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6277 if (ndr_flags & NDR_SCALARS) {
6278 NDR_CHECK(ndr_pull_align(ndr, 4));
6279 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
6280 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
6281 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6282 if (_ptr_data) {
6283 NDR_PULL_ALLOC(ndr, r->data);
6284 } else {
6285 r->data = NULL;
6288 if (ndr_flags & NDR_BUFFERS) {
6289 if (r->data) {
6290 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6291 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6292 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6293 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
6294 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
6295 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data));
6297 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6298 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
6299 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6300 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6301 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
6303 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
6304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6306 if (r->data) {
6307 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2));
6309 if (r->data) {
6310 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2));
6313 ndr->flags = _flags_save_STRUCT;
6315 return NT_STATUS_OK;
6318 _PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r)
6320 uint32_t cntr_data_1;
6321 ndr_print_struct(ndr, name, "netr_BinaryString");
6323 uint32_t _flags_save_STRUCT = ndr->flags;
6324 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6325 ndr->depth++;
6326 ndr_print_uint16(ndr, "length", r->length);
6327 ndr_print_uint16(ndr, "size", r->size);
6328 ndr_print_ptr(ndr, "data", r->data);
6329 ndr->depth++;
6330 if (r->data) {
6331 ndr->print(ndr, "%s: ARRAY(%d)", "data", r->length / 2);
6332 ndr->depth++;
6333 for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) {
6334 char *idx_1=NULL;
6335 asprintf(&idx_1, "[%d]", cntr_data_1);
6336 if (idx_1) {
6337 ndr_print_uint16(ndr, "data", r->data[cntr_data_1]);
6338 free(idx_1);
6341 ndr->depth--;
6343 ndr->depth--;
6344 ndr->depth--;
6345 ndr->flags = _flags_save_STRUCT;
6349 NTSTATUS ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
6351 uint32_t cntr_unknown7_0;
6352 if (ndr_flags & NDR_SCALARS) {
6353 NDR_CHECK(ndr_push_align(ndr, 4));
6354 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6355 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
6356 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
6357 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
6358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
6359 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
6360 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
6361 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6362 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
6363 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6364 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6365 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
6369 if (ndr_flags & NDR_BUFFERS) {
6370 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6371 if (r->workstation_domain) {
6372 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6375 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6377 if (r->workstation_site) {
6378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6381 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6383 if (r->unknown1) {
6384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6387 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6389 if (r->unknown2) {
6390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6393 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6395 if (r->unknown3) {
6396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6399 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6401 if (r->unknown4) {
6402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6405 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6407 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6408 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
6409 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6410 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6412 return NT_STATUS_OK;
6415 NTSTATUS ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
6417 uint32_t _ptr_workstation_domain;
6418 TALLOC_CTX *_mem_save_workstation_domain_0;
6419 uint32_t _ptr_workstation_site;
6420 TALLOC_CTX *_mem_save_workstation_site_0;
6421 uint32_t _ptr_unknown1;
6422 TALLOC_CTX *_mem_save_unknown1_0;
6423 uint32_t _ptr_unknown2;
6424 TALLOC_CTX *_mem_save_unknown2_0;
6425 uint32_t _ptr_unknown3;
6426 TALLOC_CTX *_mem_save_unknown3_0;
6427 uint32_t _ptr_unknown4;
6428 TALLOC_CTX *_mem_save_unknown4_0;
6429 uint32_t cntr_unknown7_0;
6430 if (ndr_flags & NDR_SCALARS) {
6431 NDR_CHECK(ndr_pull_align(ndr, 4));
6432 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
6434 if (_ptr_workstation_domain) {
6435 NDR_PULL_ALLOC(ndr, r->workstation_domain);
6436 } else {
6437 r->workstation_domain = NULL;
6439 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
6440 if (_ptr_workstation_site) {
6441 NDR_PULL_ALLOC(ndr, r->workstation_site);
6442 } else {
6443 r->workstation_site = NULL;
6445 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
6446 if (_ptr_unknown1) {
6447 NDR_PULL_ALLOC(ndr, r->unknown1);
6448 } else {
6449 r->unknown1 = NULL;
6451 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
6452 if (_ptr_unknown2) {
6453 NDR_PULL_ALLOC(ndr, r->unknown2);
6454 } else {
6455 r->unknown2 = NULL;
6457 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
6458 if (_ptr_unknown3) {
6459 NDR_PULL_ALLOC(ndr, r->unknown3);
6460 } else {
6461 r->unknown3 = NULL;
6463 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
6464 if (_ptr_unknown4) {
6465 NDR_PULL_ALLOC(ndr, r->unknown4);
6466 } else {
6467 r->unknown4 = NULL;
6469 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6470 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
6471 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6472 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6473 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6474 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
6477 if (ndr_flags & NDR_BUFFERS) {
6478 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6479 if (r->workstation_domain) {
6480 _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6481 NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
6482 NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
6483 NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
6484 if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
6485 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_domain), ndr_get_array_length(ndr, &r->workstation_domain));
6487 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
6488 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
6489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
6491 if (r->workstation_site) {
6492 _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
6493 NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
6494 NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
6495 NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
6496 if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
6497 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_site), ndr_get_array_length(ndr, &r->workstation_site));
6499 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
6500 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
6501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
6503 if (r->unknown1) {
6504 _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6505 NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
6506 NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
6507 NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
6508 if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
6509 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown1), ndr_get_array_length(ndr, &r->unknown1));
6511 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
6512 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
6513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
6515 if (r->unknown2) {
6516 _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6517 NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
6518 NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
6519 NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
6520 if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
6521 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown2), ndr_get_array_length(ndr, &r->unknown2));
6523 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
6524 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
6525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
6527 if (r->unknown3) {
6528 _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6529 NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
6530 NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
6531 NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
6532 if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
6533 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown3), ndr_get_array_length(ndr, &r->unknown3));
6535 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
6536 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
6537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
6539 if (r->unknown4) {
6540 _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6541 NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
6542 NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
6543 NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
6544 if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
6545 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown4), ndr_get_array_length(ndr, &r->unknown4));
6547 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
6548 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
6549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
6551 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6552 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
6553 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6554 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6556 return NT_STATUS_OK;
6559 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
6561 uint32_t cntr_unknown7_0;
6562 ndr_print_struct(ndr, name, "netr_DomainQuery1");
6563 ndr->depth++;
6564 ndr_print_netr_Blob(ndr, "blob", &r->blob);
6565 ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
6566 ndr->depth++;
6567 if (r->workstation_domain) {
6568 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
6570 ndr->depth--;
6571 ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
6572 ndr->depth++;
6573 if (r->workstation_site) {
6574 ndr_print_string(ndr, "workstation_site", r->workstation_site);
6576 ndr->depth--;
6577 ndr_print_ptr(ndr, "unknown1", r->unknown1);
6578 ndr->depth++;
6579 if (r->unknown1) {
6580 ndr_print_string(ndr, "unknown1", r->unknown1);
6582 ndr->depth--;
6583 ndr_print_ptr(ndr, "unknown2", r->unknown2);
6584 ndr->depth++;
6585 if (r->unknown2) {
6586 ndr_print_string(ndr, "unknown2", r->unknown2);
6588 ndr->depth--;
6589 ndr_print_ptr(ndr, "unknown3", r->unknown3);
6590 ndr->depth++;
6591 if (r->unknown3) {
6592 ndr_print_string(ndr, "unknown3", r->unknown3);
6594 ndr->depth--;
6595 ndr_print_ptr(ndr, "unknown4", r->unknown4);
6596 ndr->depth++;
6597 if (r->unknown4) {
6598 ndr_print_string(ndr, "unknown4", r->unknown4);
6600 ndr->depth--;
6601 ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2);
6602 ndr_print_lsa_String(ndr, "product", &r->product);
6603 ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
6604 ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
6605 ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", 4);
6606 ndr->depth++;
6607 for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
6608 char *idx_0=NULL;
6609 asprintf(&idx_0, "[%d]", cntr_unknown7_0);
6610 if (idx_0) {
6611 ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
6612 free(idx_0);
6615 ndr->depth--;
6616 ndr->depth--;
6619 NTSTATUS ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
6621 if (ndr_flags & NDR_SCALARS) {
6622 int level = ndr_push_get_switch_value(ndr, r);
6623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6624 switch (level) {
6625 case 1:
6626 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6627 break;
6629 case 2:
6630 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6631 break;
6633 default:
6634 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6637 if (ndr_flags & NDR_BUFFERS) {
6638 int level = ndr_push_get_switch_value(ndr, r);
6639 switch (level) {
6640 case 1:
6641 if (r->query1) {
6642 NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6644 break;
6646 case 2:
6647 if (r->query1) {
6648 NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6650 break;
6652 default:
6653 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6656 return NT_STATUS_OK;
6659 NTSTATUS ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
6661 int level;
6662 uint32_t _level;
6663 TALLOC_CTX *_mem_save_query1_0;
6664 level = ndr_pull_get_switch_value(ndr, r);
6665 if (ndr_flags & NDR_SCALARS) {
6666 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6667 if (_level != level) {
6668 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6670 switch (level) {
6671 case 1: {
6672 uint32_t _ptr_query1;
6673 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6674 if (_ptr_query1) {
6675 NDR_PULL_ALLOC(ndr, r->query1);
6676 } else {
6677 r->query1 = NULL;
6679 break; }
6681 case 2: {
6682 uint32_t _ptr_query1;
6683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6684 if (_ptr_query1) {
6685 NDR_PULL_ALLOC(ndr, r->query1);
6686 } else {
6687 r->query1 = NULL;
6689 break; }
6691 default:
6692 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6695 if (ndr_flags & NDR_BUFFERS) {
6696 switch (level) {
6697 case 1:
6698 if (r->query1) {
6699 _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6700 NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6701 NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6704 break;
6706 case 2:
6707 if (r->query1) {
6708 _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6709 NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6710 NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6713 break;
6715 default:
6716 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6719 return NT_STATUS_OK;
6722 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
6724 int level;
6725 level = ndr_print_get_switch_value(ndr, r);
6726 ndr_print_union(ndr, name, level, "netr_DomainQuery");
6727 switch (level) {
6728 case 1:
6729 ndr_print_ptr(ndr, "query1", r->query1);
6730 ndr->depth++;
6731 if (r->query1) {
6732 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6734 ndr->depth--;
6735 break;
6737 case 2:
6738 ndr_print_ptr(ndr, "query1", r->query1);
6739 ndr->depth++;
6740 if (r->query1) {
6741 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6743 ndr->depth--;
6744 break;
6746 default:
6747 ndr_print_bad_level(ndr, name, level);
6751 NTSTATUS ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
6753 uint32_t cntr_unknown1_0;
6754 uint32_t cntr_unknown_0;
6755 if (ndr_flags & NDR_SCALARS) {
6756 NDR_CHECK(ndr_push_align(ndr, 4));
6757 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6758 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6759 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
6760 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
6761 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
6762 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6763 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6765 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6769 if (ndr_flags & NDR_BUFFERS) {
6770 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6771 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6772 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6773 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
6774 if (r->sid) {
6775 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6777 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6778 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6781 return NT_STATUS_OK;
6784 NTSTATUS ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
6786 uint32_t _ptr_sid;
6787 TALLOC_CTX *_mem_save_sid_0;
6788 uint32_t cntr_unknown1_0;
6789 uint32_t cntr_unknown_0;
6790 if (ndr_flags & NDR_SCALARS) {
6791 NDR_CHECK(ndr_pull_align(ndr, 4));
6792 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6793 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6794 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
6795 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
6796 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
6797 if (_ptr_sid) {
6798 NDR_PULL_ALLOC(ndr, r->sid);
6799 } else {
6800 r->sid = NULL;
6802 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6803 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6805 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6806 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
6809 if (ndr_flags & NDR_BUFFERS) {
6810 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6811 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6812 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6813 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
6814 if (r->sid) {
6815 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6816 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
6817 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6818 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
6820 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6821 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6824 return NT_STATUS_OK;
6827 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
6829 uint32_t cntr_unknown1_0;
6830 uint32_t cntr_unknown_0;
6831 ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
6832 ndr->depth++;
6833 ndr_print_lsa_String(ndr, "domainname", &r->domainname);
6834 ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
6835 ndr_print_lsa_String(ndr, "forest", &r->forest);
6836 ndr_print_GUID(ndr, "guid", &r->guid);
6837 ndr_print_ptr(ndr, "sid", r->sid);
6838 ndr->depth++;
6839 if (r->sid) {
6840 ndr_print_dom_sid2(ndr, "sid", r->sid);
6842 ndr->depth--;
6843 ndr->print(ndr, "%s: ARRAY(%d)", "unknown1", 4);
6844 ndr->depth++;
6845 for (cntr_unknown1_0=0;cntr_unknown1_0<4;cntr_unknown1_0++) {
6846 char *idx_0=NULL;
6847 asprintf(&idx_0, "[%d]", cntr_unknown1_0);
6848 if (idx_0) {
6849 ndr_print_netr_BinaryString(ndr, "unknown1", &r->unknown1[cntr_unknown1_0]);
6850 free(idx_0);
6853 ndr->depth--;
6854 ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 4);
6855 ndr->depth++;
6856 for (cntr_unknown_0=0;cntr_unknown_0<4;cntr_unknown_0++) {
6857 char *idx_0=NULL;
6858 asprintf(&idx_0, "[%d]", cntr_unknown_0);
6859 if (idx_0) {
6860 ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
6861 free(idx_0);
6864 ndr->depth--;
6865 ndr->depth--;
6868 NTSTATUS ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
6870 uint32_t cntr_trusts_1;
6871 uint32_t cntr_unknown_0;
6872 if (ndr_flags & NDR_SCALARS) {
6873 NDR_CHECK(ndr_push_align(ndr, 4));
6874 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
6875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6876 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
6877 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
6878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6881 if (ndr_flags & NDR_BUFFERS) {
6882 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
6883 if (r->trusts) {
6884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6885 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6886 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
6888 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6889 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
6893 return NT_STATUS_OK;
6896 NTSTATUS ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
6898 uint32_t _ptr_trusts;
6899 uint32_t cntr_trusts_1;
6900 TALLOC_CTX *_mem_save_trusts_0;
6901 TALLOC_CTX *_mem_save_trusts_1;
6902 uint32_t cntr_unknown_0;
6903 if (ndr_flags & NDR_SCALARS) {
6904 NDR_CHECK(ndr_pull_align(ndr, 4));
6905 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
6906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
6907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
6908 if (_ptr_trusts) {
6909 NDR_PULL_ALLOC(ndr, r->trusts);
6910 } else {
6911 r->trusts = NULL;
6913 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
6914 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
6917 if (ndr_flags & NDR_BUFFERS) {
6918 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
6919 if (r->trusts) {
6920 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
6921 NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
6922 NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
6923 NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
6924 _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
6925 NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
6926 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6927 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
6929 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6930 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
6932 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
6933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
6935 if (r->trusts) {
6936 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
6939 return NT_STATUS_OK;
6942 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
6944 uint32_t cntr_trusts_1;
6945 uint32_t cntr_unknown_0;
6946 ndr_print_struct(ndr, name, "netr_DomainInfo1");
6947 ndr->depth++;
6948 ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
6949 ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
6950 ndr_print_ptr(ndr, "trusts", r->trusts);
6951 ndr->depth++;
6952 if (r->trusts) {
6953 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", r->num_trusts);
6954 ndr->depth++;
6955 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
6956 char *idx_1=NULL;
6957 asprintf(&idx_1, "[%d]", cntr_trusts_1);
6958 if (idx_1) {
6959 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
6960 free(idx_1);
6963 ndr->depth--;
6965 ndr->depth--;
6966 ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 14);
6967 ndr->depth++;
6968 for (cntr_unknown_0=0;cntr_unknown_0<14;cntr_unknown_0++) {
6969 char *idx_0=NULL;
6970 asprintf(&idx_0, "[%d]", cntr_unknown_0);
6971 if (idx_0) {
6972 ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
6973 free(idx_0);
6976 ndr->depth--;
6977 ndr->depth--;
6980 NTSTATUS ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
6982 if (ndr_flags & NDR_SCALARS) {
6983 int level = ndr_push_get_switch_value(ndr, r);
6984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6985 switch (level) {
6986 case 1:
6987 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6988 break;
6990 case 2:
6991 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6992 break;
6994 default:
6995 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6998 if (ndr_flags & NDR_BUFFERS) {
6999 int level = ndr_push_get_switch_value(ndr, r);
7000 switch (level) {
7001 case 1:
7002 if (r->info1) {
7003 NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7005 break;
7007 case 2:
7008 if (r->info1) {
7009 NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7011 break;
7013 default:
7014 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7017 return NT_STATUS_OK;
7020 NTSTATUS ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
7022 int level;
7023 uint32_t _level;
7024 TALLOC_CTX *_mem_save_info1_0;
7025 level = ndr_pull_get_switch_value(ndr, r);
7026 if (ndr_flags & NDR_SCALARS) {
7027 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7028 if (_level != level) {
7029 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7031 switch (level) {
7032 case 1: {
7033 uint32_t _ptr_info1;
7034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7035 if (_ptr_info1) {
7036 NDR_PULL_ALLOC(ndr, r->info1);
7037 } else {
7038 r->info1 = NULL;
7040 break; }
7042 case 2: {
7043 uint32_t _ptr_info1;
7044 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7045 if (_ptr_info1) {
7046 NDR_PULL_ALLOC(ndr, r->info1);
7047 } else {
7048 r->info1 = NULL;
7050 break; }
7052 default:
7053 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7056 if (ndr_flags & NDR_BUFFERS) {
7057 switch (level) {
7058 case 1:
7059 if (r->info1) {
7060 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7061 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7062 NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7065 break;
7067 case 2:
7068 if (r->info1) {
7069 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7070 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7071 NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7074 break;
7076 default:
7077 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7080 return NT_STATUS_OK;
7083 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
7085 int level;
7086 level = ndr_print_get_switch_value(ndr, r);
7087 ndr_print_union(ndr, name, level, "netr_DomainInfo");
7088 switch (level) {
7089 case 1:
7090 ndr_print_ptr(ndr, "info1", r->info1);
7091 ndr->depth++;
7092 if (r->info1) {
7093 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7095 ndr->depth--;
7096 break;
7098 case 2:
7099 ndr_print_ptr(ndr, "info1", r->info1);
7100 ndr->depth++;
7101 if (r->info1) {
7102 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7104 ndr->depth--;
7105 break;
7107 default:
7108 ndr_print_bad_level(ndr, name, level);
7112 NTSTATUS ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
7115 uint32_t _flags_save_STRUCT = ndr->flags;
7116 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7117 if (ndr_flags & NDR_SCALARS) {
7118 NDR_CHECK(ndr_push_align(ndr, 4));
7119 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7120 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
7122 if (ndr_flags & NDR_BUFFERS) {
7124 ndr->flags = _flags_save_STRUCT;
7126 return NT_STATUS_OK;
7129 NTSTATUS ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
7132 uint32_t _flags_save_STRUCT = ndr->flags;
7133 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7134 if (ndr_flags & NDR_SCALARS) {
7135 NDR_CHECK(ndr_pull_align(ndr, 4));
7136 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7137 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7139 if (ndr_flags & NDR_BUFFERS) {
7141 ndr->flags = _flags_save_STRUCT;
7143 return NT_STATUS_OK;
7146 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
7148 ndr_print_struct(ndr, name, "netr_CryptPassword");
7150 uint32_t _flags_save_STRUCT = ndr->flags;
7151 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7152 ndr->depth++;
7153 ndr_print_array_uint8(ndr, "data", r->data, 512);
7154 ndr_print_uint32(ndr, "length", r->length);
7155 ndr->depth--;
7156 ndr->flags = _flags_save_STRUCT;
7160 NTSTATUS ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7163 return NT_STATUS_OK;
7166 NTSTATUS ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7168 uint32_t v;
7169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7170 *r = v;
7171 return NT_STATUS_OK;
7174 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7176 ndr_print_uint32(ndr, name, r);
7177 ndr->depth++;
7178 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7179 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7180 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7181 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7182 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7183 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7184 ndr->depth--;
7187 NTSTATUS ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
7189 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7190 return NT_STATUS_OK;
7193 NTSTATUS ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
7195 uint32_t v;
7196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7197 *r = v;
7198 return NT_STATUS_OK;
7201 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
7203 const char *val = NULL;
7205 switch (r) {
7206 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7207 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
7208 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
7209 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
7211 ndr_print_enum(ndr, name, "ENUM", val, r);
7214 NTSTATUS ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7216 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7217 return NT_STATUS_OK;
7220 NTSTATUS ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7222 uint32_t v;
7223 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7224 *r = v;
7225 return NT_STATUS_OK;
7228 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
7230 ndr_print_uint32(ndr, name, r);
7231 ndr->depth++;
7232 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
7233 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
7234 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
7235 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
7236 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
7237 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
7238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
7239 ndr->depth--;
7242 NTSTATUS ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
7244 if (ndr_flags & NDR_SCALARS) {
7245 NDR_CHECK(ndr_push_align(ndr, 4));
7246 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7247 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7248 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
7249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7250 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
7251 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
7252 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7253 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7255 if (ndr_flags & NDR_BUFFERS) {
7256 if (r->netbios_name) {
7257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7260 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7262 if (r->dns_name) {
7263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7265 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7266 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7268 if (r->sid) {
7269 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7271 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
7273 return NT_STATUS_OK;
7276 NTSTATUS ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
7278 uint32_t _ptr_netbios_name;
7279 TALLOC_CTX *_mem_save_netbios_name_0;
7280 uint32_t _ptr_dns_name;
7281 TALLOC_CTX *_mem_save_dns_name_0;
7282 uint32_t _ptr_sid;
7283 TALLOC_CTX *_mem_save_sid_0;
7284 if (ndr_flags & NDR_SCALARS) {
7285 NDR_CHECK(ndr_pull_align(ndr, 4));
7286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7287 if (_ptr_netbios_name) {
7288 NDR_PULL_ALLOC(ndr, r->netbios_name);
7289 } else {
7290 r->netbios_name = NULL;
7292 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7293 if (_ptr_dns_name) {
7294 NDR_PULL_ALLOC(ndr, r->dns_name);
7295 } else {
7296 r->dns_name = NULL;
7298 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
7299 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7300 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
7301 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
7302 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7303 if (_ptr_sid) {
7304 NDR_PULL_ALLOC(ndr, r->sid);
7305 } else {
7306 r->sid = NULL;
7308 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7310 if (ndr_flags & NDR_BUFFERS) {
7311 if (r->netbios_name) {
7312 _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7313 NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7314 NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7315 NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7316 if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7317 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name));
7319 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7320 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7323 if (r->dns_name) {
7324 _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7325 NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7326 NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7327 NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7328 if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7329 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name));
7331 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7332 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7333 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7335 if (r->sid) {
7336 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7337 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7338 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7341 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
7343 return NT_STATUS_OK;
7346 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
7348 ndr_print_struct(ndr, name, "netr_DomainTrust");
7349 ndr->depth++;
7350 ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7351 ndr->depth++;
7352 if (r->netbios_name) {
7353 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7355 ndr->depth--;
7356 ndr_print_ptr(ndr, "dns_name", r->dns_name);
7357 ndr->depth++;
7358 if (r->dns_name) {
7359 ndr_print_string(ndr, "dns_name", r->dns_name);
7361 ndr->depth--;
7362 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
7363 ndr_print_uint32(ndr, "parent_index", r->parent_index);
7364 ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
7365 ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
7366 ndr_print_ptr(ndr, "sid", r->sid);
7367 ndr->depth++;
7368 if (r->sid) {
7369 ndr_print_dom_sid2(ndr, "sid", r->sid);
7371 ndr->depth--;
7372 ndr_print_GUID(ndr, "guid", &r->guid);
7373 ndr->depth--;
7376 NTSTATUS ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
7378 if (flags & NDR_IN) {
7379 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7380 if (r->in.server_name) {
7381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7384 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7389 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7393 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7395 if (flags & NDR_OUT) {
7396 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
7397 if (r->out.info) {
7398 NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
7400 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
7402 return NT_STATUS_OK;
7405 NTSTATUS ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
7407 uint32_t _ptr_server_name;
7408 uint32_t _ptr_info;
7409 TALLOC_CTX *_mem_save_server_name_0;
7410 TALLOC_CTX *_mem_save_info_0;
7411 if (flags & NDR_IN) {
7412 ZERO_STRUCT(r->out);
7414 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7415 if (_ptr_server_name) {
7416 NDR_PULL_ALLOC(ndr, r->in.server_name);
7417 } else {
7418 r->in.server_name = NULL;
7420 if (r->in.server_name) {
7421 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7422 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
7423 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
7424 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
7425 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
7426 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
7428 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
7429 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
7430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
7432 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
7433 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
7434 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
7435 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
7437 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
7438 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
7439 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
7440 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
7441 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
7442 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.workstation), ndr_get_array_length(ndr, &r->in.workstation));
7444 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
7445 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
7447 if (flags & NDR_OUT) {
7448 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
7449 if (_ptr_info) {
7450 NDR_PULL_ALLOC(ndr, r->out.info);
7451 } else {
7452 r->out.info = NULL;
7454 if (r->out.info) {
7455 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7456 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
7457 NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
7458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
7460 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
7462 return NT_STATUS_OK;
7465 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
7467 ndr_print_struct(ndr, name, "netr_LogonUasLogon");
7468 ndr->depth++;
7469 if (flags & NDR_SET_VALUES) {
7470 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7472 if (flags & NDR_IN) {
7473 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
7474 ndr->depth++;
7475 ndr_print_ptr(ndr, "server_name", r->in.server_name);
7476 ndr->depth++;
7477 if (r->in.server_name) {
7478 ndr_print_string(ndr, "server_name", r->in.server_name);
7480 ndr->depth--;
7481 ndr_print_string(ndr, "account_name", r->in.account_name);
7482 ndr_print_string(ndr, "workstation", r->in.workstation);
7483 ndr->depth--;
7485 if (flags & NDR_OUT) {
7486 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
7487 ndr->depth++;
7488 ndr_print_ptr(ndr, "info", r->out.info);
7489 ndr->depth++;
7490 if (r->out.info) {
7491 ndr_print_netr_UasInfo(ndr, "info", r->out.info);
7493 ndr->depth--;
7494 ndr_print_WERROR(ndr, "result", r->out.result);
7495 ndr->depth--;
7497 ndr->depth--;
7500 NTSTATUS ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
7502 if (flags & NDR_IN) {
7503 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7504 if (r->in.server_name) {
7505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7506 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7507 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7508 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7513 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7517 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7519 if (flags & NDR_OUT) {
7520 if (r->out.info == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
7521 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
7522 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
7524 return NT_STATUS_OK;
7527 NTSTATUS ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
7529 uint32_t _ptr_server_name;
7530 TALLOC_CTX *_mem_save_server_name_0;
7531 TALLOC_CTX *_mem_save_info_0;
7532 if (flags & NDR_IN) {
7533 ZERO_STRUCT(r->out);
7535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7536 if (_ptr_server_name) {
7537 NDR_PULL_ALLOC(ndr, r->in.server_name);
7538 } else {
7539 r->in.server_name = NULL;
7541 if (r->in.server_name) {
7542 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7543 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
7544 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
7545 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
7546 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
7547 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
7549 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
7550 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
7551 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
7553 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
7554 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
7555 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
7556 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
7558 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
7559 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
7560 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
7561 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
7562 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
7563 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.workstation), ndr_get_array_length(ndr, &r->in.workstation));
7565 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
7566 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
7567 NDR_PULL_ALLOC(ndr, r->out.info);
7568 ZERO_STRUCTP(r->out.info);
7570 if (flags & NDR_OUT) {
7571 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7572 NDR_PULL_ALLOC(ndr, r->out.info);
7574 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7575 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
7576 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
7577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
7578 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
7580 return NT_STATUS_OK;
7583 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
7585 ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
7586 ndr->depth++;
7587 if (flags & NDR_SET_VALUES) {
7588 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7590 if (flags & NDR_IN) {
7591 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
7592 ndr->depth++;
7593 ndr_print_ptr(ndr, "server_name", r->in.server_name);
7594 ndr->depth++;
7595 if (r->in.server_name) {
7596 ndr_print_string(ndr, "server_name", r->in.server_name);
7598 ndr->depth--;
7599 ndr_print_string(ndr, "account_name", r->in.account_name);
7600 ndr_print_string(ndr, "workstation", r->in.workstation);
7601 ndr->depth--;
7603 if (flags & NDR_OUT) {
7604 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
7605 ndr->depth++;
7606 ndr_print_ptr(ndr, "info", r->out.info);
7607 ndr->depth++;
7608 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
7609 ndr->depth--;
7610 ndr_print_WERROR(ndr, "result", r->out.result);
7611 ndr->depth--;
7613 ndr->depth--;
7616 NTSTATUS ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
7618 if (flags & NDR_IN) {
7619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7620 if (r->in.server_name) {
7621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7624 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7626 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
7627 if (r->in.computer_name) {
7628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
7629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7630 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
7631 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7633 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
7634 if (r->in.credential) {
7635 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
7637 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
7638 if (r->in.return_authenticator) {
7639 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
7641 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
7642 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
7643 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
7644 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
7646 if (flags & NDR_OUT) {
7647 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
7648 if (r->out.return_authenticator) {
7649 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
7651 if (r->out.validation == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
7652 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
7653 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
7654 if (r->out.authoritative == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
7655 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
7656 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7658 return NT_STATUS_OK;
7661 NTSTATUS ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
7663 uint32_t _ptr_server_name;
7664 uint32_t _ptr_computer_name;
7665 uint32_t _ptr_credential;
7666 uint32_t _ptr_return_authenticator;
7667 TALLOC_CTX *_mem_save_server_name_0;
7668 TALLOC_CTX *_mem_save_computer_name_0;
7669 TALLOC_CTX *_mem_save_credential_0;
7670 TALLOC_CTX *_mem_save_return_authenticator_0;
7671 TALLOC_CTX *_mem_save_validation_0;
7672 TALLOC_CTX *_mem_save_authoritative_0;
7673 if (flags & NDR_IN) {
7674 ZERO_STRUCT(r->out);
7676 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7677 if (_ptr_server_name) {
7678 NDR_PULL_ALLOC(ndr, r->in.server_name);
7679 } else {
7680 r->in.server_name = NULL;
7682 if (r->in.server_name) {
7683 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7684 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
7685 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
7686 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
7687 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
7688 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
7690 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
7691 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
7692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
7694 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
7695 if (_ptr_computer_name) {
7696 NDR_PULL_ALLOC(ndr, r->in.computer_name);
7697 } else {
7698 r->in.computer_name = NULL;
7700 if (r->in.computer_name) {
7701 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7702 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
7703 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
7704 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
7705 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
7706 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
7708 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
7709 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
7710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
7712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
7713 if (_ptr_credential) {
7714 NDR_PULL_ALLOC(ndr, r->in.credential);
7715 } else {
7716 r->in.credential = NULL;
7718 if (r->in.credential) {
7719 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
7720 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
7721 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
7722 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
7724 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
7725 if (_ptr_return_authenticator) {
7726 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
7727 } else {
7728 r->in.return_authenticator = NULL;
7730 if (r->in.return_authenticator) {
7731 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
7732 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
7733 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
7734 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
7736 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
7737 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
7738 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
7739 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
7740 NDR_PULL_ALLOC(ndr, r->out.validation);
7741 ZERO_STRUCTP(r->out.validation);
7742 NDR_PULL_ALLOC(ndr, r->out.authoritative);
7743 ZERO_STRUCTP(r->out.authoritative);
7745 if (flags & NDR_OUT) {
7746 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
7747 if (_ptr_return_authenticator) {
7748 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
7749 } else {
7750 r->out.return_authenticator = NULL;
7752 if (r->out.return_authenticator) {
7753 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
7754 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
7755 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
7756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
7758 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7759 NDR_PULL_ALLOC(ndr, r->out.validation);
7761 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
7762 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
7763 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
7764 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
7765 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
7766 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
7767 NDR_PULL_ALLOC(ndr, r->out.authoritative);
7769 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
7770 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
7771 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
7772 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
7773 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7775 return NT_STATUS_OK;
7778 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
7780 ndr_print_struct(ndr, name, "netr_LogonSamLogon");
7781 ndr->depth++;
7782 if (flags & NDR_SET_VALUES) {
7783 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7785 if (flags & NDR_IN) {
7786 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
7787 ndr->depth++;
7788 ndr_print_ptr(ndr, "server_name", r->in.server_name);
7789 ndr->depth++;
7790 if (r->in.server_name) {
7791 ndr_print_string(ndr, "server_name", r->in.server_name);
7793 ndr->depth--;
7794 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
7795 ndr->depth++;
7796 if (r->in.computer_name) {
7797 ndr_print_string(ndr, "computer_name", r->in.computer_name);
7799 ndr->depth--;
7800 ndr_print_ptr(ndr, "credential", r->in.credential);
7801 ndr->depth++;
7802 if (r->in.credential) {
7803 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
7805 ndr->depth--;
7806 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
7807 ndr->depth++;
7808 if (r->in.return_authenticator) {
7809 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
7811 ndr->depth--;
7812 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
7813 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
7814 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
7815 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
7816 ndr->depth--;
7818 if (flags & NDR_OUT) {
7819 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
7820 ndr->depth++;
7821 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
7822 ndr->depth++;
7823 if (r->out.return_authenticator) {
7824 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
7826 ndr->depth--;
7827 ndr_print_ptr(ndr, "validation", r->out.validation);
7828 ndr->depth++;
7829 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
7830 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
7831 ndr->depth--;
7832 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
7833 ndr->depth++;
7834 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
7835 ndr->depth--;
7836 ndr_print_NTSTATUS(ndr, "result", r->out.result);
7837 ndr->depth--;
7839 ndr->depth--;
7842 NTSTATUS ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
7844 if (flags & NDR_IN) {
7845 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7846 if (r->in.server_name) {
7847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7850 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7852 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
7853 if (r->in.computer_name) {
7854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
7855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
7857 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7859 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
7860 if (r->in.credential) {
7861 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
7863 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
7864 if (r->in.return_authenticator) {
7865 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
7867 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
7868 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
7869 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
7871 if (flags & NDR_OUT) {
7872 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
7873 if (r->out.return_authenticator) {
7874 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
7876 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
7878 return NT_STATUS_OK;
7881 NTSTATUS ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
7883 uint32_t _ptr_server_name;
7884 uint32_t _ptr_computer_name;
7885 uint32_t _ptr_credential;
7886 uint32_t _ptr_return_authenticator;
7887 TALLOC_CTX *_mem_save_server_name_0;
7888 TALLOC_CTX *_mem_save_computer_name_0;
7889 TALLOC_CTX *_mem_save_credential_0;
7890 TALLOC_CTX *_mem_save_return_authenticator_0;
7891 if (flags & NDR_IN) {
7892 ZERO_STRUCT(r->out);
7894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7895 if (_ptr_server_name) {
7896 NDR_PULL_ALLOC(ndr, r->in.server_name);
7897 } else {
7898 r->in.server_name = NULL;
7900 if (r->in.server_name) {
7901 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7902 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
7903 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
7904 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
7905 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
7906 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
7908 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
7909 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
7910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
7912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
7913 if (_ptr_computer_name) {
7914 NDR_PULL_ALLOC(ndr, r->in.computer_name);
7915 } else {
7916 r->in.computer_name = NULL;
7918 if (r->in.computer_name) {
7919 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7920 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
7921 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
7922 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
7923 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
7924 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
7926 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
7927 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
7928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
7930 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
7931 if (_ptr_credential) {
7932 NDR_PULL_ALLOC(ndr, r->in.credential);
7933 } else {
7934 r->in.credential = NULL;
7936 if (r->in.credential) {
7937 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
7938 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
7939 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
7940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
7942 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
7943 if (_ptr_return_authenticator) {
7944 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
7945 } else {
7946 r->in.return_authenticator = NULL;
7948 if (r->in.return_authenticator) {
7949 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
7950 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
7951 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
7952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
7954 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
7955 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
7956 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
7958 if (flags & NDR_OUT) {
7959 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
7960 if (_ptr_return_authenticator) {
7961 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
7962 } else {
7963 r->out.return_authenticator = NULL;
7965 if (r->out.return_authenticator) {
7966 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
7967 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
7968 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
7969 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
7971 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
7973 return NT_STATUS_OK;
7976 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
7978 ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
7979 ndr->depth++;
7980 if (flags & NDR_SET_VALUES) {
7981 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
7983 if (flags & NDR_IN) {
7984 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
7985 ndr->depth++;
7986 ndr_print_ptr(ndr, "server_name", r->in.server_name);
7987 ndr->depth++;
7988 if (r->in.server_name) {
7989 ndr_print_string(ndr, "server_name", r->in.server_name);
7991 ndr->depth--;
7992 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
7993 ndr->depth++;
7994 if (r->in.computer_name) {
7995 ndr_print_string(ndr, "computer_name", r->in.computer_name);
7997 ndr->depth--;
7998 ndr_print_ptr(ndr, "credential", r->in.credential);
7999 ndr->depth++;
8000 if (r->in.credential) {
8001 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8003 ndr->depth--;
8004 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8005 ndr->depth++;
8006 if (r->in.return_authenticator) {
8007 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8009 ndr->depth--;
8010 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
8011 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8012 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
8013 ndr->depth--;
8015 if (flags & NDR_OUT) {
8016 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
8017 ndr->depth++;
8018 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8019 ndr->depth++;
8020 if (r->out.return_authenticator) {
8021 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8023 ndr->depth--;
8024 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8025 ndr->depth--;
8027 ndr->depth--;
8030 NTSTATUS ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
8032 if (flags & NDR_IN) {
8033 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8034 if (r->in.server_name) {
8035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8038 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8043 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8044 if (r->in.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8045 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8047 if (flags & NDR_OUT) {
8048 if (r->out.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8049 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8050 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8052 return NT_STATUS_OK;
8055 NTSTATUS ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
8057 uint32_t _ptr_server_name;
8058 TALLOC_CTX *_mem_save_server_name_0;
8059 TALLOC_CTX *_mem_save_credentials_0;
8060 if (flags & NDR_IN) {
8061 ZERO_STRUCT(r->out);
8063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8064 if (_ptr_server_name) {
8065 NDR_PULL_ALLOC(ndr, r->in.server_name);
8066 } else {
8067 r->in.server_name = NULL;
8069 if (r->in.server_name) {
8070 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8071 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8072 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8073 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8074 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8075 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8077 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8078 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
8079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8081 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8082 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8083 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8084 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
8086 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8087 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
8088 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8089 NDR_PULL_ALLOC(ndr, r->in.credentials);
8091 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8092 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8093 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8095 NDR_PULL_ALLOC(ndr, r->out.credentials);
8096 *r->out.credentials = *r->in.credentials;
8098 if (flags & NDR_OUT) {
8099 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8100 NDR_PULL_ALLOC(ndr, r->out.credentials);
8102 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8103 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
8104 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8105 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8106 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8108 return NT_STATUS_OK;
8111 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
8113 ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
8114 ndr->depth++;
8115 if (flags & NDR_SET_VALUES) {
8116 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8118 if (flags & NDR_IN) {
8119 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
8120 ndr->depth++;
8121 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8122 ndr->depth++;
8123 if (r->in.server_name) {
8124 ndr_print_string(ndr, "server_name", r->in.server_name);
8126 ndr->depth--;
8127 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8128 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8129 ndr->depth++;
8130 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8131 ndr->depth--;
8132 ndr->depth--;
8134 if (flags & NDR_OUT) {
8135 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
8136 ndr->depth++;
8137 ndr_print_ptr(ndr, "credentials", r->out.credentials);
8138 ndr->depth++;
8139 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
8140 ndr->depth--;
8141 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8142 ndr->depth--;
8144 ndr->depth--;
8147 NTSTATUS ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
8149 if (flags & NDR_IN) {
8150 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8151 if (r->in.server_name) {
8152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8153 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8155 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8160 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8161 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8165 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8166 if (r->in.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8167 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8169 if (flags & NDR_OUT) {
8170 if (r->out.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8171 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8172 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8174 return NT_STATUS_OK;
8177 NTSTATUS ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
8179 uint32_t _ptr_server_name;
8180 TALLOC_CTX *_mem_save_server_name_0;
8181 TALLOC_CTX *_mem_save_credentials_0;
8182 if (flags & NDR_IN) {
8183 ZERO_STRUCT(r->out);
8185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8186 if (_ptr_server_name) {
8187 NDR_PULL_ALLOC(ndr, r->in.server_name);
8188 } else {
8189 r->in.server_name = NULL;
8191 if (r->in.server_name) {
8192 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8193 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8194 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8195 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8196 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8197 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8199 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8200 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
8201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8203 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8204 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8205 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8206 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
8208 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8209 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
8210 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8211 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8212 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8213 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8214 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
8216 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8217 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
8218 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8219 NDR_PULL_ALLOC(ndr, r->in.credentials);
8221 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8222 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8223 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8225 NDR_PULL_ALLOC(ndr, r->out.credentials);
8226 *r->out.credentials = *r->in.credentials;
8228 if (flags & NDR_OUT) {
8229 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8230 NDR_PULL_ALLOC(ndr, r->out.credentials);
8232 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8233 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
8234 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8235 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8236 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8238 return NT_STATUS_OK;
8241 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
8243 ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
8244 ndr->depth++;
8245 if (flags & NDR_SET_VALUES) {
8246 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8248 if (flags & NDR_IN) {
8249 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
8250 ndr->depth++;
8251 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8252 ndr->depth++;
8253 if (r->in.server_name) {
8254 ndr_print_string(ndr, "server_name", r->in.server_name);
8256 ndr->depth--;
8257 ndr_print_string(ndr, "account_name", r->in.account_name);
8258 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8259 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8260 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8261 ndr->depth++;
8262 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8263 ndr->depth--;
8264 ndr->depth--;
8266 if (flags & NDR_OUT) {
8267 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
8268 ndr->depth++;
8269 ndr_print_ptr(ndr, "credentials", r->out.credentials);
8270 ndr->depth++;
8271 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
8272 ndr->depth--;
8273 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8274 ndr->depth--;
8276 ndr->depth--;
8279 NTSTATUS ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
8281 if (flags & NDR_IN) {
8282 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8283 if (r->in.server_name) {
8284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8287 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8292 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8293 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8297 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8298 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8299 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.new_password));
8301 if (flags & NDR_OUT) {
8302 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8303 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8304 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8306 return NT_STATUS_OK;
8309 NTSTATUS ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
8311 uint32_t _ptr_server_name;
8312 TALLOC_CTX *_mem_save_server_name_0;
8313 TALLOC_CTX *_mem_save_return_authenticator_0;
8314 if (flags & NDR_IN) {
8315 ZERO_STRUCT(r->out);
8317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8318 if (_ptr_server_name) {
8319 NDR_PULL_ALLOC(ndr, r->in.server_name);
8320 } else {
8321 r->in.server_name = NULL;
8323 if (r->in.server_name) {
8324 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8325 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8326 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8327 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8328 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8329 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8331 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8332 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
8333 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8335 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8336 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8337 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8338 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
8340 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8341 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
8342 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8343 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8344 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8345 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8346 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
8348 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8349 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
8350 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8351 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.new_password));
8352 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8353 ZERO_STRUCTP(r->out.return_authenticator);
8355 if (flags & NDR_OUT) {
8356 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8357 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8359 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8360 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8361 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8363 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8365 return NT_STATUS_OK;
8368 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
8370 ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
8371 ndr->depth++;
8372 if (flags & NDR_SET_VALUES) {
8373 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8375 if (flags & NDR_IN) {
8376 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
8377 ndr->depth++;
8378 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8379 ndr->depth++;
8380 if (r->in.server_name) {
8381 ndr_print_string(ndr, "server_name", r->in.server_name);
8383 ndr->depth--;
8384 ndr_print_string(ndr, "account_name", r->in.account_name);
8385 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8386 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8387 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
8388 ndr_print_samr_Password(ndr, "new_password", &r->in.new_password);
8389 ndr->depth--;
8391 if (flags & NDR_OUT) {
8392 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
8393 ndr->depth++;
8394 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8395 ndr->depth++;
8396 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8397 ndr->depth--;
8398 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8399 ndr->depth--;
8401 ndr->depth--;
8404 NTSTATUS ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
8406 if (flags & NDR_IN) {
8407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8410 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8414 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8415 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8416 if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8417 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8418 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
8419 if (r->in.sequence_num == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8420 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
8421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
8423 if (flags & NDR_OUT) {
8424 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8425 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8426 if (r->out.sequence_num == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8427 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
8428 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.delta_enum_array));
8429 if (r->out.delta_enum_array) {
8430 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
8432 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8434 return NT_STATUS_OK;
8437 NTSTATUS ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
8439 uint32_t _ptr_delta_enum_array;
8440 TALLOC_CTX *_mem_save_return_authenticator_0;
8441 TALLOC_CTX *_mem_save_sequence_num_0;
8442 TALLOC_CTX *_mem_save_delta_enum_array_0;
8443 if (flags & NDR_IN) {
8444 ZERO_STRUCT(r->out);
8446 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
8447 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
8448 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
8449 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
8451 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
8452 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
8453 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
8454 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
8455 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
8456 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
8458 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
8459 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
8460 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8461 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8462 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8464 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8465 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8466 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8467 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8468 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
8469 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8470 NDR_PULL_ALLOC(ndr, r->in.sequence_num);
8472 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
8473 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
8474 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
8475 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
8476 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
8477 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8478 *r->out.return_authenticator = *r->in.return_authenticator;
8479 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
8480 *r->out.sequence_num = *r->in.sequence_num;
8482 if (flags & NDR_OUT) {
8483 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8484 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8486 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8487 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8488 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8490 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8491 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
8493 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
8494 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
8495 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
8496 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
8497 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
8498 if (_ptr_delta_enum_array) {
8499 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
8500 } else {
8501 r->out.delta_enum_array = NULL;
8503 if (r->out.delta_enum_array) {
8504 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8505 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, 0);
8506 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
8507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, 0);
8509 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8511 return NT_STATUS_OK;
8514 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
8516 ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
8517 ndr->depth++;
8518 if (flags & NDR_SET_VALUES) {
8519 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8521 if (flags & NDR_IN) {
8522 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
8523 ndr->depth++;
8524 ndr_print_string(ndr, "logon_server", r->in.logon_server);
8525 ndr_print_string(ndr, "computername", r->in.computername);
8526 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
8527 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8528 ndr->depth++;
8529 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8530 ndr->depth--;
8531 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
8532 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
8533 ndr->depth++;
8534 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
8535 ndr->depth--;
8536 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
8537 ndr->depth--;
8539 if (flags & NDR_OUT) {
8540 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
8541 ndr->depth++;
8542 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8543 ndr->depth++;
8544 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8545 ndr->depth--;
8546 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
8547 ndr->depth++;
8548 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
8549 ndr->depth--;
8550 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
8551 ndr->depth++;
8552 if (r->out.delta_enum_array) {
8553 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
8555 ndr->depth--;
8556 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8557 ndr->depth--;
8559 ndr->depth--;
8562 NTSTATUS ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
8564 if (flags & NDR_IN) {
8565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8568 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8571 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8572 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8573 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8574 if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8575 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8576 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
8577 if (r->in.sync_context == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8578 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
8579 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
8581 if (flags & NDR_OUT) {
8582 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8583 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8584 if (r->out.sync_context == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
8586 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.delta_enum_array));
8587 if (r->out.delta_enum_array) {
8588 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
8590 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8592 return NT_STATUS_OK;
8595 NTSTATUS ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
8597 uint32_t _ptr_delta_enum_array;
8598 TALLOC_CTX *_mem_save_return_authenticator_0;
8599 TALLOC_CTX *_mem_save_sync_context_0;
8600 TALLOC_CTX *_mem_save_delta_enum_array_0;
8601 if (flags & NDR_IN) {
8602 ZERO_STRUCT(r->out);
8604 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
8605 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
8606 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
8607 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
8609 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
8610 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
8611 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
8612 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
8613 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
8614 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
8616 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
8617 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
8618 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8619 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8620 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8622 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8623 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8624 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8626 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
8627 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8628 NDR_PULL_ALLOC(ndr, r->in.sync_context);
8630 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
8631 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
8632 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
8633 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
8634 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
8635 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8636 *r->out.return_authenticator = *r->in.return_authenticator;
8637 NDR_PULL_ALLOC(ndr, r->out.sync_context);
8638 *r->out.sync_context = *r->in.sync_context;
8640 if (flags & NDR_OUT) {
8641 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8642 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8644 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8645 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8646 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8648 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8649 NDR_PULL_ALLOC(ndr, r->out.sync_context);
8651 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
8652 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
8653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
8654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
8655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
8656 if (_ptr_delta_enum_array) {
8657 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
8658 } else {
8659 r->out.delta_enum_array = NULL;
8661 if (r->out.delta_enum_array) {
8662 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8663 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, 0);
8664 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
8665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, 0);
8667 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8669 return NT_STATUS_OK;
8672 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
8674 ndr_print_struct(ndr, name, "netr_DatabaseSync");
8675 ndr->depth++;
8676 if (flags & NDR_SET_VALUES) {
8677 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8679 if (flags & NDR_IN) {
8680 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
8681 ndr->depth++;
8682 ndr_print_string(ndr, "logon_server", r->in.logon_server);
8683 ndr_print_string(ndr, "computername", r->in.computername);
8684 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
8685 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8686 ndr->depth++;
8687 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8688 ndr->depth--;
8689 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
8690 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
8691 ndr->depth++;
8692 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
8693 ndr->depth--;
8694 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
8695 ndr->depth--;
8697 if (flags & NDR_OUT) {
8698 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
8699 ndr->depth++;
8700 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8701 ndr->depth++;
8702 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8703 ndr->depth--;
8704 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
8705 ndr->depth++;
8706 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
8707 ndr->depth--;
8708 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
8709 ndr->depth++;
8710 if (r->out.delta_enum_array) {
8711 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
8713 ndr->depth--;
8714 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8715 ndr->depth--;
8717 ndr->depth--;
8720 NTSTATUS ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
8722 if (flags & NDR_IN) {
8723 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
8724 if (r->in.logon_server) {
8725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8728 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8733 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8734 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8735 if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8736 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8737 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
8738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
8739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
8740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
8742 if (flags & NDR_OUT) {
8743 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8744 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8745 if (r->out.buffer == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8747 struct ndr_push *_ndr_buffer;
8748 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
8749 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
8750 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
8752 if (r->out.count_returned == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
8754 if (r->out.total_entries == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8755 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
8756 if (r->out.recordid == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8757 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
8758 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8760 return NT_STATUS_OK;
8763 NTSTATUS ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
8765 uint32_t _ptr_logon_server;
8766 TALLOC_CTX *_mem_save_logon_server_0;
8767 TALLOC_CTX *_mem_save_return_authenticator_0;
8768 TALLOC_CTX *_mem_save_buffer_0;
8769 TALLOC_CTX *_mem_save_count_returned_0;
8770 TALLOC_CTX *_mem_save_total_entries_0;
8771 TALLOC_CTX *_mem_save_recordid_0;
8772 if (flags & NDR_IN) {
8773 ZERO_STRUCT(r->out);
8775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
8776 if (_ptr_logon_server) {
8777 NDR_PULL_ALLOC(ndr, r->in.logon_server);
8778 } else {
8779 r->in.logon_server = NULL;
8781 if (r->in.logon_server) {
8782 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
8783 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
8784 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
8785 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
8786 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
8787 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
8789 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
8790 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
8791 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
8793 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
8794 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
8795 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
8796 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
8798 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
8799 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
8800 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8801 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8802 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8804 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8805 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8806 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8807 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8808 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
8809 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
8810 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
8811 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
8812 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8813 *r->out.return_authenticator = *r->in.return_authenticator;
8814 NDR_PULL_ALLOC(ndr, r->out.buffer);
8815 ZERO_STRUCTP(r->out.buffer);
8816 NDR_PULL_ALLOC(ndr, r->out.count_returned);
8817 ZERO_STRUCTP(r->out.count_returned);
8818 NDR_PULL_ALLOC(ndr, r->out.total_entries);
8819 ZERO_STRUCTP(r->out.total_entries);
8820 NDR_PULL_ALLOC(ndr, r->out.recordid);
8821 ZERO_STRUCTP(r->out.recordid);
8823 if (flags & NDR_OUT) {
8824 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8825 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8827 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8828 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8829 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8830 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8831 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8832 NDR_PULL_ALLOC(ndr, r->out.buffer);
8834 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
8835 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
8837 struct ndr_pull *_ndr_buffer;
8838 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
8839 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
8840 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
8842 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
8843 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8844 NDR_PULL_ALLOC(ndr, r->out.count_returned);
8846 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
8847 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
8848 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
8849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
8850 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8851 NDR_PULL_ALLOC(ndr, r->out.total_entries);
8853 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
8854 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
8855 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
8856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
8857 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8858 NDR_PULL_ALLOC(ndr, r->out.recordid);
8860 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8861 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
8862 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
8863 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
8864 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8866 return NT_STATUS_OK;
8869 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
8871 ndr_print_struct(ndr, name, "netr_AccountDeltas");
8872 ndr->depth++;
8873 if (flags & NDR_SET_VALUES) {
8874 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8876 if (flags & NDR_IN) {
8877 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
8878 ndr->depth++;
8879 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
8880 ndr->depth++;
8881 if (r->in.logon_server) {
8882 ndr_print_string(ndr, "logon_server", r->in.logon_server);
8884 ndr->depth--;
8885 ndr_print_string(ndr, "computername", r->in.computername);
8886 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
8887 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8888 ndr->depth++;
8889 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8890 ndr->depth--;
8891 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
8892 ndr_print_uint32(ndr, "count", r->in.count);
8893 ndr_print_uint32(ndr, "level", r->in.level);
8894 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
8895 ndr->depth--;
8897 if (flags & NDR_OUT) {
8898 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
8899 ndr->depth++;
8900 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8901 ndr->depth++;
8902 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8903 ndr->depth--;
8904 ndr_print_ptr(ndr, "buffer", r->out.buffer);
8905 ndr->depth++;
8906 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
8907 ndr->depth--;
8908 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
8909 ndr->depth++;
8910 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
8911 ndr->depth--;
8912 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
8913 ndr->depth++;
8914 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
8915 ndr->depth--;
8916 ndr_print_ptr(ndr, "recordid", r->out.recordid);
8917 ndr->depth++;
8918 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
8919 ndr->depth--;
8920 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8921 ndr->depth--;
8923 ndr->depth--;
8926 NTSTATUS ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
8928 if (flags & NDR_IN) {
8929 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
8930 if (r->in.logon_server) {
8931 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8932 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8934 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8937 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8938 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8939 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8940 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8941 if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8942 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
8944 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
8945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
8946 if (r->in.recordid == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8947 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
8949 if (flags & NDR_OUT) {
8950 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8951 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8952 if (r->out.buffer == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8954 struct ndr_push *_ndr_buffer;
8955 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
8956 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
8957 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
8959 if (r->out.count_returned == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
8961 if (r->out.total_entries == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
8963 if (r->out.next_reference == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
8965 if (r->out.recordid == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
8966 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
8967 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8969 return NT_STATUS_OK;
8972 NTSTATUS ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
8974 uint32_t _ptr_logon_server;
8975 TALLOC_CTX *_mem_save_logon_server_0;
8976 TALLOC_CTX *_mem_save_return_authenticator_0;
8977 TALLOC_CTX *_mem_save_buffer_0;
8978 TALLOC_CTX *_mem_save_count_returned_0;
8979 TALLOC_CTX *_mem_save_total_entries_0;
8980 TALLOC_CTX *_mem_save_next_reference_0;
8981 TALLOC_CTX *_mem_save_recordid_0;
8982 if (flags & NDR_IN) {
8983 ZERO_STRUCT(r->out);
8985 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
8986 if (_ptr_logon_server) {
8987 NDR_PULL_ALLOC(ndr, r->in.logon_server);
8988 } else {
8989 r->in.logon_server = NULL;
8991 if (r->in.logon_server) {
8992 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
8993 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
8994 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
8995 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
8996 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
8997 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
8999 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9000 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
9001 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9003 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9004 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9005 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9006 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
9008 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9009 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9010 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9011 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9012 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9014 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9015 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9016 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9018 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
9019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9020 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9021 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9022 NDR_PULL_ALLOC(ndr, r->in.recordid);
9024 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9025 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
9026 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9028 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9029 *r->out.return_authenticator = *r->in.return_authenticator;
9030 NDR_PULL_ALLOC(ndr, r->out.buffer);
9031 ZERO_STRUCTP(r->out.buffer);
9032 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9033 ZERO_STRUCTP(r->out.count_returned);
9034 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9035 ZERO_STRUCTP(r->out.total_entries);
9036 NDR_PULL_ALLOC(ndr, r->out.next_reference);
9037 ZERO_STRUCTP(r->out.next_reference);
9038 NDR_PULL_ALLOC(ndr, r->out.recordid);
9039 *r->out.recordid = *r->in.recordid;
9041 if (flags & NDR_OUT) {
9042 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9043 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9045 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9046 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9047 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9049 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9050 NDR_PULL_ALLOC(ndr, r->out.buffer);
9052 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9053 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9055 struct ndr_pull *_ndr_buffer;
9056 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9057 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9058 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9061 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9062 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9064 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9065 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9066 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9068 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9069 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9071 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9072 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9073 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9075 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9076 NDR_PULL_ALLOC(ndr, r->out.next_reference);
9078 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
9079 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
9080 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
9081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
9082 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9083 NDR_PULL_ALLOC(ndr, r->out.recordid);
9085 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9086 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9087 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9089 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9091 return NT_STATUS_OK;
9094 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
9096 ndr_print_struct(ndr, name, "netr_AccountSync");
9097 ndr->depth++;
9098 if (flags & NDR_SET_VALUES) {
9099 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9101 if (flags & NDR_IN) {
9102 ndr_print_struct(ndr, "in", "netr_AccountSync");
9103 ndr->depth++;
9104 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9105 ndr->depth++;
9106 if (r->in.logon_server) {
9107 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9109 ndr->depth--;
9110 ndr_print_string(ndr, "computername", r->in.computername);
9111 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9112 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9113 ndr->depth++;
9114 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9115 ndr->depth--;
9116 ndr_print_uint32(ndr, "reference", r->in.reference);
9117 ndr_print_uint32(ndr, "level", r->in.level);
9118 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9119 ndr_print_ptr(ndr, "recordid", r->in.recordid);
9120 ndr->depth++;
9121 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
9122 ndr->depth--;
9123 ndr->depth--;
9125 if (flags & NDR_OUT) {
9126 ndr_print_struct(ndr, "out", "netr_AccountSync");
9127 ndr->depth++;
9128 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9129 ndr->depth++;
9130 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9131 ndr->depth--;
9132 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9133 ndr->depth++;
9134 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9135 ndr->depth--;
9136 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9137 ndr->depth++;
9138 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9139 ndr->depth--;
9140 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9141 ndr->depth++;
9142 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9143 ndr->depth--;
9144 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
9145 ndr->depth++;
9146 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
9147 ndr->depth--;
9148 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9149 ndr->depth++;
9150 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9151 ndr->depth--;
9152 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9153 ndr->depth--;
9155 ndr->depth--;
9158 NTSTATUS ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
9160 if (flags & NDR_IN) {
9161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9164 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9165 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
9166 if (r->in.domainname) {
9167 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9170 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9173 if (flags & NDR_OUT) {
9174 if (r->out.dcname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9175 if (*r->out.dcname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9176 NDR_CHECK(ndr_push_ref_ptr(ndr));
9177 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9178 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9180 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9181 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9183 return NT_STATUS_OK;
9186 NTSTATUS ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
9188 uint32_t _ptr_domainname;
9189 uint32_t _ptr_dcname;
9190 TALLOC_CTX *_mem_save_domainname_0;
9191 TALLOC_CTX *_mem_save_dcname_0;
9192 if (flags & NDR_IN) {
9193 ZERO_STRUCT(r->out);
9195 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9196 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9197 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9198 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9200 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9201 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
9202 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
9203 if (_ptr_domainname) {
9204 NDR_PULL_ALLOC(ndr, r->in.domainname);
9205 } else {
9206 r->in.domainname = NULL;
9208 if (r->in.domainname) {
9209 _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9210 NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
9211 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
9212 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
9213 if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
9214 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domainname), ndr_get_array_length(ndr, &r->in.domainname));
9216 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
9217 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
9218 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
9220 NDR_PULL_ALLOC(ndr, r->out.dcname);
9221 ZERO_STRUCTP(r->out.dcname);
9223 if (flags & NDR_OUT) {
9224 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9225 NDR_PULL_ALLOC(ndr, r->out.dcname);
9227 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9228 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
9229 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_dcname));
9230 NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
9231 NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
9232 if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
9233 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.dcname), ndr_get_array_length(ndr, r->out.dcname));
9235 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
9236 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
9237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
9238 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9240 return NT_STATUS_OK;
9243 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
9245 ndr_print_struct(ndr, name, "netr_GetDcName");
9246 ndr->depth++;
9247 if (flags & NDR_SET_VALUES) {
9248 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9250 if (flags & NDR_IN) {
9251 ndr_print_struct(ndr, "in", "netr_GetDcName");
9252 ndr->depth++;
9253 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9254 ndr_print_ptr(ndr, "domainname", r->in.domainname);
9255 ndr->depth++;
9256 if (r->in.domainname) {
9257 ndr_print_string(ndr, "domainname", r->in.domainname);
9259 ndr->depth--;
9260 ndr->depth--;
9262 if (flags & NDR_OUT) {
9263 ndr_print_struct(ndr, "out", "netr_GetDcName");
9264 ndr->depth++;
9265 ndr_print_ptr(ndr, "dcname", r->out.dcname);
9266 ndr->depth++;
9267 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
9268 ndr->depth++;
9269 ndr_print_string(ndr, "dcname", *r->out.dcname);
9270 ndr->depth--;
9271 ndr->depth--;
9272 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9273 ndr->depth--;
9275 ndr->depth--;
9278 NTSTATUS ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
9280 if (flags & NDR_IN) {
9281 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9282 if (r->in.logon_server) {
9283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9286 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9288 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
9289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9291 if (flags & NDR_OUT) {
9292 if (r->out.info == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9293 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
9294 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9295 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9297 return NT_STATUS_OK;
9300 NTSTATUS ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
9302 uint32_t _ptr_logon_server;
9303 TALLOC_CTX *_mem_save_logon_server_0;
9304 TALLOC_CTX *_mem_save_info_0;
9305 if (flags & NDR_IN) {
9306 ZERO_STRUCT(r->out);
9308 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9309 if (_ptr_logon_server) {
9310 NDR_PULL_ALLOC(ndr, r->in.logon_server);
9311 } else {
9312 r->in.logon_server = NULL;
9314 if (r->in.logon_server) {
9315 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9316 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9317 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9318 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9319 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9320 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9322 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9323 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
9324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9326 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
9327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9328 NDR_PULL_ALLOC(ndr, r->out.info);
9329 ZERO_STRUCTP(r->out.info);
9331 if (flags & NDR_OUT) {
9332 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9333 NDR_PULL_ALLOC(ndr, r->out.info);
9335 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9336 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9337 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
9338 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9340 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9342 return NT_STATUS_OK;
9345 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
9347 ndr_print_struct(ndr, name, "netr_LogonControl");
9348 ndr->depth++;
9349 if (flags & NDR_SET_VALUES) {
9350 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9352 if (flags & NDR_IN) {
9353 ndr_print_struct(ndr, "in", "netr_LogonControl");
9354 ndr->depth++;
9355 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9356 ndr->depth++;
9357 if (r->in.logon_server) {
9358 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9360 ndr->depth--;
9361 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
9362 ndr_print_uint32(ndr, "level", r->in.level);
9363 ndr->depth--;
9365 if (flags & NDR_OUT) {
9366 ndr_print_struct(ndr, "out", "netr_LogonControl");
9367 ndr->depth++;
9368 ndr_print_ptr(ndr, "info", r->out.info);
9369 ndr->depth++;
9370 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
9371 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
9372 ndr->depth--;
9373 ndr_print_WERROR(ndr, "result", r->out.result);
9374 ndr->depth--;
9376 ndr->depth--;
9379 NTSTATUS ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
9381 if (flags & NDR_IN) {
9382 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9383 if (r->in.logon_server) {
9384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9387 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
9390 if (r->in.domainname) {
9391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9394 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9397 if (flags & NDR_OUT) {
9398 if (r->out.dcname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9399 if (*r->out.dcname == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9400 NDR_CHECK(ndr_push_ref_ptr(ndr));
9401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9404 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9405 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9407 return NT_STATUS_OK;
9410 NTSTATUS ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
9412 uint32_t _ptr_logon_server;
9413 uint32_t _ptr_domainname;
9414 uint32_t _ptr_dcname;
9415 TALLOC_CTX *_mem_save_logon_server_0;
9416 TALLOC_CTX *_mem_save_domainname_0;
9417 TALLOC_CTX *_mem_save_dcname_0;
9418 if (flags & NDR_IN) {
9419 ZERO_STRUCT(r->out);
9421 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9422 if (_ptr_logon_server) {
9423 NDR_PULL_ALLOC(ndr, r->in.logon_server);
9424 } else {
9425 r->in.logon_server = NULL;
9427 if (r->in.logon_server) {
9428 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9429 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9430 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9431 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9432 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9433 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9435 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9436 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
9437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9439 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
9440 if (_ptr_domainname) {
9441 NDR_PULL_ALLOC(ndr, r->in.domainname);
9442 } else {
9443 r->in.domainname = NULL;
9445 if (r->in.domainname) {
9446 _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9447 NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
9448 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
9449 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
9450 if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
9451 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domainname), ndr_get_array_length(ndr, &r->in.domainname));
9453 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
9454 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
9455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
9457 NDR_PULL_ALLOC(ndr, r->out.dcname);
9458 ZERO_STRUCTP(r->out.dcname);
9460 if (flags & NDR_OUT) {
9461 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9462 NDR_PULL_ALLOC(ndr, r->out.dcname);
9464 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9465 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
9466 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_dcname));
9467 NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
9468 NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
9469 if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
9470 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.dcname), ndr_get_array_length(ndr, r->out.dcname));
9472 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
9473 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
9474 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
9475 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9477 return NT_STATUS_OK;
9480 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
9482 ndr_print_struct(ndr, name, "netr_GetAnyDCName");
9483 ndr->depth++;
9484 if (flags & NDR_SET_VALUES) {
9485 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9487 if (flags & NDR_IN) {
9488 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
9489 ndr->depth++;
9490 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9491 ndr->depth++;
9492 if (r->in.logon_server) {
9493 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9495 ndr->depth--;
9496 ndr_print_ptr(ndr, "domainname", r->in.domainname);
9497 ndr->depth++;
9498 if (r->in.domainname) {
9499 ndr_print_string(ndr, "domainname", r->in.domainname);
9501 ndr->depth--;
9502 ndr->depth--;
9504 if (flags & NDR_OUT) {
9505 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
9506 ndr->depth++;
9507 ndr_print_ptr(ndr, "dcname", r->out.dcname);
9508 ndr->depth++;
9509 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
9510 ndr->depth++;
9511 ndr_print_string(ndr, "dcname", *r->out.dcname);
9512 ndr->depth--;
9513 ndr->depth--;
9514 ndr_print_WERROR(ndr, "result", r->out.result);
9515 ndr->depth--;
9517 ndr->depth--;
9520 NTSTATUS ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
9522 if (flags & NDR_IN) {
9523 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9524 if (r->in.logon_server) {
9525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9528 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
9531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9532 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
9533 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
9535 if (flags & NDR_OUT) {
9536 if (r->out.query == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9537 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
9538 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
9539 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9541 return NT_STATUS_OK;
9544 NTSTATUS ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
9546 uint32_t _ptr_logon_server;
9547 TALLOC_CTX *_mem_save_logon_server_0;
9548 TALLOC_CTX *_mem_save_query_0;
9549 if (flags & NDR_IN) {
9550 ZERO_STRUCT(r->out);
9552 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9553 if (_ptr_logon_server) {
9554 NDR_PULL_ALLOC(ndr, r->in.logon_server);
9555 } else {
9556 r->in.logon_server = NULL;
9558 if (r->in.logon_server) {
9559 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9560 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9561 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9562 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9563 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9564 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9566 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9567 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
9568 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9570 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
9571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9572 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
9573 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
9574 NDR_PULL_ALLOC(ndr, r->out.query);
9575 ZERO_STRUCTP(r->out.query);
9577 if (flags & NDR_OUT) {
9578 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9579 NDR_PULL_ALLOC(ndr, r->out.query);
9581 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
9582 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
9583 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
9584 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
9585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
9586 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9588 return NT_STATUS_OK;
9591 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
9593 ndr_print_struct(ndr, name, "netr_LogonControl2");
9594 ndr->depth++;
9595 if (flags & NDR_SET_VALUES) {
9596 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9598 if (flags & NDR_IN) {
9599 ndr_print_struct(ndr, "in", "netr_LogonControl2");
9600 ndr->depth++;
9601 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9602 ndr->depth++;
9603 if (r->in.logon_server) {
9604 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9606 ndr->depth--;
9607 ndr_print_uint32(ndr, "function_code", r->in.function_code);
9608 ndr_print_uint32(ndr, "level", r->in.level);
9609 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
9610 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
9611 ndr->depth--;
9613 if (flags & NDR_OUT) {
9614 ndr_print_struct(ndr, "out", "netr_LogonControl2");
9615 ndr->depth++;
9616 ndr_print_ptr(ndr, "query", r->out.query);
9617 ndr->depth++;
9618 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
9619 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
9620 ndr->depth--;
9621 ndr_print_WERROR(ndr, "result", r->out.result);
9622 ndr->depth--;
9624 ndr->depth--;
9627 NTSTATUS ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
9629 if (flags & NDR_IN) {
9630 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9631 if (r->in.server_name) {
9632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9635 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9640 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9641 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
9642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9645 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9646 if (r->in.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9647 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9648 if (r->in.negotiate_flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags));
9651 if (flags & NDR_OUT) {
9652 if (r->out.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9653 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
9654 if (r->out.negotiate_flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags));
9656 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9658 return NT_STATUS_OK;
9661 NTSTATUS ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
9663 uint32_t _ptr_server_name;
9664 TALLOC_CTX *_mem_save_server_name_0;
9665 TALLOC_CTX *_mem_save_credentials_0;
9666 TALLOC_CTX *_mem_save_negotiate_flags_0;
9667 if (flags & NDR_IN) {
9668 ZERO_STRUCT(r->out);
9670 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9671 if (_ptr_server_name) {
9672 NDR_PULL_ALLOC(ndr, r->in.server_name);
9673 } else {
9674 r->in.server_name = NULL;
9676 if (r->in.server_name) {
9677 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9678 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9679 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9680 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9681 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9682 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
9684 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9685 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
9686 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9688 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9689 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9690 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9691 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
9693 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9694 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
9695 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
9696 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9697 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9698 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9699 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
9701 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9702 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
9703 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9704 NDR_PULL_ALLOC(ndr, r->in.credentials);
9706 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9707 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
9708 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9709 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9710 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9711 NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
9713 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
9714 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
9715 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags));
9716 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
9717 NDR_PULL_ALLOC(ndr, r->out.credentials);
9718 *r->out.credentials = *r->in.credentials;
9719 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
9720 *r->out.negotiate_flags = *r->in.negotiate_flags;
9722 if (flags & NDR_OUT) {
9723 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9724 NDR_PULL_ALLOC(ndr, r->out.credentials);
9726 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9727 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
9728 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
9729 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9730 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9731 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
9733 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
9734 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
9735 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags));
9736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
9737 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9739 return NT_STATUS_OK;
9742 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
9744 ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
9745 ndr->depth++;
9746 if (flags & NDR_SET_VALUES) {
9747 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9749 if (flags & NDR_IN) {
9750 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
9751 ndr->depth++;
9752 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9753 ndr->depth++;
9754 if (r->in.server_name) {
9755 ndr_print_string(ndr, "server_name", r->in.server_name);
9757 ndr->depth--;
9758 ndr_print_string(ndr, "account_name", r->in.account_name);
9759 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
9760 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9761 ndr_print_ptr(ndr, "credentials", r->in.credentials);
9762 ndr->depth++;
9763 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
9764 ndr->depth--;
9765 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
9766 ndr->depth++;
9767 ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags);
9768 ndr->depth--;
9769 ndr->depth--;
9771 if (flags & NDR_OUT) {
9772 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
9773 ndr->depth++;
9774 ndr_print_ptr(ndr, "credentials", r->out.credentials);
9775 ndr->depth++;
9776 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
9777 ndr->depth--;
9778 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
9779 ndr->depth++;
9780 ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags);
9781 ndr->depth--;
9782 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9783 ndr->depth--;
9785 ndr->depth--;
9788 NTSTATUS ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
9790 if (flags & NDR_IN) {
9791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9794 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9798 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9799 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9800 if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9801 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9802 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9803 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
9804 if (r->in.sync_context == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
9806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9808 if (flags & NDR_OUT) {
9809 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9810 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9811 if (r->out.sync_context == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
9813 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.delta_enum_array));
9814 if (r->out.delta_enum_array) {
9815 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9817 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9819 return NT_STATUS_OK;
9822 NTSTATUS ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
9824 uint32_t _ptr_delta_enum_array;
9825 TALLOC_CTX *_mem_save_return_authenticator_0;
9826 TALLOC_CTX *_mem_save_sync_context_0;
9827 TALLOC_CTX *_mem_save_delta_enum_array_0;
9828 if (flags & NDR_IN) {
9829 ZERO_STRUCT(r->out);
9831 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9832 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9833 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9834 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9836 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9837 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
9838 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9839 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9840 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9841 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
9843 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9844 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9845 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9846 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9847 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9849 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9850 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9851 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9853 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9854 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
9855 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9856 NDR_PULL_ALLOC(ndr, r->in.sync_context);
9858 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9859 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
9860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
9861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9862 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9863 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9864 *r->out.return_authenticator = *r->in.return_authenticator;
9865 NDR_PULL_ALLOC(ndr, r->out.sync_context);
9866 *r->out.sync_context = *r->in.sync_context;
9868 if (flags & NDR_OUT) {
9869 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9870 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9872 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9873 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9874 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9875 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9876 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9877 NDR_PULL_ALLOC(ndr, r->out.sync_context);
9879 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9880 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
9881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
9882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
9884 if (_ptr_delta_enum_array) {
9885 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9886 } else {
9887 r->out.delta_enum_array = NULL;
9889 if (r->out.delta_enum_array) {
9890 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9891 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, 0);
9892 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9893 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, 0);
9895 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9897 return NT_STATUS_OK;
9900 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
9902 ndr_print_struct(ndr, name, "netr_DatabaseSync2");
9903 ndr->depth++;
9904 if (flags & NDR_SET_VALUES) {
9905 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9907 if (flags & NDR_IN) {
9908 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
9909 ndr->depth++;
9910 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9911 ndr_print_string(ndr, "computername", r->in.computername);
9912 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9913 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9914 ndr->depth++;
9915 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9916 ndr->depth--;
9917 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9918 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
9919 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
9920 ndr->depth++;
9921 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
9922 ndr->depth--;
9923 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9924 ndr->depth--;
9926 if (flags & NDR_OUT) {
9927 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
9928 ndr->depth++;
9929 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9930 ndr->depth++;
9931 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9932 ndr->depth--;
9933 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
9934 ndr->depth++;
9935 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
9936 ndr->depth--;
9937 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9938 ndr->depth++;
9939 if (r->out.delta_enum_array) {
9940 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
9942 ndr->depth--;
9943 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9944 ndr->depth--;
9946 ndr->depth--;
9949 NTSTATUS ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
9951 if (flags & NDR_IN) {
9952 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9955 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9956 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9957 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9959 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9960 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9961 if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9962 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9963 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.change_log_entry));
9964 if (r->in.change_log_entry) {
9965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
9966 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, r->in.change_log_entry_size));
9968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
9970 if (flags & NDR_OUT) {
9971 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
9972 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9973 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.delta_enum_array));
9974 if (r->out.delta_enum_array) {
9975 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9977 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9979 return NT_STATUS_OK;
9982 NTSTATUS ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
9984 uint32_t _ptr_change_log_entry;
9985 uint32_t _ptr_delta_enum_array;
9986 TALLOC_CTX *_mem_save_return_authenticator_0;
9987 TALLOC_CTX *_mem_save_change_log_entry_0;
9988 TALLOC_CTX *_mem_save_delta_enum_array_0;
9989 if (flags & NDR_IN) {
9990 ZERO_STRUCT(r->out);
9992 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9993 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9994 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9995 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9997 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9998 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
9999 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10000 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10001 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10002 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
10004 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10005 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10006 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10007 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10008 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10010 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10011 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10012 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10014 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_change_log_entry));
10015 if (_ptr_change_log_entry) {
10016 NDR_PULL_ALLOC(ndr, r->in.change_log_entry);
10017 } else {
10018 r->in.change_log_entry = NULL;
10020 if (r->in.change_log_entry) {
10021 _mem_save_change_log_entry_0 = NDR_PULL_GET_MEM_CTX(ndr);
10022 NDR_PULL_SET_MEM_CTX(ndr, r->in.change_log_entry, 0);
10023 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.change_log_entry));
10024 NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry));
10025 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry)));
10026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_change_log_entry_0, 0);
10028 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
10029 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10030 *r->out.return_authenticator = *r->in.return_authenticator;
10031 if (r->in.change_log_entry) {
10032 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.change_log_entry, r->in.change_log_entry_size));
10035 if (flags & NDR_OUT) {
10036 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10037 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10039 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10040 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10041 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10043 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10044 if (_ptr_delta_enum_array) {
10045 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10046 } else {
10047 r->out.delta_enum_array = NULL;
10049 if (r->out.delta_enum_array) {
10050 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10051 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, 0);
10052 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10053 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, 0);
10055 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10057 return NT_STATUS_OK;
10060 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
10062 ndr_print_struct(ndr, name, "netr_DatabaseRedo");
10063 ndr->depth++;
10064 if (flags & NDR_SET_VALUES) {
10065 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10067 if (flags & NDR_IN) {
10068 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
10069 ndr->depth++;
10070 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10071 ndr_print_string(ndr, "computername", r->in.computername);
10072 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10073 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10074 ndr->depth++;
10075 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10076 ndr->depth--;
10077 ndr_print_ptr(ndr, "change_log_entry", r->in.change_log_entry);
10078 ndr->depth++;
10079 if (r->in.change_log_entry) {
10080 ndr_print_array_uint8(ndr, "change_log_entry", r->in.change_log_entry, r->in.change_log_entry_size);
10082 ndr->depth--;
10083 ndr_print_uint32(ndr, "change_log_entry_size", r->in.change_log_entry_size);
10084 ndr->depth--;
10086 if (flags & NDR_OUT) {
10087 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
10088 ndr->depth++;
10089 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10090 ndr->depth++;
10091 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10092 ndr->depth--;
10093 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10094 ndr->depth++;
10095 if (r->out.delta_enum_array) {
10096 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
10098 ndr->depth--;
10099 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10100 ndr->depth--;
10102 ndr->depth--;
10105 NTSTATUS ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
10107 if (flags & NDR_IN) {
10108 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10109 if (r->in.logon_server) {
10110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10113 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10117 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
10118 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10120 if (flags & NDR_OUT) {
10121 if (r->out.query == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
10122 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10123 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10124 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10126 return NT_STATUS_OK;
10129 NTSTATUS ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
10131 uint32_t _ptr_logon_server;
10132 TALLOC_CTX *_mem_save_logon_server_0;
10133 TALLOC_CTX *_mem_save_query_0;
10134 if (flags & NDR_IN) {
10135 ZERO_STRUCT(r->out);
10137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10138 if (_ptr_logon_server) {
10139 NDR_PULL_ALLOC(ndr, r->in.logon_server);
10140 } else {
10141 r->in.logon_server = NULL;
10143 if (r->in.logon_server) {
10144 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10145 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10146 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10147 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10148 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10149 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
10151 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10152 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
10153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10155 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10157 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
10158 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10159 NDR_PULL_ALLOC(ndr, r->out.query);
10160 ZERO_STRUCTP(r->out.query);
10162 if (flags & NDR_OUT) {
10163 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10164 NDR_PULL_ALLOC(ndr, r->out.query);
10166 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10167 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10168 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10169 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10170 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10171 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10173 return NT_STATUS_OK;
10176 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
10178 ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
10179 ndr->depth++;
10180 if (flags & NDR_SET_VALUES) {
10181 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10183 if (flags & NDR_IN) {
10184 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
10185 ndr->depth++;
10186 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10187 ndr->depth++;
10188 if (r->in.logon_server) {
10189 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10191 ndr->depth--;
10192 ndr_print_uint32(ndr, "function_code", r->in.function_code);
10193 ndr_print_uint32(ndr, "level", r->in.level);
10194 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
10195 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
10196 ndr->depth--;
10198 if (flags & NDR_OUT) {
10199 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
10200 ndr->depth++;
10201 ndr_print_ptr(ndr, "query", r->out.query);
10202 ndr->depth++;
10203 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10204 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10205 ndr->depth--;
10206 ndr_print_WERROR(ndr, "result", r->out.result);
10207 ndr->depth--;
10209 ndr->depth--;
10212 NTSTATUS ndr_push_netr_NETRENUMERATETRUSTEDDOMAINS(struct ndr_push *ndr, int flags, const struct netr_NETRENUMERATETRUSTEDDOMAINS *r)
10214 if (flags & NDR_IN) {
10216 if (flags & NDR_OUT) {
10217 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10219 return NT_STATUS_OK;
10222 NTSTATUS ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINS(struct ndr_pull *ndr, int flags, struct netr_NETRENUMERATETRUSTEDDOMAINS *r)
10224 if (flags & NDR_IN) {
10226 if (flags & NDR_OUT) {
10227 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10229 return NT_STATUS_OK;
10232 _PUBLIC_ void ndr_print_netr_NETRENUMERATETRUSTEDDOMAINS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRENUMERATETRUSTEDDOMAINS *r)
10234 ndr_print_struct(ndr, name, "netr_NETRENUMERATETRUSTEDDOMAINS");
10235 ndr->depth++;
10236 if (flags & NDR_SET_VALUES) {
10237 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10239 if (flags & NDR_IN) {
10240 ndr_print_struct(ndr, "in", "netr_NETRENUMERATETRUSTEDDOMAINS");
10241 ndr->depth++;
10242 ndr->depth--;
10244 if (flags & NDR_OUT) {
10245 ndr_print_struct(ndr, "out", "netr_NETRENUMERATETRUSTEDDOMAINS");
10246 ndr->depth++;
10247 ndr_print_WERROR(ndr, "result", r->out.result);
10248 ndr->depth--;
10250 ndr->depth--;
10253 NTSTATUS ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
10255 if (flags & NDR_IN) {
10256 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
10257 if (r->in.server_unc) {
10258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
10259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
10261 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10263 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
10264 if (r->in.domain_name) {
10265 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
10266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
10268 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10270 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
10271 if (r->in.domain_guid) {
10272 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
10274 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
10275 if (r->in.site_guid) {
10276 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
10278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
10280 if (flags & NDR_OUT) {
10281 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
10282 if (r->out.info) {
10283 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10285 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10287 return NT_STATUS_OK;
10290 NTSTATUS ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
10292 uint32_t _ptr_server_unc;
10293 uint32_t _ptr_domain_name;
10294 uint32_t _ptr_domain_guid;
10295 uint32_t _ptr_site_guid;
10296 uint32_t _ptr_info;
10297 TALLOC_CTX *_mem_save_server_unc_0;
10298 TALLOC_CTX *_mem_save_domain_name_0;
10299 TALLOC_CTX *_mem_save_domain_guid_0;
10300 TALLOC_CTX *_mem_save_site_guid_0;
10301 TALLOC_CTX *_mem_save_info_0;
10302 if (flags & NDR_IN) {
10303 ZERO_STRUCT(r->out);
10305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
10306 if (_ptr_server_unc) {
10307 NDR_PULL_ALLOC(ndr, r->in.server_unc);
10308 } else {
10309 r->in.server_unc = NULL;
10311 if (r->in.server_unc) {
10312 _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
10313 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
10314 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
10315 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
10316 if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
10317 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc));
10319 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
10320 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16));
10321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
10323 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
10324 if (_ptr_domain_name) {
10325 NDR_PULL_ALLOC(ndr, r->in.domain_name);
10326 } else {
10327 r->in.domain_name = NULL;
10329 if (r->in.domain_name) {
10330 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10331 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
10332 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
10333 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
10334 if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
10335 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name));
10337 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
10338 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16));
10339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
10341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
10342 if (_ptr_domain_guid) {
10343 NDR_PULL_ALLOC(ndr, r->in.domain_guid);
10344 } else {
10345 r->in.domain_guid = NULL;
10347 if (r->in.domain_guid) {
10348 _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10349 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
10350 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
10351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
10353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
10354 if (_ptr_site_guid) {
10355 NDR_PULL_ALLOC(ndr, r->in.site_guid);
10356 } else {
10357 r->in.site_guid = NULL;
10359 if (r->in.site_guid) {
10360 _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10361 NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
10362 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
10363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
10365 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
10367 if (flags & NDR_OUT) {
10368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
10369 if (_ptr_info) {
10370 NDR_PULL_ALLOC(ndr, r->out.info);
10371 } else {
10372 r->out.info = NULL;
10374 if (r->out.info) {
10375 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10376 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
10377 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
10380 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10382 return NT_STATUS_OK;
10385 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
10387 ndr_print_struct(ndr, name, "netr_DsRGetDCName");
10388 ndr->depth++;
10389 if (flags & NDR_SET_VALUES) {
10390 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10392 if (flags & NDR_IN) {
10393 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
10394 ndr->depth++;
10395 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
10396 ndr->depth++;
10397 if (r->in.server_unc) {
10398 ndr_print_string(ndr, "server_unc", r->in.server_unc);
10400 ndr->depth--;
10401 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
10402 ndr->depth++;
10403 if (r->in.domain_name) {
10404 ndr_print_string(ndr, "domain_name", r->in.domain_name);
10406 ndr->depth--;
10407 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
10408 ndr->depth++;
10409 if (r->in.domain_guid) {
10410 ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
10412 ndr->depth--;
10413 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
10414 ndr->depth++;
10415 if (r->in.site_guid) {
10416 ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
10418 ndr->depth--;
10419 ndr_print_uint32(ndr, "flags", r->in.flags);
10420 ndr->depth--;
10422 if (flags & NDR_OUT) {
10423 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
10424 ndr->depth++;
10425 ndr_print_ptr(ndr, "info", r->out.info);
10426 ndr->depth++;
10427 if (r->out.info) {
10428 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info);
10430 ndr->depth--;
10431 ndr_print_WERROR(ndr, "result", r->out.result);
10432 ndr->depth--;
10434 ndr->depth--;
10437 NTSTATUS ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
10439 if (flags & NDR_IN) {
10441 if (flags & NDR_OUT) {
10442 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10444 return NT_STATUS_OK;
10447 NTSTATUS ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
10449 if (flags & NDR_IN) {
10451 if (flags & NDR_OUT) {
10452 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10454 return NT_STATUS_OK;
10457 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
10459 ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
10460 ndr->depth++;
10461 if (flags & NDR_SET_VALUES) {
10462 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10464 if (flags & NDR_IN) {
10465 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
10466 ndr->depth++;
10467 ndr->depth--;
10469 if (flags & NDR_OUT) {
10470 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
10471 ndr->depth++;
10472 ndr_print_WERROR(ndr, "result", r->out.result);
10473 ndr->depth--;
10475 ndr->depth--;
10478 NTSTATUS ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
10480 if (flags & NDR_IN) {
10482 if (flags & NDR_OUT) {
10483 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10485 return NT_STATUS_OK;
10488 NTSTATUS ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
10490 if (flags & NDR_IN) {
10492 if (flags & NDR_OUT) {
10493 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10495 return NT_STATUS_OK;
10498 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
10500 ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
10501 ndr->depth++;
10502 if (flags & NDR_SET_VALUES) {
10503 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10505 if (flags & NDR_IN) {
10506 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
10507 ndr->depth++;
10508 ndr->depth--;
10510 if (flags & NDR_OUT) {
10511 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
10512 ndr->depth++;
10513 ndr_print_WERROR(ndr, "result", r->out.result);
10514 ndr->depth--;
10516 ndr->depth--;
10519 NTSTATUS ndr_push_netr_NETRLOGONGETTRUSTRID(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTRUSTRID *r)
10521 if (flags & NDR_IN) {
10523 if (flags & NDR_OUT) {
10524 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10526 return NT_STATUS_OK;
10529 NTSTATUS ndr_pull_netr_NETRLOGONGETTRUSTRID(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTRUSTRID *r)
10531 if (flags & NDR_IN) {
10533 if (flags & NDR_OUT) {
10534 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10536 return NT_STATUS_OK;
10539 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTRUSTRID(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTRUSTRID *r)
10541 ndr_print_struct(ndr, name, "netr_NETRLOGONGETTRUSTRID");
10542 ndr->depth++;
10543 if (flags & NDR_SET_VALUES) {
10544 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10546 if (flags & NDR_IN) {
10547 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTRUSTRID");
10548 ndr->depth++;
10549 ndr->depth--;
10551 if (flags & NDR_OUT) {
10552 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTRUSTRID");
10553 ndr->depth++;
10554 ndr_print_WERROR(ndr, "result", r->out.result);
10555 ndr->depth--;
10557 ndr->depth--;
10560 NTSTATUS ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
10562 if (flags & NDR_IN) {
10564 if (flags & NDR_OUT) {
10565 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10567 return NT_STATUS_OK;
10570 NTSTATUS ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
10572 if (flags & NDR_IN) {
10574 if (flags & NDR_OUT) {
10575 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10577 return NT_STATUS_OK;
10580 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
10582 ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
10583 ndr->depth++;
10584 if (flags & NDR_SET_VALUES) {
10585 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10587 if (flags & NDR_IN) {
10588 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
10589 ndr->depth++;
10590 ndr->depth--;
10592 if (flags & NDR_OUT) {
10593 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
10594 ndr->depth++;
10595 ndr_print_WERROR(ndr, "result", r->out.result);
10596 ndr->depth--;
10598 ndr->depth--;
10601 NTSTATUS ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
10603 if (flags & NDR_IN) {
10605 if (flags & NDR_OUT) {
10606 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10608 return NT_STATUS_OK;
10611 NTSTATUS ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
10613 if (flags & NDR_IN) {
10615 if (flags & NDR_OUT) {
10616 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10618 return NT_STATUS_OK;
10621 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
10623 ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
10624 ndr->depth++;
10625 if (flags & NDR_SET_VALUES) {
10626 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10628 if (flags & NDR_IN) {
10629 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
10630 ndr->depth++;
10631 ndr->depth--;
10633 if (flags & NDR_OUT) {
10634 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
10635 ndr->depth++;
10636 ndr_print_WERROR(ndr, "result", r->out.result);
10637 ndr->depth--;
10639 ndr->depth--;
10642 NTSTATUS ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
10644 if (flags & NDR_IN) {
10645 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10646 if (r->in.server_name) {
10647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10650 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10655 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10656 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10659 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10660 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10661 if (r->in.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
10662 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10663 if (r->in.negotiate_flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
10664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags));
10666 if (flags & NDR_OUT) {
10667 if (r->out.credentials == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
10668 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
10669 if (r->out.negotiate_flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
10670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags));
10671 if (r->out.rid == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
10672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
10673 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10675 return NT_STATUS_OK;
10678 NTSTATUS ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
10680 uint32_t _ptr_server_name;
10681 TALLOC_CTX *_mem_save_server_name_0;
10682 TALLOC_CTX *_mem_save_credentials_0;
10683 TALLOC_CTX *_mem_save_negotiate_flags_0;
10684 TALLOC_CTX *_mem_save_rid_0;
10685 if (flags & NDR_IN) {
10686 ZERO_STRUCT(r->out);
10688 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10689 if (_ptr_server_name) {
10690 NDR_PULL_ALLOC(ndr, r->in.server_name);
10691 } else {
10692 r->in.server_name = NULL;
10694 if (r->in.server_name) {
10695 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10696 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10697 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10698 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10699 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10700 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
10702 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10703 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
10704 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10706 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10707 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10708 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10709 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
10711 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10712 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
10713 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10714 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10715 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10716 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10717 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
10719 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10720 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
10721 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10722 NDR_PULL_ALLOC(ndr, r->in.credentials);
10724 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10725 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10726 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10728 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10729 NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
10731 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10732 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10733 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags));
10734 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10735 NDR_PULL_ALLOC(ndr, r->out.credentials);
10736 *r->out.credentials = *r->in.credentials;
10737 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10738 *r->out.negotiate_flags = *r->in.negotiate_flags;
10739 NDR_PULL_ALLOC(ndr, r->out.rid);
10740 ZERO_STRUCTP(r->out.rid);
10742 if (flags & NDR_OUT) {
10743 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10744 NDR_PULL_ALLOC(ndr, r->out.credentials);
10746 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10747 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
10748 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
10749 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10750 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10751 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10753 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10754 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags));
10756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10757 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10758 NDR_PULL_ALLOC(ndr, r->out.rid);
10760 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10761 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
10762 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
10763 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
10764 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10766 return NT_STATUS_OK;
10769 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
10771 ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
10772 ndr->depth++;
10773 if (flags & NDR_SET_VALUES) {
10774 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10776 if (flags & NDR_IN) {
10777 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
10778 ndr->depth++;
10779 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10780 ndr->depth++;
10781 if (r->in.server_name) {
10782 ndr_print_string(ndr, "server_name", r->in.server_name);
10784 ndr->depth--;
10785 ndr_print_string(ndr, "account_name", r->in.account_name);
10786 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10787 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10788 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10789 ndr->depth++;
10790 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10791 ndr->depth--;
10792 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
10793 ndr->depth++;
10794 ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags);
10795 ndr->depth--;
10796 ndr->depth--;
10798 if (flags & NDR_OUT) {
10799 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
10800 ndr->depth++;
10801 ndr_print_ptr(ndr, "credentials", r->out.credentials);
10802 ndr->depth++;
10803 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
10804 ndr->depth--;
10805 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
10806 ndr->depth++;
10807 ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags);
10808 ndr->depth--;
10809 ndr_print_ptr(ndr, "rid", r->out.rid);
10810 ndr->depth++;
10811 ndr_print_uint32(ndr, "rid", *r->out.rid);
10812 ndr->depth--;
10813 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10814 ndr->depth--;
10816 ndr->depth--;
10819 NTSTATUS ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
10821 if (flags & NDR_IN) {
10822 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
10823 if (r->in.server_unc) {
10824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
10825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
10827 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10829 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
10830 if (r->in.domain_name) {
10831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
10832 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
10834 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10836 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
10837 if (r->in.domain_guid) {
10838 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
10840 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
10841 if (r->in.site_name) {
10842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
10843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
10845 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.site_name, ndr_charset_length(r->in.site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
10849 if (flags & NDR_OUT) {
10850 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
10851 if (r->out.info) {
10852 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10854 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10856 return NT_STATUS_OK;
10859 NTSTATUS ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
10861 uint32_t _ptr_server_unc;
10862 uint32_t _ptr_domain_name;
10863 uint32_t _ptr_domain_guid;
10864 uint32_t _ptr_site_name;
10865 uint32_t _ptr_info;
10866 TALLOC_CTX *_mem_save_server_unc_0;
10867 TALLOC_CTX *_mem_save_domain_name_0;
10868 TALLOC_CTX *_mem_save_domain_guid_0;
10869 TALLOC_CTX *_mem_save_site_name_0;
10870 TALLOC_CTX *_mem_save_info_0;
10871 if (flags & NDR_IN) {
10872 ZERO_STRUCT(r->out);
10874 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
10875 if (_ptr_server_unc) {
10876 NDR_PULL_ALLOC(ndr, r->in.server_unc);
10877 } else {
10878 r->in.server_unc = NULL;
10880 if (r->in.server_unc) {
10881 _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
10882 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
10883 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
10884 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
10885 if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
10886 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc));
10888 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
10889 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16));
10890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
10892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
10893 if (_ptr_domain_name) {
10894 NDR_PULL_ALLOC(ndr, r->in.domain_name);
10895 } else {
10896 r->in.domain_name = NULL;
10898 if (r->in.domain_name) {
10899 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10900 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
10901 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
10902 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
10903 if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
10904 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name));
10906 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
10907 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16));
10908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
10910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
10911 if (_ptr_domain_guid) {
10912 NDR_PULL_ALLOC(ndr, r->in.domain_guid);
10913 } else {
10914 r->in.domain_guid = NULL;
10916 if (r->in.domain_guid) {
10917 _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10918 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
10919 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
10920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
10922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
10923 if (_ptr_site_name) {
10924 NDR_PULL_ALLOC(ndr, r->in.site_name);
10925 } else {
10926 r->in.site_name = NULL;
10928 if (r->in.site_name) {
10929 _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10930 NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
10931 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
10932 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
10933 if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
10934 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.site_name), ndr_get_array_length(ndr, &r->in.site_name));
10936 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
10937 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.site_name, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t), CH_UTF16));
10938 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
10940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
10942 if (flags & NDR_OUT) {
10943 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
10944 if (_ptr_info) {
10945 NDR_PULL_ALLOC(ndr, r->out.info);
10946 } else {
10947 r->out.info = NULL;
10949 if (r->out.info) {
10950 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10951 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
10952 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
10955 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10957 return NT_STATUS_OK;
10960 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
10962 ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
10963 ndr->depth++;
10964 if (flags & NDR_SET_VALUES) {
10965 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10967 if (flags & NDR_IN) {
10968 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
10969 ndr->depth++;
10970 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
10971 ndr->depth++;
10972 if (r->in.server_unc) {
10973 ndr_print_string(ndr, "server_unc", r->in.server_unc);
10975 ndr->depth--;
10976 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
10977 ndr->depth++;
10978 if (r->in.domain_name) {
10979 ndr_print_string(ndr, "domain_name", r->in.domain_name);
10981 ndr->depth--;
10982 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
10983 ndr->depth++;
10984 if (r->in.domain_guid) {
10985 ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
10987 ndr->depth--;
10988 ndr_print_ptr(ndr, "site_name", r->in.site_name);
10989 ndr->depth++;
10990 if (r->in.site_name) {
10991 ndr_print_string(ndr, "site_name", r->in.site_name);
10993 ndr->depth--;
10994 ndr_print_uint32(ndr, "flags", r->in.flags);
10995 ndr->depth--;
10997 if (flags & NDR_OUT) {
10998 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
10999 ndr->depth++;
11000 ndr_print_ptr(ndr, "info", r->out.info);
11001 ndr->depth++;
11002 if (r->out.info) {
11003 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info);
11005 ndr->depth--;
11006 ndr_print_WERROR(ndr, "result", r->out.result);
11007 ndr->depth--;
11009 ndr->depth--;
11012 NTSTATUS ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
11014 if (flags & NDR_IN) {
11015 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11016 if (r->in.computer_name) {
11017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11020 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11023 if (flags & NDR_OUT) {
11024 if (r->out.site == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11025 if (*r->out.site == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11026 NDR_CHECK(ndr_push_ref_ptr(ndr));
11027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11030 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11031 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11033 return NT_STATUS_OK;
11036 NTSTATUS ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
11038 uint32_t _ptr_computer_name;
11039 uint32_t _ptr_site;
11040 TALLOC_CTX *_mem_save_computer_name_0;
11041 TALLOC_CTX *_mem_save_site_0;
11042 if (flags & NDR_IN) {
11043 ZERO_STRUCT(r->out);
11045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
11046 if (_ptr_computer_name) {
11047 NDR_PULL_ALLOC(ndr, r->in.computer_name);
11048 } else {
11049 r->in.computer_name = NULL;
11051 if (r->in.computer_name) {
11052 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11053 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
11054 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11055 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11056 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11057 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
11059 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11060 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
11061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
11063 NDR_PULL_ALLOC(ndr, r->out.site);
11064 ZERO_STRUCTP(r->out.site);
11066 if (flags & NDR_OUT) {
11067 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11068 NDR_PULL_ALLOC(ndr, r->out.site);
11070 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
11071 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
11072 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_site));
11073 NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
11074 NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
11075 if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
11076 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.site), ndr_get_array_length(ndr, r->out.site));
11078 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
11079 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
11080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
11081 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11083 return NT_STATUS_OK;
11086 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
11088 ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
11089 ndr->depth++;
11090 if (flags & NDR_SET_VALUES) {
11091 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11093 if (flags & NDR_IN) {
11094 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
11095 ndr->depth++;
11096 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
11097 ndr->depth++;
11098 if (r->in.computer_name) {
11099 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11101 ndr->depth--;
11102 ndr->depth--;
11104 if (flags & NDR_OUT) {
11105 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
11106 ndr->depth++;
11107 ndr_print_ptr(ndr, "site", r->out.site);
11108 ndr->depth++;
11109 ndr_print_ptr(ndr, "site", *r->out.site);
11110 ndr->depth++;
11111 ndr_print_string(ndr, "site", *r->out.site);
11112 ndr->depth--;
11113 ndr->depth--;
11114 ndr_print_WERROR(ndr, "result", r->out.result);
11115 ndr->depth--;
11117 ndr->depth--;
11120 NTSTATUS ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
11122 if (flags & NDR_IN) {
11123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11126 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11127 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11128 if (r->in.computer_name) {
11129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11132 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11134 if (r->in.credential == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11135 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11136 if (r->in.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11137 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11139 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
11140 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
11142 if (flags & NDR_OUT) {
11143 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11144 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11145 if (r->out.info == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11146 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
11147 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11148 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11150 return NT_STATUS_OK;
11153 NTSTATUS ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
11155 uint32_t _ptr_computer_name;
11156 TALLOC_CTX *_mem_save_computer_name_0;
11157 TALLOC_CTX *_mem_save_credential_0;
11158 TALLOC_CTX *_mem_save_return_authenticator_0;
11159 TALLOC_CTX *_mem_save_info_0;
11160 if (flags & NDR_IN) {
11161 ZERO_STRUCT(r->out);
11163 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11164 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11165 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11166 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
11168 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11169 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
11170 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
11171 if (_ptr_computer_name) {
11172 NDR_PULL_ALLOC(ndr, r->in.computer_name);
11173 } else {
11174 r->in.computer_name = NULL;
11176 if (r->in.computer_name) {
11177 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11178 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
11179 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11180 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11181 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11182 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
11184 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11185 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
11186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
11188 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11189 NDR_PULL_ALLOC(ndr, r->in.credential);
11191 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
11192 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
11193 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
11195 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11196 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11198 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11199 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11200 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11202 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11203 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
11204 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
11205 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11206 *r->out.return_authenticator = *r->in.return_authenticator;
11207 NDR_PULL_ALLOC(ndr, r->out.info);
11208 ZERO_STRUCTP(r->out.info);
11210 if (flags & NDR_OUT) {
11211 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11212 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11214 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11215 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11216 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11218 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11219 NDR_PULL_ALLOC(ndr, r->out.info);
11221 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11222 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11223 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
11224 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11225 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11226 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11228 return NT_STATUS_OK;
11231 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
11233 ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
11234 ndr->depth++;
11235 if (flags & NDR_SET_VALUES) {
11236 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11238 if (flags & NDR_IN) {
11239 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
11240 ndr->depth++;
11241 ndr_print_string(ndr, "server_name", r->in.server_name);
11242 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
11243 ndr->depth++;
11244 if (r->in.computer_name) {
11245 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11247 ndr->depth--;
11248 ndr_print_ptr(ndr, "credential", r->in.credential);
11249 ndr->depth++;
11250 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
11251 ndr->depth--;
11252 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11253 ndr->depth++;
11254 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11255 ndr->depth--;
11256 ndr_print_uint32(ndr, "level", r->in.level);
11257 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
11258 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
11259 ndr->depth--;
11261 if (flags & NDR_OUT) {
11262 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
11263 ndr->depth++;
11264 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11265 ndr->depth++;
11266 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11267 ndr->depth--;
11268 ndr_print_ptr(ndr, "info", r->out.info);
11269 ndr->depth++;
11270 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
11271 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
11272 ndr->depth--;
11273 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11274 ndr->depth--;
11276 ndr->depth--;
11279 NTSTATUS ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
11281 if (flags & NDR_IN) {
11282 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11283 if (r->in.server_name) {
11284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11287 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11292 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11293 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11297 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11298 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
11299 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
11301 if (flags & NDR_OUT) {
11302 if (r->out.return_authenticator == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11303 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11304 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11306 return NT_STATUS_OK;
11309 NTSTATUS ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
11311 uint32_t _ptr_server_name;
11312 TALLOC_CTX *_mem_save_server_name_0;
11313 TALLOC_CTX *_mem_save_return_authenticator_0;
11314 if (flags & NDR_IN) {
11315 ZERO_STRUCT(r->out);
11317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11318 if (_ptr_server_name) {
11319 NDR_PULL_ALLOC(ndr, r->in.server_name);
11320 } else {
11321 r->in.server_name = NULL;
11323 if (r->in.server_name) {
11324 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11325 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11326 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11327 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11328 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11329 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
11331 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11332 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
11333 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11335 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11336 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11337 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11338 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
11340 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11341 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
11342 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11343 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11344 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11345 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11346 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
11348 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11349 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
11350 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
11351 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
11352 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11353 ZERO_STRUCTP(r->out.return_authenticator);
11355 if (flags & NDR_OUT) {
11356 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11357 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11359 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11360 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11361 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11363 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11365 return NT_STATUS_OK;
11368 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
11370 ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
11371 ndr->depth++;
11372 if (flags & NDR_SET_VALUES) {
11373 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11375 if (flags & NDR_IN) {
11376 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
11377 ndr->depth++;
11378 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11379 ndr->depth++;
11380 if (r->in.server_name) {
11381 ndr_print_string(ndr, "server_name", r->in.server_name);
11383 ndr->depth--;
11384 ndr_print_string(ndr, "account_name", r->in.account_name);
11385 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11386 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11387 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
11388 ndr_print_netr_CryptPassword(ndr, "new_password", &r->in.new_password);
11389 ndr->depth--;
11391 if (flags & NDR_OUT) {
11392 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
11393 ndr->depth++;
11394 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11395 ndr->depth++;
11396 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11397 ndr->depth--;
11398 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11399 ndr->depth--;
11401 ndr->depth--;
11404 NTSTATUS ndr_push_netr_NETRSERVERPASSWORDGET(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERPASSWORDGET *r)
11406 if (flags & NDR_IN) {
11408 if (flags & NDR_OUT) {
11409 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11411 return NT_STATUS_OK;
11414 NTSTATUS ndr_pull_netr_NETRSERVERPASSWORDGET(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERPASSWORDGET *r)
11416 if (flags & NDR_IN) {
11418 if (flags & NDR_OUT) {
11419 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11421 return NT_STATUS_OK;
11424 _PUBLIC_ void ndr_print_netr_NETRSERVERPASSWORDGET(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERPASSWORDGET *r)
11426 ndr_print_struct(ndr, name, "netr_NETRSERVERPASSWORDGET");
11427 ndr->depth++;
11428 if (flags & NDR_SET_VALUES) {
11429 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11431 if (flags & NDR_IN) {
11432 ndr_print_struct(ndr, "in", "netr_NETRSERVERPASSWORDGET");
11433 ndr->depth++;
11434 ndr->depth--;
11436 if (flags & NDR_OUT) {
11437 ndr_print_struct(ndr, "out", "netr_NETRSERVERPASSWORDGET");
11438 ndr->depth++;
11439 ndr_print_WERROR(ndr, "result", r->out.result);
11440 ndr->depth--;
11442 ndr->depth--;
11445 NTSTATUS ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
11447 if (flags & NDR_IN) {
11449 if (flags & NDR_OUT) {
11450 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11452 return NT_STATUS_OK;
11455 NTSTATUS ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
11457 if (flags & NDR_IN) {
11459 if (flags & NDR_OUT) {
11460 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11462 return NT_STATUS_OK;
11465 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
11467 ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
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_NETRLOGONSENDTOSAM");
11474 ndr->depth++;
11475 ndr->depth--;
11477 if (flags & NDR_OUT) {
11478 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
11479 ndr->depth++;
11480 ndr_print_WERROR(ndr, "result", r->out.result);
11481 ndr->depth--;
11483 ndr->depth--;
11486 NTSTATUS ndr_push_netr_DSRADDRESSTOSITENAMESW(struct ndr_push *ndr, int flags, const struct netr_DSRADDRESSTOSITENAMESW *r)
11488 if (flags & NDR_IN) {
11490 if (flags & NDR_OUT) {
11491 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11493 return NT_STATUS_OK;
11496 NTSTATUS ndr_pull_netr_DSRADDRESSTOSITENAMESW(struct ndr_pull *ndr, int flags, struct netr_DSRADDRESSTOSITENAMESW *r)
11498 if (flags & NDR_IN) {
11500 if (flags & NDR_OUT) {
11501 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11503 return NT_STATUS_OK;
11506 _PUBLIC_ void ndr_print_netr_DSRADDRESSTOSITENAMESW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRADDRESSTOSITENAMESW *r)
11508 ndr_print_struct(ndr, name, "netr_DSRADDRESSTOSITENAMESW");
11509 ndr->depth++;
11510 if (flags & NDR_SET_VALUES) {
11511 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11513 if (flags & NDR_IN) {
11514 ndr_print_struct(ndr, "in", "netr_DSRADDRESSTOSITENAMESW");
11515 ndr->depth++;
11516 ndr->depth--;
11518 if (flags & NDR_OUT) {
11519 ndr_print_struct(ndr, "out", "netr_DSRADDRESSTOSITENAMESW");
11520 ndr->depth++;
11521 ndr_print_WERROR(ndr, "result", r->out.result);
11522 ndr->depth--;
11524 ndr->depth--;
11527 NTSTATUS ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
11529 if (flags & NDR_IN) {
11530 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11531 if (r->in.server_unc) {
11532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11535 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_unc, ndr_charset_length(r->in.server_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11537 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
11538 if (r->in.client_account) {
11539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
11540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
11542 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.client_account, ndr_charset_length(r->in.client_account, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.mask));
11545 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11546 if (r->in.domain_name) {
11547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11550 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11552 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11553 if (r->in.domain_guid) {
11554 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11556 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
11557 if (r->in.site_name) {
11558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11561 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.site_name, ndr_charset_length(r->in.site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11563 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
11565 if (flags & NDR_OUT) {
11566 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
11567 if (r->out.info) {
11568 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11570 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11572 return NT_STATUS_OK;
11575 NTSTATUS ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
11577 uint32_t _ptr_server_unc;
11578 uint32_t _ptr_client_account;
11579 uint32_t _ptr_domain_name;
11580 uint32_t _ptr_domain_guid;
11581 uint32_t _ptr_site_name;
11582 uint32_t _ptr_info;
11583 TALLOC_CTX *_mem_save_server_unc_0;
11584 TALLOC_CTX *_mem_save_client_account_0;
11585 TALLOC_CTX *_mem_save_domain_name_0;
11586 TALLOC_CTX *_mem_save_domain_guid_0;
11587 TALLOC_CTX *_mem_save_site_name_0;
11588 TALLOC_CTX *_mem_save_info_0;
11589 if (flags & NDR_IN) {
11590 ZERO_STRUCT(r->out);
11592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11593 if (_ptr_server_unc) {
11594 NDR_PULL_ALLOC(ndr, r->in.server_unc);
11595 } else {
11596 r->in.server_unc = NULL;
11598 if (r->in.server_unc) {
11599 _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11600 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11601 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11602 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11603 if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11604 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc));
11606 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11607 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_unc, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t), CH_UTF16));
11608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11610 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
11611 if (_ptr_client_account) {
11612 NDR_PULL_ALLOC(ndr, r->in.client_account);
11613 } else {
11614 r->in.client_account = NULL;
11616 if (r->in.client_account) {
11617 _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
11618 NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
11619 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
11620 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
11621 if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
11622 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.client_account), ndr_get_array_length(ndr, &r->in.client_account));
11624 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
11625 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.client_account, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t), CH_UTF16));
11626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
11628 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.mask));
11629 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11630 if (_ptr_domain_name) {
11631 NDR_PULL_ALLOC(ndr, r->in.domain_name);
11632 } else {
11633 r->in.domain_name = NULL;
11635 if (r->in.domain_name) {
11636 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11637 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11638 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11639 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11640 if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11641 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name));
11643 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11644 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t), CH_UTF16));
11645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11648 if (_ptr_domain_guid) {
11649 NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11650 } else {
11651 r->in.domain_guid = NULL;
11653 if (r->in.domain_guid) {
11654 _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11655 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11656 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11657 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
11660 if (_ptr_site_name) {
11661 NDR_PULL_ALLOC(ndr, r->in.site_name);
11662 } else {
11663 r->in.site_name = NULL;
11665 if (r->in.site_name) {
11666 _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11667 NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
11668 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
11669 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
11670 if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
11671 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.site_name), ndr_get_array_length(ndr, &r->in.site_name));
11673 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
11674 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.site_name, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t), CH_UTF16));
11675 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
11677 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
11679 if (flags & NDR_OUT) {
11680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11681 if (_ptr_info) {
11682 NDR_PULL_ALLOC(ndr, r->out.info);
11683 } else {
11684 r->out.info = NULL;
11686 if (r->out.info) {
11687 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11688 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
11689 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
11692 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11694 return NT_STATUS_OK;
11697 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
11699 ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
11700 ndr->depth++;
11701 if (flags & NDR_SET_VALUES) {
11702 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11704 if (flags & NDR_IN) {
11705 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
11706 ndr->depth++;
11707 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11708 ndr->depth++;
11709 if (r->in.server_unc) {
11710 ndr_print_string(ndr, "server_unc", r->in.server_unc);
11712 ndr->depth--;
11713 ndr_print_ptr(ndr, "client_account", r->in.client_account);
11714 ndr->depth++;
11715 if (r->in.client_account) {
11716 ndr_print_string(ndr, "client_account", r->in.client_account);
11718 ndr->depth--;
11719 ndr_print_uint32(ndr, "mask", r->in.mask);
11720 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11721 ndr->depth++;
11722 if (r->in.domain_name) {
11723 ndr_print_string(ndr, "domain_name", r->in.domain_name);
11725 ndr->depth--;
11726 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11727 ndr->depth++;
11728 if (r->in.domain_guid) {
11729 ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11731 ndr->depth--;
11732 ndr_print_ptr(ndr, "site_name", r->in.site_name);
11733 ndr->depth++;
11734 if (r->in.site_name) {
11735 ndr_print_string(ndr, "site_name", r->in.site_name);
11737 ndr->depth--;
11738 ndr_print_uint32(ndr, "flags", r->in.flags);
11739 ndr->depth--;
11741 if (flags & NDR_OUT) {
11742 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
11743 ndr->depth++;
11744 ndr_print_ptr(ndr, "info", r->out.info);
11745 ndr->depth++;
11746 if (r->out.info) {
11747 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info);
11749 ndr->depth--;
11750 ndr_print_WERROR(ndr, "result", r->out.result);
11751 ndr->depth--;
11753 ndr->depth--;
11756 NTSTATUS ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
11758 if (flags & NDR_IN) {
11760 if (flags & NDR_OUT) {
11761 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11763 return NT_STATUS_OK;
11766 NTSTATUS ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
11768 if (flags & NDR_IN) {
11770 if (flags & NDR_OUT) {
11771 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11773 return NT_STATUS_OK;
11776 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
11778 ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
11779 ndr->depth++;
11780 if (flags & NDR_SET_VALUES) {
11781 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11783 if (flags & NDR_IN) {
11784 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
11785 ndr->depth++;
11786 ndr->depth--;
11788 if (flags & NDR_OUT) {
11789 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
11790 ndr->depth++;
11791 ndr_print_WERROR(ndr, "result", r->out.result);
11792 ndr->depth--;
11794 ndr->depth--;
11797 NTSTATUS ndr_push_netr_NETRENUMERATETRUSTEDDOMAINSEX(struct ndr_push *ndr, int flags, const struct netr_NETRENUMERATETRUSTEDDOMAINSEX *r)
11799 if (flags & NDR_IN) {
11801 if (flags & NDR_OUT) {
11802 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11804 return NT_STATUS_OK;
11807 NTSTATUS ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINSEX(struct ndr_pull *ndr, int flags, struct netr_NETRENUMERATETRUSTEDDOMAINSEX *r)
11809 if (flags & NDR_IN) {
11811 if (flags & NDR_OUT) {
11812 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11814 return NT_STATUS_OK;
11817 _PUBLIC_ void ndr_print_netr_NETRENUMERATETRUSTEDDOMAINSEX(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRENUMERATETRUSTEDDOMAINSEX *r)
11819 ndr_print_struct(ndr, name, "netr_NETRENUMERATETRUSTEDDOMAINSEX");
11820 ndr->depth++;
11821 if (flags & NDR_SET_VALUES) {
11822 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11824 if (flags & NDR_IN) {
11825 ndr_print_struct(ndr, "in", "netr_NETRENUMERATETRUSTEDDOMAINSEX");
11826 ndr->depth++;
11827 ndr->depth--;
11829 if (flags & NDR_OUT) {
11830 ndr_print_struct(ndr, "out", "netr_NETRENUMERATETRUSTEDDOMAINSEX");
11831 ndr->depth++;
11832 ndr_print_WERROR(ndr, "result", r->out.result);
11833 ndr->depth--;
11835 ndr->depth--;
11838 NTSTATUS ndr_push_netr_DSRADDRESSTOSITENAMESEXW(struct ndr_push *ndr, int flags, const struct netr_DSRADDRESSTOSITENAMESEXW *r)
11840 if (flags & NDR_IN) {
11842 if (flags & NDR_OUT) {
11843 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11845 return NT_STATUS_OK;
11848 NTSTATUS ndr_pull_netr_DSRADDRESSTOSITENAMESEXW(struct ndr_pull *ndr, int flags, struct netr_DSRADDRESSTOSITENAMESEXW *r)
11850 if (flags & NDR_IN) {
11852 if (flags & NDR_OUT) {
11853 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11855 return NT_STATUS_OK;
11858 _PUBLIC_ void ndr_print_netr_DSRADDRESSTOSITENAMESEXW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRADDRESSTOSITENAMESEXW *r)
11860 ndr_print_struct(ndr, name, "netr_DSRADDRESSTOSITENAMESEXW");
11861 ndr->depth++;
11862 if (flags & NDR_SET_VALUES) {
11863 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11865 if (flags & NDR_IN) {
11866 ndr_print_struct(ndr, "in", "netr_DSRADDRESSTOSITENAMESEXW");
11867 ndr->depth++;
11868 ndr->depth--;
11870 if (flags & NDR_OUT) {
11871 ndr_print_struct(ndr, "out", "netr_DSRADDRESSTOSITENAMESEXW");
11872 ndr->depth++;
11873 ndr_print_WERROR(ndr, "result", r->out.result);
11874 ndr->depth--;
11876 ndr->depth--;
11879 NTSTATUS ndr_push_netr_DSRGETDCSITECOVERAGEW(struct ndr_push *ndr, int flags, const struct netr_DSRGETDCSITECOVERAGEW *r)
11881 if (flags & NDR_IN) {
11883 if (flags & NDR_OUT) {
11884 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11886 return NT_STATUS_OK;
11889 NTSTATUS ndr_pull_netr_DSRGETDCSITECOVERAGEW(struct ndr_pull *ndr, int flags, struct netr_DSRGETDCSITECOVERAGEW *r)
11891 if (flags & NDR_IN) {
11893 if (flags & NDR_OUT) {
11894 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11896 return NT_STATUS_OK;
11899 _PUBLIC_ void ndr_print_netr_DSRGETDCSITECOVERAGEW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRGETDCSITECOVERAGEW *r)
11901 ndr_print_struct(ndr, name, "netr_DSRGETDCSITECOVERAGEW");
11902 ndr->depth++;
11903 if (flags & NDR_SET_VALUES) {
11904 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11906 if (flags & NDR_IN) {
11907 ndr_print_struct(ndr, "in", "netr_DSRGETDCSITECOVERAGEW");
11908 ndr->depth++;
11909 ndr->depth--;
11911 if (flags & NDR_OUT) {
11912 ndr_print_struct(ndr, "out", "netr_DSRGETDCSITECOVERAGEW");
11913 ndr->depth++;
11914 ndr_print_WERROR(ndr, "result", r->out.result);
11915 ndr->depth--;
11917 ndr->depth--;
11920 NTSTATUS ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
11922 if (flags & NDR_IN) {
11923 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11924 if (r->in.server_name) {
11925 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11928 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11930 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11931 if (r->in.computer_name) {
11932 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11935 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11937 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
11938 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
11939 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
11940 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
11941 if (r->in.flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11942 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
11944 if (flags & NDR_OUT) {
11945 if (r->out.validation == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11946 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
11947 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
11948 if (r->out.authoritative == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11949 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
11950 if (r->out.flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
11951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
11952 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11954 return NT_STATUS_OK;
11957 NTSTATUS ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
11959 uint32_t _ptr_server_name;
11960 uint32_t _ptr_computer_name;
11961 TALLOC_CTX *_mem_save_server_name_0;
11962 TALLOC_CTX *_mem_save_computer_name_0;
11963 TALLOC_CTX *_mem_save_validation_0;
11964 TALLOC_CTX *_mem_save_authoritative_0;
11965 TALLOC_CTX *_mem_save_flags_0;
11966 if (flags & NDR_IN) {
11967 ZERO_STRUCT(r->out);
11969 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11970 if (_ptr_server_name) {
11971 NDR_PULL_ALLOC(ndr, r->in.server_name);
11972 } else {
11973 r->in.server_name = NULL;
11975 if (r->in.server_name) {
11976 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11977 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11978 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11979 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11980 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11981 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
11983 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11984 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
11985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11987 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
11988 if (_ptr_computer_name) {
11989 NDR_PULL_ALLOC(ndr, r->in.computer_name);
11990 } else {
11991 r->in.computer_name = NULL;
11993 if (r->in.computer_name) {
11994 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11995 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
11996 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11997 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11998 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11999 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
12001 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12002 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
12003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12005 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
12006 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
12007 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
12008 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
12009 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12010 NDR_PULL_ALLOC(ndr, r->in.flags);
12012 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12013 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
12014 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
12015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
12016 NDR_PULL_ALLOC(ndr, r->out.validation);
12017 ZERO_STRUCTP(r->out.validation);
12018 NDR_PULL_ALLOC(ndr, r->out.authoritative);
12019 ZERO_STRUCTP(r->out.authoritative);
12020 NDR_PULL_ALLOC(ndr, r->out.flags);
12021 *r->out.flags = *r->in.flags;
12023 if (flags & NDR_OUT) {
12024 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12025 NDR_PULL_ALLOC(ndr, r->out.validation);
12027 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
12028 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
12029 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
12030 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
12031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
12032 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12033 NDR_PULL_ALLOC(ndr, r->out.authoritative);
12035 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
12036 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
12037 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
12038 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
12039 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12040 NDR_PULL_ALLOC(ndr, r->out.flags);
12042 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12043 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
12044 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
12045 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
12046 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12048 return NT_STATUS_OK;
12051 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
12053 ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
12054 ndr->depth++;
12055 if (flags & NDR_SET_VALUES) {
12056 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12058 if (flags & NDR_IN) {
12059 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
12060 ndr->depth++;
12061 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12062 ndr->depth++;
12063 if (r->in.server_name) {
12064 ndr_print_string(ndr, "server_name", r->in.server_name);
12066 ndr->depth--;
12067 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12068 ndr->depth++;
12069 if (r->in.computer_name) {
12070 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12072 ndr->depth--;
12073 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
12074 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
12075 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
12076 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
12077 ndr_print_ptr(ndr, "flags", r->in.flags);
12078 ndr->depth++;
12079 ndr_print_uint32(ndr, "flags", *r->in.flags);
12080 ndr->depth--;
12081 ndr->depth--;
12083 if (flags & NDR_OUT) {
12084 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
12085 ndr->depth++;
12086 ndr_print_ptr(ndr, "validation", r->out.validation);
12087 ndr->depth++;
12088 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
12089 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
12090 ndr->depth--;
12091 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
12092 ndr->depth++;
12093 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
12094 ndr->depth--;
12095 ndr_print_ptr(ndr, "flags", r->out.flags);
12096 ndr->depth++;
12097 ndr_print_uint32(ndr, "flags", *r->out.flags);
12098 ndr->depth--;
12099 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12100 ndr->depth--;
12102 ndr->depth--;
12105 NTSTATUS ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
12107 uint32_t cntr_trusts_1;
12108 if (flags & NDR_IN) {
12109 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12110 if (r->in.server_name) {
12111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12114 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12116 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
12118 if (flags & NDR_OUT) {
12119 if (r->out.count == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
12120 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
12121 if (r->out.trusts == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
12122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
12123 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->out.count; cntr_trusts_1++) {
12124 if (r->out.trusts[cntr_trusts_1] == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
12125 NDR_CHECK(ndr_push_ref_ptr(ndr));
12127 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->out.count; cntr_trusts_1++) {
12128 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts[cntr_trusts_1]));
12130 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12132 return NT_STATUS_OK;
12135 NTSTATUS ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
12137 uint32_t _ptr_server_name;
12138 uint32_t _ptr_trusts;
12139 uint32_t cntr_trusts_1;
12140 TALLOC_CTX *_mem_save_server_name_0;
12141 TALLOC_CTX *_mem_save_count_0;
12142 TALLOC_CTX *_mem_save_trusts_1;
12143 TALLOC_CTX *_mem_save_trusts_2;
12144 if (flags & NDR_IN) {
12145 ZERO_STRUCT(r->out);
12147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12148 if (_ptr_server_name) {
12149 NDR_PULL_ALLOC(ndr, r->in.server_name);
12150 } else {
12151 r->in.server_name = NULL;
12153 if (r->in.server_name) {
12154 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12155 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12156 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12157 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12158 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12159 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
12161 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12162 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
12163 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12165 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
12166 NDR_PULL_ALLOC(ndr, r->out.count);
12167 ZERO_STRUCTP(r->out.count);
12168 NDR_PULL_ALLOC_N(ndr, r->out.trusts, count);
12169 memset(r->out.trusts, 0, count * sizeof(*r->out.trusts));
12171 if (flags & NDR_OUT) {
12172 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12173 NDR_PULL_ALLOC(ndr, r->out.count);
12175 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
12176 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
12177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
12178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
12179 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.trusts));
12180 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12181 NDR_PULL_ALLOC_N(ndr, r->out.trusts, ndr_get_array_size(ndr, &r->out.trusts));
12183 _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
12184 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, 0);
12185 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->out.count; cntr_trusts_1++) {
12186 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_trusts));
12187 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12188 NDR_PULL_ALLOC(ndr, r->out.trusts[cntr_trusts_1]);
12191 for (cntr_trusts_1 = 0; cntr_trusts_1 < r->out.count; cntr_trusts_1++) {
12192 _mem_save_trusts_2 = NDR_PULL_GET_MEM_CTX(ndr);
12193 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts[cntr_trusts_1], LIBNDR_FLAG_REF_ALLOC);
12194 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts[cntr_trusts_1]));
12195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_2, LIBNDR_FLAG_REF_ALLOC);
12197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
12198 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12199 if (r->out.trusts) {
12200 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.trusts, r->out.count));
12203 return NT_STATUS_OK;
12206 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
12208 uint32_t cntr_trusts_1;
12209 ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
12210 ndr->depth++;
12211 if (flags & NDR_SET_VALUES) {
12212 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12214 if (flags & NDR_IN) {
12215 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
12216 ndr->depth++;
12217 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12218 ndr->depth++;
12219 if (r->in.server_name) {
12220 ndr_print_string(ndr, "server_name", r->in.server_name);
12222 ndr->depth--;
12223 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
12224 ndr->depth--;
12226 if (flags & NDR_OUT) {
12227 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
12228 ndr->depth++;
12229 ndr_print_ptr(ndr, "count", r->out.count);
12230 ndr->depth++;
12231 ndr_print_uint32(ndr, "count", *r->out.count);
12232 ndr->depth--;
12233 ndr_print_ptr(ndr, "trusts", r->out.trusts);
12234 ndr->depth++;
12235 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", r->out.count);
12236 ndr->depth++;
12237 for (cntr_trusts_1=0;cntr_trusts_1<r->out.count;cntr_trusts_1++) {
12238 char *idx_1=NULL;
12239 asprintf(&idx_1, "[%d]", cntr_trusts_1);
12240 if (idx_1) {
12241 ndr_print_ptr(ndr, "trusts", r->out.trusts[cntr_trusts_1]);
12242 ndr->depth++;
12243 ndr_print_netr_DomainTrust(ndr, "trusts", r->out.trusts[cntr_trusts_1]);
12244 ndr->depth--;
12245 free(idx_1);
12248 ndr->depth--;
12249 ndr->depth--;
12250 ndr_print_WERROR(ndr, "result", r->out.result);
12251 ndr->depth--;
12253 ndr->depth--;
12256 NTSTATUS ndr_push_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_push *ndr, int flags, const struct netr_DSRDEREGISTERDNSHOSTRECORDS *r)
12258 if (flags & NDR_IN) {
12260 if (flags & NDR_OUT) {
12261 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12263 return NT_STATUS_OK;
12266 NTSTATUS ndr_pull_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_pull *ndr, int flags, struct netr_DSRDEREGISTERDNSHOSTRECORDS *r)
12268 if (flags & NDR_IN) {
12270 if (flags & NDR_OUT) {
12271 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12273 return NT_STATUS_OK;
12276 _PUBLIC_ void ndr_print_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRDEREGISTERDNSHOSTRECORDS *r)
12278 ndr_print_struct(ndr, name, "netr_DSRDEREGISTERDNSHOSTRECORDS");
12279 ndr->depth++;
12280 if (flags & NDR_SET_VALUES) {
12281 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12283 if (flags & NDR_IN) {
12284 ndr_print_struct(ndr, "in", "netr_DSRDEREGISTERDNSHOSTRECORDS");
12285 ndr->depth++;
12286 ndr->depth--;
12288 if (flags & NDR_OUT) {
12289 ndr_print_struct(ndr, "out", "netr_DSRDEREGISTERDNSHOSTRECORDS");
12290 ndr->depth++;
12291 ndr_print_WERROR(ndr, "result", r->out.result);
12292 ndr->depth--;
12294 ndr->depth--;
12297 NTSTATUS ndr_push_netr_NETRSERVERTRUSTPASSWORDSGET(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERTRUSTPASSWORDSGET *r)
12299 if (flags & NDR_IN) {
12301 if (flags & NDR_OUT) {
12302 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12304 return NT_STATUS_OK;
12307 NTSTATUS ndr_pull_netr_NETRSERVERTRUSTPASSWORDSGET(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERTRUSTPASSWORDSGET *r)
12309 if (flags & NDR_IN) {
12311 if (flags & NDR_OUT) {
12312 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12314 return NT_STATUS_OK;
12317 _PUBLIC_ void ndr_print_netr_NETRSERVERTRUSTPASSWORDSGET(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERTRUSTPASSWORDSGET *r)
12319 ndr_print_struct(ndr, name, "netr_NETRSERVERTRUSTPASSWORDSGET");
12320 ndr->depth++;
12321 if (flags & NDR_SET_VALUES) {
12322 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12324 if (flags & NDR_IN) {
12325 ndr_print_struct(ndr, "in", "netr_NETRSERVERTRUSTPASSWORDSGET");
12326 ndr->depth++;
12327 ndr->depth--;
12329 if (flags & NDR_OUT) {
12330 ndr_print_struct(ndr, "out", "netr_NETRSERVERTRUSTPASSWORDSGET");
12331 ndr->depth++;
12332 ndr_print_WERROR(ndr, "result", r->out.result);
12333 ndr->depth--;
12335 ndr->depth--;
12338 NTSTATUS ndr_push_netr_DSRGETFORESTTRUSTINFORMATION(struct ndr_push *ndr, int flags, const struct netr_DSRGETFORESTTRUSTINFORMATION *r)
12340 if (flags & NDR_IN) {
12342 if (flags & NDR_OUT) {
12343 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12345 return NT_STATUS_OK;
12348 NTSTATUS ndr_pull_netr_DSRGETFORESTTRUSTINFORMATION(struct ndr_pull *ndr, int flags, struct netr_DSRGETFORESTTRUSTINFORMATION *r)
12350 if (flags & NDR_IN) {
12352 if (flags & NDR_OUT) {
12353 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12355 return NT_STATUS_OK;
12358 _PUBLIC_ void ndr_print_netr_DSRGETFORESTTRUSTINFORMATION(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRGETFORESTTRUSTINFORMATION *r)
12360 ndr_print_struct(ndr, name, "netr_DSRGETFORESTTRUSTINFORMATION");
12361 ndr->depth++;
12362 if (flags & NDR_SET_VALUES) {
12363 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12365 if (flags & NDR_IN) {
12366 ndr_print_struct(ndr, "in", "netr_DSRGETFORESTTRUSTINFORMATION");
12367 ndr->depth++;
12368 ndr->depth--;
12370 if (flags & NDR_OUT) {
12371 ndr_print_struct(ndr, "out", "netr_DSRGETFORESTTRUSTINFORMATION");
12372 ndr->depth++;
12373 ndr_print_WERROR(ndr, "result", r->out.result);
12374 ndr->depth--;
12376 ndr->depth--;
12379 NTSTATUS ndr_push_netr_NETRGETFORESTTRUSTINFORMATION(struct ndr_push *ndr, int flags, const struct netr_NETRGETFORESTTRUSTINFORMATION *r)
12381 if (flags & NDR_IN) {
12383 if (flags & NDR_OUT) {
12384 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12386 return NT_STATUS_OK;
12389 NTSTATUS ndr_pull_netr_NETRGETFORESTTRUSTINFORMATION(struct ndr_pull *ndr, int flags, struct netr_NETRGETFORESTTRUSTINFORMATION *r)
12391 if (flags & NDR_IN) {
12393 if (flags & NDR_OUT) {
12394 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12396 return NT_STATUS_OK;
12399 _PUBLIC_ void ndr_print_netr_NETRGETFORESTTRUSTINFORMATION(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRGETFORESTTRUSTINFORMATION *r)
12401 ndr_print_struct(ndr, name, "netr_NETRGETFORESTTRUSTINFORMATION");
12402 ndr->depth++;
12403 if (flags & NDR_SET_VALUES) {
12404 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12406 if (flags & NDR_IN) {
12407 ndr_print_struct(ndr, "in", "netr_NETRGETFORESTTRUSTINFORMATION");
12408 ndr->depth++;
12409 ndr->depth--;
12411 if (flags & NDR_OUT) {
12412 ndr_print_struct(ndr, "out", "netr_NETRGETFORESTTRUSTINFORMATION");
12413 ndr->depth++;
12414 ndr_print_WERROR(ndr, "result", r->out.result);
12415 ndr->depth--;
12417 ndr->depth--;
12420 NTSTATUS ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
12422 if (flags & NDR_IN) {
12423 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12424 if (r->in.server_name) {
12425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12428 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12430 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12431 if (r->in.computer_name) {
12432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12435 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12437 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
12438 if (r->in.credential) {
12439 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12441 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
12442 if (r->in.return_authenticator) {
12443 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12445 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
12446 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
12447 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
12448 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
12449 if (r->in.flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
12450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
12452 if (flags & NDR_OUT) {
12453 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
12454 if (r->out.return_authenticator) {
12455 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12457 if (r->out.validation == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
12458 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
12459 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
12460 if (r->out.authoritative == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
12461 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
12462 if (r->out.flags == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;
12463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
12464 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12466 return NT_STATUS_OK;
12469 NTSTATUS ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
12471 uint32_t _ptr_server_name;
12472 uint32_t _ptr_computer_name;
12473 uint32_t _ptr_credential;
12474 uint32_t _ptr_return_authenticator;
12475 TALLOC_CTX *_mem_save_server_name_0;
12476 TALLOC_CTX *_mem_save_computer_name_0;
12477 TALLOC_CTX *_mem_save_credential_0;
12478 TALLOC_CTX *_mem_save_return_authenticator_0;
12479 TALLOC_CTX *_mem_save_validation_0;
12480 TALLOC_CTX *_mem_save_authoritative_0;
12481 TALLOC_CTX *_mem_save_flags_0;
12482 if (flags & NDR_IN) {
12483 ZERO_STRUCT(r->out);
12485 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12486 if (_ptr_server_name) {
12487 NDR_PULL_ALLOC(ndr, r->in.server_name);
12488 } else {
12489 r->in.server_name = NULL;
12491 if (r->in.server_name) {
12492 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12493 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12494 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12495 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12496 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12497 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
12499 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12500 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
12501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12503 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12504 if (_ptr_computer_name) {
12505 NDR_PULL_ALLOC(ndr, r->in.computer_name);
12506 } else {
12507 r->in.computer_name = NULL;
12509 if (r->in.computer_name) {
12510 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12511 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12512 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12513 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12514 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12515 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
12517 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12518 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
12519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12521 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
12522 if (_ptr_credential) {
12523 NDR_PULL_ALLOC(ndr, r->in.credential);
12524 } else {
12525 r->in.credential = NULL;
12527 if (r->in.credential) {
12528 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12529 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
12530 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12531 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
12533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
12534 if (_ptr_return_authenticator) {
12535 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12536 } else {
12537 r->in.return_authenticator = NULL;
12539 if (r->in.return_authenticator) {
12540 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12541 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
12542 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
12545 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
12546 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
12547 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
12548 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
12549 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12550 NDR_PULL_ALLOC(ndr, r->in.flags);
12552 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12553 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
12554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
12555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
12556 NDR_PULL_ALLOC(ndr, r->out.validation);
12557 ZERO_STRUCTP(r->out.validation);
12558 NDR_PULL_ALLOC(ndr, r->out.authoritative);
12559 ZERO_STRUCTP(r->out.authoritative);
12560 NDR_PULL_ALLOC(ndr, r->out.flags);
12561 *r->out.flags = *r->in.flags;
12563 if (flags & NDR_OUT) {
12564 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
12565 if (_ptr_return_authenticator) {
12566 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12567 } else {
12568 r->out.return_authenticator = NULL;
12570 if (r->out.return_authenticator) {
12571 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12572 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
12573 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
12576 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12577 NDR_PULL_ALLOC(ndr, r->out.validation);
12579 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
12580 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
12581 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
12582 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
12583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
12584 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12585 NDR_PULL_ALLOC(ndr, r->out.authoritative);
12587 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
12588 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
12589 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
12590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
12591 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12592 NDR_PULL_ALLOC(ndr, r->out.flags);
12594 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12595 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
12596 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
12597 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
12598 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12600 return NT_STATUS_OK;
12603 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
12605 ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
12606 ndr->depth++;
12607 if (flags & NDR_SET_VALUES) {
12608 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12610 if (flags & NDR_IN) {
12611 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
12612 ndr->depth++;
12613 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12614 ndr->depth++;
12615 if (r->in.server_name) {
12616 ndr_print_string(ndr, "server_name", r->in.server_name);
12618 ndr->depth--;
12619 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12620 ndr->depth++;
12621 if (r->in.computer_name) {
12622 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12624 ndr->depth--;
12625 ndr_print_ptr(ndr, "credential", r->in.credential);
12626 ndr->depth++;
12627 if (r->in.credential) {
12628 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12630 ndr->depth--;
12631 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12632 ndr->depth++;
12633 if (r->in.return_authenticator) {
12634 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12636 ndr->depth--;
12637 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
12638 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
12639 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
12640 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
12641 ndr_print_ptr(ndr, "flags", r->in.flags);
12642 ndr->depth++;
12643 ndr_print_uint32(ndr, "flags", *r->in.flags);
12644 ndr->depth--;
12645 ndr->depth--;
12647 if (flags & NDR_OUT) {
12648 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
12649 ndr->depth++;
12650 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12651 ndr->depth++;
12652 if (r->out.return_authenticator) {
12653 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12655 ndr->depth--;
12656 ndr_print_ptr(ndr, "validation", r->out.validation);
12657 ndr->depth++;
12658 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
12659 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
12660 ndr->depth--;
12661 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
12662 ndr->depth++;
12663 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
12664 ndr->depth--;
12665 ndr_print_ptr(ndr, "flags", r->out.flags);
12666 ndr->depth++;
12667 ndr_print_uint32(ndr, "flags", *r->out.flags);
12668 ndr->depth--;
12669 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12670 ndr->depth--;
12672 ndr->depth--;
12675 NTSTATUS ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
12677 if (flags & NDR_IN) {
12679 if (flags & NDR_OUT) {
12680 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12682 return NT_STATUS_OK;
12685 NTSTATUS ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERGETTRUSTINFO *r)
12687 if (flags & NDR_IN) {
12689 if (flags & NDR_OUT) {
12690 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12692 return NT_STATUS_OK;
12695 _PUBLIC_ void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
12697 ndr_print_struct(ndr, name, "netr_NETRSERVERGETTRUSTINFO");
12698 ndr->depth++;
12699 if (flags & NDR_SET_VALUES) {
12700 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12702 if (flags & NDR_IN) {
12703 ndr_print_struct(ndr, "in", "netr_NETRSERVERGETTRUSTINFO");
12704 ndr->depth++;
12705 ndr->depth--;
12707 if (flags & NDR_OUT) {
12708 ndr_print_struct(ndr, "out", "netr_NETRSERVERGETTRUSTINFO");
12709 ndr->depth++;
12710 ndr_print_WERROR(ndr, "result", r->out.result);
12711 ndr->depth--;
12713 ndr->depth--;
12716 const struct dcerpc_interface_call netlogon_calls[] = {
12718 "netr_LogonUasLogon",
12719 sizeof(struct netr_LogonUasLogon),
12720 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
12721 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
12722 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
12723 False,
12726 "netr_LogonUasLogoff",
12727 sizeof(struct netr_LogonUasLogoff),
12728 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
12729 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
12730 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
12731 False,
12734 "netr_LogonSamLogon",
12735 sizeof(struct netr_LogonSamLogon),
12736 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
12737 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
12738 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
12739 False,
12742 "netr_LogonSamLogoff",
12743 sizeof(struct netr_LogonSamLogoff),
12744 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
12745 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
12746 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
12747 False,
12750 "netr_ServerReqChallenge",
12751 sizeof(struct netr_ServerReqChallenge),
12752 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
12753 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
12754 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
12755 False,
12758 "netr_ServerAuthenticate",
12759 sizeof(struct netr_ServerAuthenticate),
12760 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
12761 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
12762 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
12763 False,
12766 "netr_ServerPasswordSet",
12767 sizeof(struct netr_ServerPasswordSet),
12768 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
12769 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
12770 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
12771 False,
12774 "netr_DatabaseDeltas",
12775 sizeof(struct netr_DatabaseDeltas),
12776 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
12777 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
12778 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
12779 False,
12782 "netr_DatabaseSync",
12783 sizeof(struct netr_DatabaseSync),
12784 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
12785 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
12786 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
12787 False,
12790 "netr_AccountDeltas",
12791 sizeof(struct netr_AccountDeltas),
12792 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
12793 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
12794 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
12795 False,
12798 "netr_AccountSync",
12799 sizeof(struct netr_AccountSync),
12800 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
12801 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
12802 (ndr_print_function_t) ndr_print_netr_AccountSync,
12803 False,
12806 "netr_GetDcName",
12807 sizeof(struct netr_GetDcName),
12808 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
12809 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
12810 (ndr_print_function_t) ndr_print_netr_GetDcName,
12811 False,
12814 "netr_LogonControl",
12815 sizeof(struct netr_LogonControl),
12816 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
12817 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
12818 (ndr_print_function_t) ndr_print_netr_LogonControl,
12819 False,
12822 "netr_GetAnyDCName",
12823 sizeof(struct netr_GetAnyDCName),
12824 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
12825 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
12826 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
12827 False,
12830 "netr_LogonControl2",
12831 sizeof(struct netr_LogonControl2),
12832 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
12833 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
12834 (ndr_print_function_t) ndr_print_netr_LogonControl2,
12835 False,
12838 "netr_ServerAuthenticate2",
12839 sizeof(struct netr_ServerAuthenticate2),
12840 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
12841 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
12842 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
12843 False,
12846 "netr_DatabaseSync2",
12847 sizeof(struct netr_DatabaseSync2),
12848 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
12849 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
12850 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
12851 False,
12854 "netr_DatabaseRedo",
12855 sizeof(struct netr_DatabaseRedo),
12856 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
12857 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
12858 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
12859 False,
12862 "netr_LogonControl2Ex",
12863 sizeof(struct netr_LogonControl2Ex),
12864 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
12865 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
12866 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
12867 False,
12870 "netr_NETRENUMERATETRUSTEDDOMAINS",
12871 sizeof(struct netr_NETRENUMERATETRUSTEDDOMAINS),
12872 (ndr_push_flags_fn_t) ndr_push_netr_NETRENUMERATETRUSTEDDOMAINS,
12873 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINS,
12874 (ndr_print_function_t) ndr_print_netr_NETRENUMERATETRUSTEDDOMAINS,
12875 False,
12878 "netr_DsRGetDCName",
12879 sizeof(struct netr_DsRGetDCName),
12880 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
12881 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
12882 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
12883 False,
12886 "netr_NETRLOGONDUMMYROUTINE1",
12887 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
12888 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
12889 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
12890 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
12891 False,
12894 "netr_NETRLOGONSETSERVICEBITS",
12895 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
12896 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
12897 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
12898 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
12899 False,
12902 "netr_NETRLOGONGETTRUSTRID",
12903 sizeof(struct netr_NETRLOGONGETTRUSTRID),
12904 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTRUSTRID,
12905 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTRUSTRID,
12906 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTRUSTRID,
12907 False,
12910 "netr_NETRLOGONCOMPUTESERVERDIGEST",
12911 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
12912 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
12913 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
12914 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
12915 False,
12918 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
12919 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
12920 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
12921 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
12922 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
12923 False,
12926 "netr_ServerAuthenticate3",
12927 sizeof(struct netr_ServerAuthenticate3),
12928 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
12929 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
12930 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
12931 False,
12934 "netr_DsRGetDCNameEx",
12935 sizeof(struct netr_DsRGetDCNameEx),
12936 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
12937 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
12938 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
12939 False,
12942 "netr_DsRGetSiteName",
12943 sizeof(struct netr_DsRGetSiteName),
12944 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
12945 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
12946 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
12947 False,
12950 "netr_LogonGetDomainInfo",
12951 sizeof(struct netr_LogonGetDomainInfo),
12952 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
12953 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
12954 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
12955 False,
12958 "netr_ServerPasswordSet2",
12959 sizeof(struct netr_ServerPasswordSet2),
12960 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
12961 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
12962 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
12963 False,
12966 "netr_NETRSERVERPASSWORDGET",
12967 sizeof(struct netr_NETRSERVERPASSWORDGET),
12968 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERPASSWORDGET,
12969 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERPASSWORDGET,
12970 (ndr_print_function_t) ndr_print_netr_NETRSERVERPASSWORDGET,
12971 False,
12974 "netr_NETRLOGONSENDTOSAM",
12975 sizeof(struct netr_NETRLOGONSENDTOSAM),
12976 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
12977 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
12978 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
12979 False,
12982 "netr_DSRADDRESSTOSITENAMESW",
12983 sizeof(struct netr_DSRADDRESSTOSITENAMESW),
12984 (ndr_push_flags_fn_t) ndr_push_netr_DSRADDRESSTOSITENAMESW,
12985 (ndr_pull_flags_fn_t) ndr_pull_netr_DSRADDRESSTOSITENAMESW,
12986 (ndr_print_function_t) ndr_print_netr_DSRADDRESSTOSITENAMESW,
12987 False,
12990 "netr_DsRGetDCNameEx2",
12991 sizeof(struct netr_DsRGetDCNameEx2),
12992 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
12993 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
12994 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
12995 False,
12998 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
12999 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
13000 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
13001 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
13002 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
13003 False,
13006 "netr_NETRENUMERATETRUSTEDDOMAINSEX",
13007 sizeof(struct netr_NETRENUMERATETRUSTEDDOMAINSEX),
13008 (ndr_push_flags_fn_t) ndr_push_netr_NETRENUMERATETRUSTEDDOMAINSEX,
13009 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINSEX,
13010 (ndr_print_function_t) ndr_print_netr_NETRENUMERATETRUSTEDDOMAINSEX,
13011 False,
13014 "netr_DSRADDRESSTOSITENAMESEXW",
13015 sizeof(struct netr_DSRADDRESSTOSITENAMESEXW),
13016 (ndr_push_flags_fn_t) ndr_push_netr_DSRADDRESSTOSITENAMESEXW,
13017 (ndr_pull_flags_fn_t) ndr_pull_netr_DSRADDRESSTOSITENAMESEXW,
13018 (ndr_print_function_t) ndr_print_netr_DSRADDRESSTOSITENAMESEXW,
13019 False,
13022 "netr_DSRGETDCSITECOVERAGEW",
13023 sizeof(struct netr_DSRGETDCSITECOVERAGEW),
13024 (ndr_push_flags_fn_t) ndr_push_netr_DSRGETDCSITECOVERAGEW,
13025 (ndr_pull_flags_fn_t) ndr_pull_netr_DSRGETDCSITECOVERAGEW,
13026 (ndr_print_function_t) ndr_print_netr_DSRGETDCSITECOVERAGEW,
13027 False,
13030 "netr_LogonSamLogonEx",
13031 sizeof(struct netr_LogonSamLogonEx),
13032 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
13033 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
13034 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
13035 False,
13038 "netr_DsrEnumerateDomainTrusts",
13039 sizeof(struct netr_DsrEnumerateDomainTrusts),
13040 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
13041 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
13042 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
13043 False,
13046 "netr_DSRDEREGISTERDNSHOSTRECORDS",
13047 sizeof(struct netr_DSRDEREGISTERDNSHOSTRECORDS),
13048 (ndr_push_flags_fn_t) ndr_push_netr_DSRDEREGISTERDNSHOSTRECORDS,
13049 (ndr_pull_flags_fn_t) ndr_pull_netr_DSRDEREGISTERDNSHOSTRECORDS,
13050 (ndr_print_function_t) ndr_print_netr_DSRDEREGISTERDNSHOSTRECORDS,
13051 False,
13054 "netr_NETRSERVERTRUSTPASSWORDSGET",
13055 sizeof(struct netr_NETRSERVERTRUSTPASSWORDSGET),
13056 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERTRUSTPASSWORDSGET,
13057 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERTRUSTPASSWORDSGET,
13058 (ndr_print_function_t) ndr_print_netr_NETRSERVERTRUSTPASSWORDSGET,
13059 False,
13062 "netr_DSRGETFORESTTRUSTINFORMATION",
13063 sizeof(struct netr_DSRGETFORESTTRUSTINFORMATION),
13064 (ndr_push_flags_fn_t) ndr_push_netr_DSRGETFORESTTRUSTINFORMATION,
13065 (ndr_pull_flags_fn_t) ndr_pull_netr_DSRGETFORESTTRUSTINFORMATION,
13066 (ndr_print_function_t) ndr_print_netr_DSRGETFORESTTRUSTINFORMATION,
13067 False,
13070 "netr_NETRGETFORESTTRUSTINFORMATION",
13071 sizeof(struct netr_NETRGETFORESTTRUSTINFORMATION),
13072 (ndr_push_flags_fn_t) ndr_push_netr_NETRGETFORESTTRUSTINFORMATION,
13073 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRGETFORESTTRUSTINFORMATION,
13074 (ndr_print_function_t) ndr_print_netr_NETRGETFORESTTRUSTINFORMATION,
13075 False,
13078 "netr_LogonSamLogonWithFlags",
13079 sizeof(struct netr_LogonSamLogonWithFlags),
13080 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
13081 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
13082 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
13083 False,
13086 "netr_NETRSERVERGETTRUSTINFO",
13087 sizeof(struct netr_NETRSERVERGETTRUSTINFO),
13088 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERGETTRUSTINFO,
13089 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERGETTRUSTINFO,
13090 (ndr_print_function_t) ndr_print_netr_NETRSERVERGETTRUSTINFO,
13091 False,
13093 { NULL, 0, NULL, NULL, NULL, False }
13096 const char * const netlogon_endpoint_strings[] = {
13097 "ncacn_np:[\\pipe\\netlogon]",
13098 "ncacn_ip_tcp:",
13099 "ncalrpc:",
13102 const struct dcerpc_endpoint_list netlogon_endpoints = {
13103 .count = 3,
13104 .names = netlogon_endpoint_strings
13107 const char * const netlogon_authservice_strings[] = {
13108 "host",
13111 const struct dcerpc_authservice_list netlogon_authservices = {
13112 .count = 3,
13113 .names = netlogon_authservice_strings
13117 const struct dcerpc_interface_table dcerpc_table_netlogon = {
13118 .name = "netlogon",
13119 .syntax_id = {
13120 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
13121 DCERPC_NETLOGON_VERSION
13123 .helpstring = DCERPC_NETLOGON_HELPSTRING,
13124 .num_calls = 47,
13125 .calls = netlogon_calls,
13126 .endpoints = &netlogon_endpoints,
13127 .authservices = &netlogon_authservices