idl: recompile our IDL
[Samba/aatanasov.git] / librpc / gen_ndr / ndr_netlogon.c
blob5e7a3d8a362f349278ffd96bb00388371b571a48
1 /* parser auto-generated by pidl */
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_netlogon.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_lsa.h"
8 #include "librpc/gen_ndr/ndr_samr.h"
9 #include "librpc/gen_ndr/ndr_security.h"
10 #include "librpc/gen_ndr/ndr_nbt.h"
11 static enum ndr_err_code ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r)
13 if (ndr_flags & NDR_SCALARS) {
14 NDR_CHECK(ndr_push_align(ndr, 5));
15 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
16 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv));
17 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags));
18 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count));
19 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count));
20 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon));
21 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff));
22 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time));
23 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time));
24 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age));
25 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change));
26 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change));
27 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer));
28 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
29 NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path));
30 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
32 if (ndr_flags & NDR_BUFFERS) {
33 if (r->account_name) {
34 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
35 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
36 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
37 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
39 if (r->computer) {
40 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
41 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
42 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
43 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
45 if (r->domain) {
46 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
47 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
48 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
49 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
51 if (r->script_path) {
52 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
53 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
54 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
55 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
58 return NDR_ERR_SUCCESS;
61 static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r)
63 uint32_t _ptr_account_name;
64 TALLOC_CTX *_mem_save_account_name_0;
65 uint32_t _ptr_computer;
66 TALLOC_CTX *_mem_save_computer_0;
67 uint32_t _ptr_domain;
68 TALLOC_CTX *_mem_save_domain_0;
69 uint32_t _ptr_script_path;
70 TALLOC_CTX *_mem_save_script_path_0;
71 if (ndr_flags & NDR_SCALARS) {
72 NDR_CHECK(ndr_pull_align(ndr, 5));
73 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
74 if (_ptr_account_name) {
75 NDR_PULL_ALLOC(ndr, r->account_name);
76 } else {
77 r->account_name = NULL;
79 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv));
80 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags));
81 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count));
82 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count));
83 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon));
84 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff));
85 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time));
86 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time));
87 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age));
88 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change));
89 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change));
90 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer));
91 if (_ptr_computer) {
92 NDR_PULL_ALLOC(ndr, r->computer);
93 } else {
94 r->computer = NULL;
96 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
97 if (_ptr_domain) {
98 NDR_PULL_ALLOC(ndr, r->domain);
99 } else {
100 r->domain = NULL;
102 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path));
103 if (_ptr_script_path) {
104 NDR_PULL_ALLOC(ndr, r->script_path);
105 } else {
106 r->script_path = NULL;
108 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
110 if (ndr_flags & NDR_BUFFERS) {
111 if (r->account_name) {
112 _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
113 NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
114 NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
115 NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
116 if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
117 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
119 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
120 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
123 if (r->computer) {
124 _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr);
125 NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0);
126 NDR_CHECK(ndr_pull_array_size(ndr, &r->computer));
127 NDR_CHECK(ndr_pull_array_length(ndr, &r->computer));
128 if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) {
129 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer), ndr_get_array_length(ndr, &r->computer));
131 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t)));
132 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16));
133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0);
135 if (r->domain) {
136 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
137 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
138 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
139 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
140 if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
141 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
143 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
144 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
145 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
147 if (r->script_path) {
148 _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
149 NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0);
150 NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path));
151 NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path));
152 if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) {
153 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->script_path), ndr_get_array_length(ndr, &r->script_path));
155 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t)));
156 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16));
157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0);
160 return NDR_ERR_SUCCESS;
163 _PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r)
165 ndr_print_struct(ndr, name, "netr_UasInfo");
166 ndr->depth++;
167 ndr_print_ptr(ndr, "account_name", r->account_name);
168 ndr->depth++;
169 if (r->account_name) {
170 ndr_print_string(ndr, "account_name", r->account_name);
172 ndr->depth--;
173 ndr_print_uint32(ndr, "priv", r->priv);
174 ndr_print_uint32(ndr, "auth_flags", r->auth_flags);
175 ndr_print_uint32(ndr, "logon_count", r->logon_count);
176 ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count);
177 ndr_print_time_t(ndr, "last_logon", r->last_logon);
178 ndr_print_time_t(ndr, "last_logoff", r->last_logoff);
179 ndr_print_time_t(ndr, "logoff_time", r->logoff_time);
180 ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time);
181 ndr_print_uint32(ndr, "password_age", r->password_age);
182 ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change);
183 ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change);
184 ndr_print_ptr(ndr, "computer", r->computer);
185 ndr->depth++;
186 if (r->computer) {
187 ndr_print_string(ndr, "computer", r->computer);
189 ndr->depth--;
190 ndr_print_ptr(ndr, "domain", r->domain);
191 ndr->depth++;
192 if (r->domain) {
193 ndr_print_string(ndr, "domain", r->domain);
195 ndr->depth--;
196 ndr_print_ptr(ndr, "script_path", r->script_path);
197 ndr->depth++;
198 if (r->script_path) {
199 ndr_print_string(ndr, "script_path", r->script_path);
201 ndr->depth--;
202 ndr_print_uint32(ndr, "unknown", r->unknown);
203 ndr->depth--;
206 static enum ndr_err_code ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r)
208 if (ndr_flags & NDR_SCALARS) {
209 NDR_CHECK(ndr_push_align(ndr, 4));
210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration));
211 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
213 if (ndr_flags & NDR_BUFFERS) {
215 return NDR_ERR_SUCCESS;
218 static enum ndr_err_code ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r)
220 if (ndr_flags & NDR_SCALARS) {
221 NDR_CHECK(ndr_pull_align(ndr, 4));
222 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration));
223 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
225 if (ndr_flags & NDR_BUFFERS) {
227 return NDR_ERR_SUCCESS;
230 _PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r)
232 ndr_print_struct(ndr, name, "netr_UasLogoffInfo");
233 ndr->depth++;
234 ndr_print_uint32(ndr, "duration", r->duration);
235 ndr_print_uint16(ndr, "logon_count", r->logon_count);
236 ndr->depth--;
239 _PUBLIC_ enum ndr_err_code ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r)
241 if (ndr_flags & NDR_SCALARS) {
242 NDR_CHECK(ndr_push_align(ndr, 4));
243 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->lockout_duration));
244 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reset_count));
245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_attempt_lockout));
246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy));
248 if (ndr_flags & NDR_BUFFERS) {
250 return NDR_ERR_SUCCESS;
253 _PUBLIC_ enum ndr_err_code ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r)
255 if (ndr_flags & NDR_SCALARS) {
256 NDR_CHECK(ndr_pull_align(ndr, 4));
257 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->lockout_duration));
258 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reset_count));
259 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_attempt_lockout));
260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
262 if (ndr_flags & NDR_BUFFERS) {
264 return NDR_ERR_SUCCESS;
267 _PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r)
269 ndr_print_struct(ndr, name, "netr_AcctLockStr");
270 ndr->depth++;
271 ndr_print_dlong(ndr, "lockout_duration", r->lockout_duration);
272 ndr_print_udlong(ndr, "reset_count", r->reset_count);
273 ndr_print_uint32(ndr, "bad_attempt_lockout", r->bad_attempt_lockout);
274 ndr_print_uint32(ndr, "dummy", r->dummy);
275 ndr->depth--;
278 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonParameterControl(struct ndr_push *ndr, int ndr_flags, uint32_t r)
280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
281 return NDR_ERR_SUCCESS;
284 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonParameterControl(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
286 uint32_t v;
287 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
288 *r = v;
289 return NDR_ERR_SUCCESS;
292 _PUBLIC_ void ndr_print_netr_LogonParameterControl(struct ndr_print *ndr, const char *name, uint32_t r)
294 ndr_print_uint32(ndr, name, r);
295 ndr->depth++;
296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED, r);
297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS, r);
298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS, r);
299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_DONT_TRY_GUEST_ACCOUNT", MSV1_0_DONT_TRY_GUEST_ACCOUNT, r);
300 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT, r);
301 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PASSWORD_EXPIRY", MSV1_0_RETURN_PASSWORD_EXPIRY, r);
302 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_USE_CLIENT_CHALLENGE", MSV1_0_USE_CLIENT_CHALLENGE, r);
303 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_TRY_GUEST_ACCOUNT_ONLY", MSV1_0_TRY_GUEST_ACCOUNT_ONLY, r);
304 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH, r);
305 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY", MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY, r);
306 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, r);
307 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_DISABLE_PERSONAL_FALLBACK", MSV1_0_DISABLE_PERSONAL_FALLBACK, r);
308 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_FORCE_GUEST", MSV1_0_ALLOW_FORCE_GUEST, r);
309 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED", MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED, r);
310 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY", MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY, r);
311 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_MSVCHAPV2", MSV1_0_ALLOW_MSVCHAPV2, r);
312 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_S4U2SELF", MSV1_0_S4U2SELF, r);
313 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CHECK_LOGONHOURS_FOR_S4U", MSV1_0_CHECK_LOGONHOURS_FOR_S4U, r);
314 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_SUBAUTHENTICATION_DLL_EX", MSV1_0_SUBAUTHENTICATION_DLL_EX, r);
315 ndr->depth--;
318 static enum ndr_err_code ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
320 if (ndr_flags & NDR_SCALARS) {
321 NDR_CHECK(ndr_push_align(ndr, 5));
322 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
323 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr, NDR_SCALARS, r->parameter_control));
324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
326 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
327 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
329 if (ndr_flags & NDR_BUFFERS) {
330 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
331 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
332 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
334 return NDR_ERR_SUCCESS;
337 static enum ndr_err_code ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
339 if (ndr_flags & NDR_SCALARS) {
340 NDR_CHECK(ndr_pull_align(ndr, 5));
341 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
342 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr, NDR_SCALARS, &r->parameter_control));
343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
344 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
345 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
346 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
348 if (ndr_flags & NDR_BUFFERS) {
349 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
350 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
351 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
353 return NDR_ERR_SUCCESS;
356 _PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
358 ndr_print_struct(ndr, name, "netr_IdentityInfo");
359 ndr->depth++;
360 ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
361 ndr_print_netr_LogonParameterControl(ndr, "parameter_control", r->parameter_control);
362 ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
363 ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
364 ndr_print_lsa_String(ndr, "account_name", &r->account_name);
365 ndr_print_lsa_String(ndr, "workstation", &r->workstation);
366 ndr->depth--;
369 static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
371 if (ndr_flags & NDR_SCALARS) {
372 NDR_CHECK(ndr_push_align(ndr, 5));
373 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
374 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
375 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
377 if (ndr_flags & NDR_BUFFERS) {
378 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
380 return NDR_ERR_SUCCESS;
383 static enum ndr_err_code ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r)
385 if (ndr_flags & NDR_SCALARS) {
386 NDR_CHECK(ndr_pull_align(ndr, 5));
387 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
388 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
389 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
391 if (ndr_flags & NDR_BUFFERS) {
392 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
394 return NDR_ERR_SUCCESS;
397 _PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
399 ndr_print_struct(ndr, name, "netr_PasswordInfo");
400 ndr->depth++;
401 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
402 ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
403 ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
404 ndr->depth--;
407 static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
410 uint32_t _flags_save_STRUCT = ndr->flags;
411 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
412 if (ndr_flags & NDR_SCALARS) {
413 NDR_CHECK(ndr_push_align(ndr, 5));
414 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
415 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
416 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
418 if (ndr_flags & NDR_BUFFERS) {
419 if (r->data) {
420 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
421 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
422 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
423 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
426 ndr->flags = _flags_save_STRUCT;
428 return NDR_ERR_SUCCESS;
431 static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
433 uint32_t _ptr_data;
434 TALLOC_CTX *_mem_save_data_0;
436 uint32_t _flags_save_STRUCT = ndr->flags;
437 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
438 if (ndr_flags & NDR_SCALARS) {
439 NDR_CHECK(ndr_pull_align(ndr, 5));
440 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
441 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
442 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
443 if (_ptr_data) {
444 NDR_PULL_ALLOC(ndr, r->data);
445 } else {
446 r->data = NULL;
449 if (ndr_flags & NDR_BUFFERS) {
450 if (r->data) {
451 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
452 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
453 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
454 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
455 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
456 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));
458 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
459 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
462 if (r->data) {
463 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
465 if (r->data) {
466 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
469 ndr->flags = _flags_save_STRUCT;
471 return NDR_ERR_SUCCESS;
474 _PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
476 ndr_print_struct(ndr, name, "netr_ChallengeResponse");
478 uint32_t _flags_save_STRUCT = ndr->flags;
479 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
480 ndr->depth++;
481 ndr_print_uint16(ndr, "length", r->length);
482 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
483 ndr_print_ptr(ndr, "data", r->data);
484 ndr->depth++;
485 if (r->data) {
486 ndr_print_array_uint8(ndr, "data", r->data, r->length);
488 ndr->depth--;
489 ndr->depth--;
490 ndr->flags = _flags_save_STRUCT;
494 static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
497 uint32_t _flags_save_STRUCT = ndr->flags;
498 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
499 if (ndr_flags & NDR_SCALARS) {
500 NDR_CHECK(ndr_push_align(ndr, 5));
501 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
502 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
503 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
504 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
506 if (ndr_flags & NDR_BUFFERS) {
507 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
508 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
509 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
511 ndr->flags = _flags_save_STRUCT;
513 return NDR_ERR_SUCCESS;
516 static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
519 uint32_t _flags_save_STRUCT = ndr->flags;
520 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
521 if (ndr_flags & NDR_SCALARS) {
522 NDR_CHECK(ndr_pull_align(ndr, 5));
523 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
524 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
525 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
526 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
528 if (ndr_flags & NDR_BUFFERS) {
529 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
530 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
531 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
533 ndr->flags = _flags_save_STRUCT;
535 return NDR_ERR_SUCCESS;
538 _PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
540 ndr_print_struct(ndr, name, "netr_NetworkInfo");
542 uint32_t _flags_save_STRUCT = ndr->flags;
543 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
544 ndr->depth++;
545 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
546 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
547 ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
548 ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
549 ndr->depth--;
550 ndr->flags = _flags_save_STRUCT;
554 static enum ndr_err_code ndr_push_netr_GenericInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_GenericInfo *r)
557 uint32_t _flags_save_STRUCT = ndr->flags;
558 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
559 if (ndr_flags & NDR_SCALARS) {
560 NDR_CHECK(ndr_push_align(ndr, 5));
561 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
562 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->package_name));
563 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
564 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
566 if (ndr_flags & NDR_BUFFERS) {
567 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
568 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
569 if (r->data) {
570 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
571 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
574 ndr->flags = _flags_save_STRUCT;
576 return NDR_ERR_SUCCESS;
579 static enum ndr_err_code ndr_pull_netr_GenericInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_GenericInfo *r)
581 uint32_t _ptr_data;
582 TALLOC_CTX *_mem_save_data_0;
584 uint32_t _flags_save_STRUCT = ndr->flags;
585 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
586 if (ndr_flags & NDR_SCALARS) {
587 NDR_CHECK(ndr_pull_align(ndr, 5));
588 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
589 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->package_name));
590 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
591 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
592 if (_ptr_data) {
593 NDR_PULL_ALLOC(ndr, r->data);
594 } else {
595 r->data = NULL;
598 if (ndr_flags & NDR_BUFFERS) {
599 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
600 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
601 if (r->data) {
602 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
603 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
604 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
605 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
606 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
609 if (r->data) {
610 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
613 ndr->flags = _flags_save_STRUCT;
615 return NDR_ERR_SUCCESS;
618 _PUBLIC_ void ndr_print_netr_GenericInfo(struct ndr_print *ndr, const char *name, const struct netr_GenericInfo *r)
620 ndr_print_struct(ndr, name, "netr_GenericInfo");
622 uint32_t _flags_save_STRUCT = ndr->flags;
623 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
624 ndr->depth++;
625 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
626 ndr_print_lsa_String(ndr, "package_name", &r->package_name);
627 ndr_print_uint32(ndr, "length", r->length);
628 ndr_print_ptr(ndr, "data", r->data);
629 ndr->depth++;
630 if (r->data) {
631 ndr_print_array_uint8(ndr, "data", r->data, r->length);
633 ndr->depth--;
634 ndr->depth--;
635 ndr->flags = _flags_save_STRUCT;
639 static enum ndr_err_code ndr_push_netr_LogonInfoClass(struct ndr_push *ndr, int ndr_flags, enum netr_LogonInfoClass r)
641 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
642 return NDR_ERR_SUCCESS;
645 static enum ndr_err_code ndr_pull_netr_LogonInfoClass(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonInfoClass *r)
647 uint16_t v;
648 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
649 *r = v;
650 return NDR_ERR_SUCCESS;
653 _PUBLIC_ void ndr_print_netr_LogonInfoClass(struct ndr_print *ndr, const char *name, enum netr_LogonInfoClass r)
655 const char *val = NULL;
657 switch (r) {
658 case NetlogonInteractiveInformation: val = "NetlogonInteractiveInformation"; break;
659 case NetlogonNetworkInformation: val = "NetlogonNetworkInformation"; break;
660 case NetlogonServiceInformation: val = "NetlogonServiceInformation"; break;
661 case NetlogonGenericInformation: val = "NetlogonGenericInformation"; break;
662 case NetlogonInteractiveTransitiveInformation: val = "NetlogonInteractiveTransitiveInformation"; break;
663 case NetlogonNetworkTransitiveInformation: val = "NetlogonNetworkTransitiveInformation"; break;
664 case NetlogonServiceTransitiveInformation: val = "NetlogonServiceTransitiveInformation"; break;
666 ndr_print_enum(ndr, name, "ENUM", val, r);
669 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, const union netr_LogonLevel *r)
671 if (ndr_flags & NDR_SCALARS) {
672 int level = ndr_push_get_switch_value(ndr, r);
673 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, level));
674 switch (level) {
675 case NetlogonInteractiveInformation: {
676 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
677 break; }
679 case NetlogonNetworkInformation: {
680 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
681 break; }
683 case NetlogonServiceInformation: {
684 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
685 break; }
687 case NetlogonGenericInformation: {
688 NDR_CHECK(ndr_push_unique_ptr(ndr, r->generic));
689 break; }
691 case NetlogonInteractiveTransitiveInformation: {
692 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
693 break; }
695 case NetlogonNetworkTransitiveInformation: {
696 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
697 break; }
699 case NetlogonServiceTransitiveInformation: {
700 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
701 break; }
703 default:
704 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
707 if (ndr_flags & NDR_BUFFERS) {
708 int level = ndr_push_get_switch_value(ndr, r);
709 switch (level) {
710 case NetlogonInteractiveInformation:
711 if (r->password) {
712 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
714 break;
716 case NetlogonNetworkInformation:
717 if (r->network) {
718 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
720 break;
722 case NetlogonServiceInformation:
723 if (r->password) {
724 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
726 break;
728 case NetlogonGenericInformation:
729 if (r->generic) {
730 NDR_CHECK(ndr_push_netr_GenericInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
732 break;
734 case NetlogonInteractiveTransitiveInformation:
735 if (r->password) {
736 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
738 break;
740 case NetlogonNetworkTransitiveInformation:
741 if (r->network) {
742 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
744 break;
746 case NetlogonServiceTransitiveInformation:
747 if (r->password) {
748 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
750 break;
752 default:
753 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
756 return NDR_ERR_SUCCESS;
759 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, union netr_LogonLevel *r)
761 int level;
762 uint16_t _level;
763 TALLOC_CTX *_mem_save_password_0;
764 TALLOC_CTX *_mem_save_network_0;
765 TALLOC_CTX *_mem_save_generic_0;
766 level = ndr_pull_get_switch_value(ndr, r);
767 if (ndr_flags & NDR_SCALARS) {
768 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
769 if (_level != level) {
770 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
772 switch (level) {
773 case NetlogonInteractiveInformation: {
774 uint32_t _ptr_password;
775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
776 if (_ptr_password) {
777 NDR_PULL_ALLOC(ndr, r->password);
778 } else {
779 r->password = NULL;
781 break; }
783 case NetlogonNetworkInformation: {
784 uint32_t _ptr_network;
785 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
786 if (_ptr_network) {
787 NDR_PULL_ALLOC(ndr, r->network);
788 } else {
789 r->network = NULL;
791 break; }
793 case NetlogonServiceInformation: {
794 uint32_t _ptr_password;
795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
796 if (_ptr_password) {
797 NDR_PULL_ALLOC(ndr, r->password);
798 } else {
799 r->password = NULL;
801 break; }
803 case NetlogonGenericInformation: {
804 uint32_t _ptr_generic;
805 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_generic));
806 if (_ptr_generic) {
807 NDR_PULL_ALLOC(ndr, r->generic);
808 } else {
809 r->generic = NULL;
811 break; }
813 case NetlogonInteractiveTransitiveInformation: {
814 uint32_t _ptr_password;
815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
816 if (_ptr_password) {
817 NDR_PULL_ALLOC(ndr, r->password);
818 } else {
819 r->password = NULL;
821 break; }
823 case NetlogonNetworkTransitiveInformation: {
824 uint32_t _ptr_network;
825 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
826 if (_ptr_network) {
827 NDR_PULL_ALLOC(ndr, r->network);
828 } else {
829 r->network = NULL;
831 break; }
833 case NetlogonServiceTransitiveInformation: {
834 uint32_t _ptr_password;
835 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
836 if (_ptr_password) {
837 NDR_PULL_ALLOC(ndr, r->password);
838 } else {
839 r->password = NULL;
841 break; }
843 default:
844 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
847 if (ndr_flags & NDR_BUFFERS) {
848 switch (level) {
849 case NetlogonInteractiveInformation:
850 if (r->password) {
851 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
852 NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
853 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
854 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
856 break;
858 case NetlogonNetworkInformation:
859 if (r->network) {
860 _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
861 NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
862 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
863 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
865 break;
867 case NetlogonServiceInformation:
868 if (r->password) {
869 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
870 NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
871 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
872 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
874 break;
876 case NetlogonGenericInformation:
877 if (r->generic) {
878 _mem_save_generic_0 = NDR_PULL_GET_MEM_CTX(ndr);
879 NDR_PULL_SET_MEM_CTX(ndr, r->generic, 0);
880 NDR_CHECK(ndr_pull_netr_GenericInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_generic_0, 0);
883 break;
885 case NetlogonInteractiveTransitiveInformation:
886 if (r->password) {
887 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
888 NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
889 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
892 break;
894 case NetlogonNetworkTransitiveInformation:
895 if (r->network) {
896 _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
897 NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
898 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
901 break;
903 case NetlogonServiceTransitiveInformation:
904 if (r->password) {
905 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
906 NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
907 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
910 break;
912 default:
913 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
916 return NDR_ERR_SUCCESS;
919 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, const union netr_LogonLevel *r)
921 int level;
922 level = ndr_print_get_switch_value(ndr, r);
923 ndr_print_union(ndr, name, level, "netr_LogonLevel");
924 switch (level) {
925 case NetlogonInteractiveInformation:
926 ndr_print_ptr(ndr, "password", r->password);
927 ndr->depth++;
928 if (r->password) {
929 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
931 ndr->depth--;
932 break;
934 case NetlogonNetworkInformation:
935 ndr_print_ptr(ndr, "network", r->network);
936 ndr->depth++;
937 if (r->network) {
938 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
940 ndr->depth--;
941 break;
943 case NetlogonServiceInformation:
944 ndr_print_ptr(ndr, "password", r->password);
945 ndr->depth++;
946 if (r->password) {
947 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
949 ndr->depth--;
950 break;
952 case NetlogonGenericInformation:
953 ndr_print_ptr(ndr, "generic", r->generic);
954 ndr->depth++;
955 if (r->generic) {
956 ndr_print_netr_GenericInfo(ndr, "generic", r->generic);
958 ndr->depth--;
959 break;
961 case NetlogonInteractiveTransitiveInformation:
962 ndr_print_ptr(ndr, "password", r->password);
963 ndr->depth++;
964 if (r->password) {
965 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
967 ndr->depth--;
968 break;
970 case NetlogonNetworkTransitiveInformation:
971 ndr_print_ptr(ndr, "network", r->network);
972 ndr->depth++;
973 if (r->network) {
974 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
976 ndr->depth--;
977 break;
979 case NetlogonServiceTransitiveInformation:
980 ndr_print_ptr(ndr, "password", r->password);
981 ndr->depth++;
982 if (r->password) {
983 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
985 ndr->depth--;
986 break;
988 default:
989 ndr_print_bad_level(ndr, name, level);
993 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
996 uint32_t _flags_save_STRUCT = ndr->flags;
997 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
998 if (ndr_flags & NDR_SCALARS) {
999 NDR_CHECK(ndr_push_align(ndr, 1));
1000 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
1002 if (ndr_flags & NDR_BUFFERS) {
1004 ndr->flags = _flags_save_STRUCT;
1006 return NDR_ERR_SUCCESS;
1009 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
1012 uint32_t _flags_save_STRUCT = ndr->flags;
1013 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1014 if (ndr_flags & NDR_SCALARS) {
1015 NDR_CHECK(ndr_pull_align(ndr, 1));
1016 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
1018 if (ndr_flags & NDR_BUFFERS) {
1020 ndr->flags = _flags_save_STRUCT;
1022 return NDR_ERR_SUCCESS;
1025 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
1027 ndr_print_struct(ndr, name, "netr_UserSessionKey");
1029 uint32_t _flags_save_STRUCT = ndr->flags;
1030 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1031 ndr->depth++;
1032 ndr_print_array_uint8(ndr, "key", r->key, 16);
1033 ndr->depth--;
1034 ndr->flags = _flags_save_STRUCT;
1038 _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
1041 uint32_t _flags_save_STRUCT = ndr->flags;
1042 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1043 if (ndr_flags & NDR_SCALARS) {
1044 NDR_CHECK(ndr_push_align(ndr, 1));
1045 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
1047 if (ndr_flags & NDR_BUFFERS) {
1049 ndr->flags = _flags_save_STRUCT;
1051 return NDR_ERR_SUCCESS;
1054 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
1057 uint32_t _flags_save_STRUCT = ndr->flags;
1058 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1059 if (ndr_flags & NDR_SCALARS) {
1060 NDR_CHECK(ndr_pull_align(ndr, 1));
1061 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
1063 if (ndr_flags & NDR_BUFFERS) {
1065 ndr->flags = _flags_save_STRUCT;
1067 return NDR_ERR_SUCCESS;
1070 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
1072 ndr_print_struct(ndr, name, "netr_LMSessionKey");
1074 uint32_t _flags_save_STRUCT = ndr->flags;
1075 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1076 ndr->depth++;
1077 ndr_print_array_uint8(ndr, "key", r->key, 8);
1078 ndr->depth--;
1079 ndr->flags = _flags_save_STRUCT;
1083 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1086 return NDR_ERR_SUCCESS;
1089 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1091 uint32_t v;
1092 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1093 *r = v;
1094 return NDR_ERR_SUCCESS;
1097 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1099 ndr_print_uint32(ndr, name, r);
1100 ndr->depth++;
1101 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
1102 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
1103 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
1104 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
1105 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
1106 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
1107 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
1108 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
1109 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
1110 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
1111 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON, r);
1112 ndr->depth--;
1115 static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
1117 uint32_t cntr_unknown_0;
1118 if (ndr_flags & NDR_SCALARS) {
1119 NDR_CHECK(ndr_push_align(ndr, 5));
1120 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
1121 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
1122 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
1123 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
1124 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
1125 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
1126 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1127 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1128 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1129 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1130 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1131 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1132 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
1133 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
1134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
1135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
1136 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1137 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
1138 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1139 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1140 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1141 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
1142 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1143 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
1144 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
1148 if (ndr_flags & NDR_BUFFERS) {
1149 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1150 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1151 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1152 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1153 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1154 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1155 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1156 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1157 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1158 if (r->domain_sid) {
1159 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1162 return NDR_ERR_SUCCESS;
1165 static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
1167 uint32_t _ptr_domain_sid;
1168 TALLOC_CTX *_mem_save_domain_sid_0;
1169 uint32_t cntr_unknown_0;
1170 if (ndr_flags & NDR_SCALARS) {
1171 NDR_CHECK(ndr_pull_align(ndr, 5));
1172 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
1173 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
1174 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
1175 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
1176 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
1177 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
1178 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1179 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1180 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1181 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1182 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1183 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1184 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
1185 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
1186 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
1187 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1188 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1189 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
1190 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1191 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1192 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
1194 if (_ptr_domain_sid) {
1195 NDR_PULL_ALLOC(ndr, r->domain_sid);
1196 } else {
1197 r->domain_sid = NULL;
1199 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1200 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
1201 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1202 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
1205 if (ndr_flags & NDR_BUFFERS) {
1206 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1207 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1208 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1209 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1210 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1211 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1212 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1213 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1214 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1215 if (r->domain_sid) {
1216 _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1217 NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1218 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1222 return NDR_ERR_SUCCESS;
1225 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
1227 uint32_t cntr_unknown_0;
1228 ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1229 ndr->depth++;
1230 ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1231 ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1232 ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1233 ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1234 ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1235 ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1236 ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1237 ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1238 ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1239 ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1240 ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1241 ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1242 ndr_print_uint16(ndr, "logon_count", r->logon_count);
1243 ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1244 ndr_print_uint32(ndr, "rid", r->rid);
1245 ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1246 ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1247 ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1248 ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1249 ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1250 ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1251 ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1252 ndr->depth++;
1253 if (r->domain_sid) {
1254 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1256 ndr->depth--;
1257 ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1258 ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1259 ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)7);
1260 ndr->depth++;
1261 for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1262 char *idx_0=NULL;
1263 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
1264 ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1265 free(idx_0);
1268 ndr->depth--;
1269 ndr->depth--;
1272 static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
1274 if (ndr_flags & NDR_SCALARS) {
1275 NDR_CHECK(ndr_push_align(ndr, 5));
1276 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1278 if (ndr_flags & NDR_BUFFERS) {
1279 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1281 return NDR_ERR_SUCCESS;
1284 static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
1286 if (ndr_flags & NDR_SCALARS) {
1287 NDR_CHECK(ndr_pull_align(ndr, 5));
1288 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1290 if (ndr_flags & NDR_BUFFERS) {
1291 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1293 return NDR_ERR_SUCCESS;
1296 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
1298 ndr_print_struct(ndr, name, "netr_SamInfo2");
1299 ndr->depth++;
1300 ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1301 ndr->depth--;
1304 static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
1306 if (ndr_flags & NDR_SCALARS) {
1307 NDR_CHECK(ndr_push_align(ndr, 5));
1308 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1309 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1311 if (ndr_flags & NDR_BUFFERS) {
1312 if (r->sid) {
1313 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1316 return NDR_ERR_SUCCESS;
1319 static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
1321 uint32_t _ptr_sid;
1322 TALLOC_CTX *_mem_save_sid_0;
1323 if (ndr_flags & NDR_SCALARS) {
1324 NDR_CHECK(ndr_pull_align(ndr, 5));
1325 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1326 if (_ptr_sid) {
1327 NDR_PULL_ALLOC(ndr, r->sid);
1328 } else {
1329 r->sid = NULL;
1331 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1333 if (ndr_flags & NDR_BUFFERS) {
1334 if (r->sid) {
1335 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1336 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1337 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1341 return NDR_ERR_SUCCESS;
1344 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
1346 ndr_print_struct(ndr, name, "netr_SidAttr");
1347 ndr->depth++;
1348 ndr_print_ptr(ndr, "sid", r->sid);
1349 ndr->depth++;
1350 if (r->sid) {
1351 ndr_print_dom_sid2(ndr, "sid", r->sid);
1353 ndr->depth--;
1354 ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1355 ndr->depth--;
1358 _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
1360 uint32_t cntr_sids_1;
1361 if (ndr_flags & NDR_SCALARS) {
1362 NDR_CHECK(ndr_push_align(ndr, 5));
1363 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1365 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1367 if (ndr_flags & NDR_BUFFERS) {
1368 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1369 if (r->sids) {
1370 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->sidcount));
1371 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1372 NDR_CHECK(ndr_push_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_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1379 return NDR_ERR_SUCCESS;
1382 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
1384 uint32_t _ptr_sids;
1385 uint32_t cntr_sids_1;
1386 TALLOC_CTX *_mem_save_sids_0;
1387 TALLOC_CTX *_mem_save_sids_1;
1388 if (ndr_flags & NDR_SCALARS) {
1389 NDR_CHECK(ndr_pull_align(ndr, 5));
1390 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1391 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1392 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1393 if (_ptr_sids) {
1394 NDR_PULL_ALLOC(ndr, r->sids);
1395 } else {
1396 r->sids = NULL;
1399 if (ndr_flags & NDR_BUFFERS) {
1400 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1401 if (r->sids) {
1402 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1403 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1404 NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1405 NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1406 _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1407 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1408 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1409 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1411 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1412 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1417 if (r->sids) {
1418 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1421 return NDR_ERR_SUCCESS;
1424 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
1426 uint32_t cntr_sids_1;
1427 ndr_print_struct(ndr, name, "netr_SamInfo3");
1428 ndr->depth++;
1429 ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1430 ndr_print_uint32(ndr, "sidcount", r->sidcount);
1431 ndr_print_ptr(ndr, "sids", r->sids);
1432 ndr->depth++;
1433 if (r->sids) {
1434 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1435 ndr->depth++;
1436 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1437 char *idx_1=NULL;
1438 if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1439 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1440 free(idx_1);
1443 ndr->depth--;
1445 ndr->depth--;
1446 ndr->depth--;
1449 static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
1451 uint32_t cntr_sids_1;
1452 uint32_t cntr_unknown4_0;
1453 if (ndr_flags & NDR_SCALARS) {
1454 NDR_CHECK(ndr_push_align(ndr, 5));
1455 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1457 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1458 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1459 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1460 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1464 if (ndr_flags & NDR_BUFFERS) {
1465 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1466 if (r->sids) {
1467 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->sidcount));
1468 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1469 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1471 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1472 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1475 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1476 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1478 return NDR_ERR_SUCCESS;
1481 static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
1483 uint32_t _ptr_sids;
1484 uint32_t cntr_sids_1;
1485 TALLOC_CTX *_mem_save_sids_0;
1486 TALLOC_CTX *_mem_save_sids_1;
1487 uint32_t cntr_unknown4_0;
1488 if (ndr_flags & NDR_SCALARS) {
1489 NDR_CHECK(ndr_pull_align(ndr, 5));
1490 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1491 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1493 if (_ptr_sids) {
1494 NDR_PULL_ALLOC(ndr, r->sids);
1495 } else {
1496 r->sids = NULL;
1498 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1499 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1500 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1504 if (ndr_flags & NDR_BUFFERS) {
1505 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1506 if (r->sids) {
1507 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1508 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1509 NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1510 NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1511 _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1512 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1513 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1514 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1516 for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1517 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1522 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1523 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1524 if (r->sids) {
1525 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1528 return NDR_ERR_SUCCESS;
1531 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
1533 uint32_t cntr_sids_1;
1534 uint32_t cntr_unknown4_0;
1535 ndr_print_struct(ndr, name, "netr_SamInfo6");
1536 ndr->depth++;
1537 ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1538 ndr_print_uint32(ndr, "sidcount", r->sidcount);
1539 ndr_print_ptr(ndr, "sids", r->sids);
1540 ndr->depth++;
1541 if (r->sids) {
1542 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1543 ndr->depth++;
1544 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1545 char *idx_1=NULL;
1546 if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1547 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1548 free(idx_1);
1551 ndr->depth--;
1553 ndr->depth--;
1554 ndr_print_lsa_String(ndr, "forest", &r->forest);
1555 ndr_print_lsa_String(ndr, "principle", &r->principle);
1556 ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", (int)20);
1557 ndr->depth++;
1558 for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1559 char *idx_0=NULL;
1560 if (asprintf(&idx_0, "[%d]", cntr_unknown4_0) != -1) {
1561 ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1562 free(idx_0);
1565 ndr->depth--;
1566 ndr->depth--;
1569 static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
1571 uint32_t cntr_expansionroom_0;
1572 if (ndr_flags & NDR_SCALARS) {
1573 NDR_CHECK(ndr_push_align(ndr, 5));
1574 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1575 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1576 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1577 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1578 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1579 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1580 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1581 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1582 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1585 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1586 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1587 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1588 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1590 if (ndr_flags & NDR_BUFFERS) {
1591 if (r->pac) {
1592 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->pac_size));
1593 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1595 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1596 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1597 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1598 if (r->auth) {
1599 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->auth_size));
1600 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1602 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1603 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1604 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1605 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1607 return NDR_ERR_SUCCESS;
1610 static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
1612 uint32_t _ptr_pac;
1613 TALLOC_CTX *_mem_save_pac_0;
1614 uint32_t _ptr_auth;
1615 TALLOC_CTX *_mem_save_auth_0;
1616 uint32_t cntr_expansionroom_0;
1617 if (ndr_flags & NDR_SCALARS) {
1618 NDR_CHECK(ndr_pull_align(ndr, 5));
1619 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1620 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1621 if (_ptr_pac) {
1622 NDR_PULL_ALLOC(ndr, r->pac);
1623 } else {
1624 r->pac = NULL;
1626 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1627 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1628 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1629 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1630 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1631 if (_ptr_auth) {
1632 NDR_PULL_ALLOC(ndr, r->auth);
1633 } else {
1634 r->auth = NULL;
1636 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1637 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1638 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1640 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1641 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1642 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1643 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1645 if (ndr_flags & NDR_BUFFERS) {
1646 if (r->pac) {
1647 _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1648 NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1649 NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1650 NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1651 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1654 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1655 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1656 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1657 if (r->auth) {
1658 _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1659 NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1660 NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1661 NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1662 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1665 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1666 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1667 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1668 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1669 if (r->pac) {
1670 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1672 if (r->auth) {
1673 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1676 return NDR_ERR_SUCCESS;
1679 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
1681 uint32_t cntr_expansionroom_0;
1682 ndr_print_struct(ndr, name, "netr_PacInfo");
1683 ndr->depth++;
1684 ndr_print_uint32(ndr, "pac_size", r->pac_size);
1685 ndr_print_ptr(ndr, "pac", r->pac);
1686 ndr->depth++;
1687 if (r->pac) {
1688 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1690 ndr->depth--;
1691 ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1692 ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1693 ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1694 ndr_print_uint32(ndr, "auth_size", r->auth_size);
1695 ndr_print_ptr(ndr, "auth", r->auth);
1696 ndr->depth++;
1697 if (r->auth) {
1698 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1700 ndr->depth--;
1701 ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1702 ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", (int)10);
1703 ndr->depth++;
1704 for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1705 char *idx_0=NULL;
1706 if (asprintf(&idx_0, "[%d]", cntr_expansionroom_0) != -1) {
1707 ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1708 free(idx_0);
1711 ndr->depth--;
1712 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1713 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1714 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1715 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1716 ndr->depth--;
1719 static enum ndr_err_code ndr_push_netr_GenericInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_GenericInfo2 *r)
1722 uint32_t _flags_save_STRUCT = ndr->flags;
1723 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1724 if (ndr_flags & NDR_SCALARS) {
1725 NDR_CHECK(ndr_push_align(ndr, 5));
1726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
1727 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
1729 if (ndr_flags & NDR_BUFFERS) {
1730 if (r->data) {
1731 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
1732 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
1735 ndr->flags = _flags_save_STRUCT;
1737 return NDR_ERR_SUCCESS;
1740 static enum ndr_err_code ndr_pull_netr_GenericInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_GenericInfo2 *r)
1742 uint32_t _ptr_data;
1743 TALLOC_CTX *_mem_save_data_0;
1745 uint32_t _flags_save_STRUCT = ndr->flags;
1746 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1747 if (ndr_flags & NDR_SCALARS) {
1748 NDR_CHECK(ndr_pull_align(ndr, 5));
1749 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
1750 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
1751 if (_ptr_data) {
1752 NDR_PULL_ALLOC(ndr, r->data);
1753 } else {
1754 r->data = NULL;
1757 if (ndr_flags & NDR_BUFFERS) {
1758 if (r->data) {
1759 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1760 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
1761 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
1762 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
1763 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
1764 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
1766 if (r->data) {
1767 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
1770 ndr->flags = _flags_save_STRUCT;
1772 return NDR_ERR_SUCCESS;
1775 _PUBLIC_ void ndr_print_netr_GenericInfo2(struct ndr_print *ndr, const char *name, const struct netr_GenericInfo2 *r)
1777 ndr_print_struct(ndr, name, "netr_GenericInfo2");
1779 uint32_t _flags_save_STRUCT = ndr->flags;
1780 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1781 ndr->depth++;
1782 ndr_print_uint32(ndr, "length", r->length);
1783 ndr_print_ptr(ndr, "data", r->data);
1784 ndr->depth++;
1785 if (r->data) {
1786 ndr_print_array_uint8(ndr, "data", r->data, r->length);
1788 ndr->depth--;
1789 ndr->depth--;
1790 ndr->flags = _flags_save_STRUCT;
1794 _PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
1796 if (ndr_flags & NDR_SCALARS) {
1797 int level = ndr_push_get_switch_value(ndr, r);
1798 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1799 switch (level) {
1800 case NetlogonValidationSamInfo: {
1801 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1802 break; }
1804 case NetlogonValidationSamInfo2: {
1805 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1806 break; }
1808 case 4: {
1809 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1810 break; }
1812 case NetlogonValidationGenericInfo2: {
1813 NDR_CHECK(ndr_push_unique_ptr(ndr, r->generic));
1814 break; }
1816 case NetlogonValidationSamInfo4: {
1817 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1818 break; }
1820 default:
1821 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1824 if (ndr_flags & NDR_BUFFERS) {
1825 int level = ndr_push_get_switch_value(ndr, r);
1826 switch (level) {
1827 case NetlogonValidationSamInfo:
1828 if (r->sam2) {
1829 NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1831 break;
1833 case NetlogonValidationSamInfo2:
1834 if (r->sam3) {
1835 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1837 break;
1839 case 4:
1840 if (r->pac) {
1841 NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1843 break;
1845 case NetlogonValidationGenericInfo2:
1846 if (r->generic) {
1847 NDR_CHECK(ndr_push_netr_GenericInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
1849 break;
1851 case NetlogonValidationSamInfo4:
1852 if (r->sam6) {
1853 NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1855 break;
1857 default:
1858 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1861 return NDR_ERR_SUCCESS;
1864 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
1866 int level;
1867 uint16_t _level;
1868 TALLOC_CTX *_mem_save_sam2_0;
1869 TALLOC_CTX *_mem_save_sam3_0;
1870 TALLOC_CTX *_mem_save_pac_0;
1871 TALLOC_CTX *_mem_save_generic_0;
1872 TALLOC_CTX *_mem_save_sam6_0;
1873 level = ndr_pull_get_switch_value(ndr, r);
1874 if (ndr_flags & NDR_SCALARS) {
1875 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1876 if (_level != level) {
1877 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
1879 switch (level) {
1880 case NetlogonValidationSamInfo: {
1881 uint32_t _ptr_sam2;
1882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1883 if (_ptr_sam2) {
1884 NDR_PULL_ALLOC(ndr, r->sam2);
1885 } else {
1886 r->sam2 = NULL;
1888 break; }
1890 case NetlogonValidationSamInfo2: {
1891 uint32_t _ptr_sam3;
1892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1893 if (_ptr_sam3) {
1894 NDR_PULL_ALLOC(ndr, r->sam3);
1895 } else {
1896 r->sam3 = NULL;
1898 break; }
1900 case 4: {
1901 uint32_t _ptr_pac;
1902 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1903 if (_ptr_pac) {
1904 NDR_PULL_ALLOC(ndr, r->pac);
1905 } else {
1906 r->pac = NULL;
1908 break; }
1910 case NetlogonValidationGenericInfo2: {
1911 uint32_t _ptr_generic;
1912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_generic));
1913 if (_ptr_generic) {
1914 NDR_PULL_ALLOC(ndr, r->generic);
1915 } else {
1916 r->generic = NULL;
1918 break; }
1920 case NetlogonValidationSamInfo4: {
1921 uint32_t _ptr_sam6;
1922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1923 if (_ptr_sam6) {
1924 NDR_PULL_ALLOC(ndr, r->sam6);
1925 } else {
1926 r->sam6 = NULL;
1928 break; }
1930 default:
1931 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1934 if (ndr_flags & NDR_BUFFERS) {
1935 switch (level) {
1936 case NetlogonValidationSamInfo:
1937 if (r->sam2) {
1938 _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1939 NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1940 NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1943 break;
1945 case NetlogonValidationSamInfo2:
1946 if (r->sam3) {
1947 _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1948 NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1949 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1950 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1952 break;
1954 case 4:
1955 if (r->pac) {
1956 _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1957 NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1958 NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1961 break;
1963 case NetlogonValidationGenericInfo2:
1964 if (r->generic) {
1965 _mem_save_generic_0 = NDR_PULL_GET_MEM_CTX(ndr);
1966 NDR_PULL_SET_MEM_CTX(ndr, r->generic, 0);
1967 NDR_CHECK(ndr_pull_netr_GenericInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
1968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_generic_0, 0);
1970 break;
1972 case NetlogonValidationSamInfo4:
1973 if (r->sam6) {
1974 _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1975 NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1976 NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1979 break;
1981 default:
1982 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1985 return NDR_ERR_SUCCESS;
1988 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
1990 int level;
1991 level = ndr_print_get_switch_value(ndr, r);
1992 ndr_print_union(ndr, name, level, "netr_Validation");
1993 switch (level) {
1994 case NetlogonValidationSamInfo:
1995 ndr_print_ptr(ndr, "sam2", r->sam2);
1996 ndr->depth++;
1997 if (r->sam2) {
1998 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
2000 ndr->depth--;
2001 break;
2003 case NetlogonValidationSamInfo2:
2004 ndr_print_ptr(ndr, "sam3", r->sam3);
2005 ndr->depth++;
2006 if (r->sam3) {
2007 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
2009 ndr->depth--;
2010 break;
2012 case 4:
2013 ndr_print_ptr(ndr, "pac", r->pac);
2014 ndr->depth++;
2015 if (r->pac) {
2016 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
2018 ndr->depth--;
2019 break;
2021 case NetlogonValidationGenericInfo2:
2022 ndr_print_ptr(ndr, "generic", r->generic);
2023 ndr->depth++;
2024 if (r->generic) {
2025 ndr_print_netr_GenericInfo2(ndr, "generic", r->generic);
2027 ndr->depth--;
2028 break;
2030 case NetlogonValidationSamInfo4:
2031 ndr_print_ptr(ndr, "sam6", r->sam6);
2032 ndr->depth++;
2033 if (r->sam6) {
2034 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
2036 ndr->depth--;
2037 break;
2039 default:
2040 ndr_print_bad_level(ndr, name, level);
2044 _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
2047 uint32_t _flags_save_STRUCT = ndr->flags;
2048 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2049 if (ndr_flags & NDR_SCALARS) {
2050 NDR_CHECK(ndr_push_align(ndr, 1));
2051 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
2053 if (ndr_flags & NDR_BUFFERS) {
2055 ndr->flags = _flags_save_STRUCT;
2057 return NDR_ERR_SUCCESS;
2060 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
2063 uint32_t _flags_save_STRUCT = ndr->flags;
2064 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2065 if (ndr_flags & NDR_SCALARS) {
2066 NDR_CHECK(ndr_pull_align(ndr, 1));
2067 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
2069 if (ndr_flags & NDR_BUFFERS) {
2071 ndr->flags = _flags_save_STRUCT;
2073 return NDR_ERR_SUCCESS;
2076 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
2078 ndr_print_struct(ndr, name, "netr_Credential");
2080 uint32_t _flags_save_STRUCT = ndr->flags;
2081 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2082 ndr->depth++;
2083 ndr_print_array_uint8(ndr, "data", r->data, 8);
2084 ndr->depth--;
2085 ndr->flags = _flags_save_STRUCT;
2089 _PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
2091 if (ndr_flags & NDR_SCALARS) {
2092 NDR_CHECK(ndr_push_align(ndr, 4));
2093 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
2094 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
2096 if (ndr_flags & NDR_BUFFERS) {
2098 return NDR_ERR_SUCCESS;
2101 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
2103 if (ndr_flags & NDR_SCALARS) {
2104 NDR_CHECK(ndr_pull_align(ndr, 4));
2105 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
2106 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
2108 if (ndr_flags & NDR_BUFFERS) {
2110 return NDR_ERR_SUCCESS;
2113 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
2115 ndr_print_struct(ndr, name, "netr_Authenticator");
2116 ndr->depth++;
2117 ndr_print_netr_Credential(ndr, "cred", &r->cred);
2118 ndr_print_time_t(ndr, "timestamp", r->timestamp);
2119 ndr->depth--;
2122 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_USER *r)
2124 if (ndr_flags & NDR_SCALARS) {
2125 NDR_CHECK(ndr_push_align(ndr, 5));
2126 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
2127 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2128 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2129 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2130 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2136 if (ndr_flags & NDR_BUFFERS) {
2137 if (r->account_name) {
2138 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
2139 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
2140 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
2141 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
2143 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2144 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2145 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2146 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2148 return NDR_ERR_SUCCESS;
2151 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
2153 uint32_t _ptr_account_name;
2154 TALLOC_CTX *_mem_save_account_name_0;
2155 if (ndr_flags & NDR_SCALARS) {
2156 NDR_CHECK(ndr_pull_align(ndr, 5));
2157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
2158 if (_ptr_account_name) {
2159 NDR_PULL_ALLOC(ndr, r->account_name);
2160 } else {
2161 r->account_name = NULL;
2163 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2164 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2165 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2166 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2167 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2172 if (ndr_flags & NDR_BUFFERS) {
2173 if (r->account_name) {
2174 _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2175 NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
2176 NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
2177 NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
2178 if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
2179 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));
2181 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
2182 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
2183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
2185 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2186 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2187 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2188 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2190 return NDR_ERR_SUCCESS;
2193 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
2195 ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
2196 ndr->depth++;
2197 ndr_print_ptr(ndr, "account_name", r->account_name);
2198 ndr->depth++;
2199 if (r->account_name) {
2200 ndr_print_string(ndr, "account_name", r->account_name);
2202 ndr->depth--;
2203 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2204 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2205 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2206 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2207 ndr_print_uint32(ndr, "unknown5", r->unknown5);
2208 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2209 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2210 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2211 ndr->depth--;
2214 static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
2216 if (ndr_flags & NDR_SCALARS) {
2217 NDR_CHECK(ndr_push_align(ndr, 4));
2218 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2219 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
2221 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2223 if (ndr_flags & NDR_BUFFERS) {
2225 return NDR_ERR_SUCCESS;
2228 static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
2230 if (ndr_flags & NDR_SCALARS) {
2231 NDR_CHECK(ndr_pull_align(ndr, 4));
2232 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
2233 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
2234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
2235 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2237 if (ndr_flags & NDR_BUFFERS) {
2239 return NDR_ERR_SUCCESS;
2242 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
2244 ndr_print_struct(ndr, name, "netr_USER_KEY16");
2245 ndr->depth++;
2246 ndr_print_uint16(ndr, "length", r->length);
2247 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
2248 ndr_print_uint32(ndr, "flags", r->flags);
2249 ndr_print_samr_Password(ndr, "pwd", &r->pwd);
2250 ndr->depth--;
2253 static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
2255 if (ndr_flags & NDR_SCALARS) {
2256 NDR_CHECK(ndr_push_align(ndr, 4));
2257 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2258 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2260 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2261 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2263 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2264 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2266 if (ndr_flags & NDR_BUFFERS) {
2268 return NDR_ERR_SUCCESS;
2271 static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
2273 if (ndr_flags & NDR_SCALARS) {
2274 NDR_CHECK(ndr_pull_align(ndr, 4));
2275 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
2276 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2277 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2278 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2279 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2280 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2281 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2282 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2283 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2284 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2286 if (ndr_flags & NDR_BUFFERS) {
2288 return NDR_ERR_SUCCESS;
2291 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
2293 ndr_print_struct(ndr, name, "netr_PasswordHistory");
2294 ndr->depth++;
2295 ndr_print_uint16(ndr, "nt_length", r->nt_length);
2296 ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
2297 ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2298 ndr_print_uint16(ndr, "lm_length", r->lm_length);
2299 ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
2300 ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2301 ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2302 ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2303 ndr->depth--;
2306 static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
2308 if (ndr_flags & NDR_SCALARS) {
2309 NDR_CHECK(ndr_push_align(ndr, 4));
2310 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2311 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2312 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2314 if (ndr_flags & NDR_BUFFERS) {
2316 return NDR_ERR_SUCCESS;
2319 static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
2321 if (ndr_flags & NDR_SCALARS) {
2322 NDR_CHECK(ndr_pull_align(ndr, 4));
2323 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2324 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2325 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2327 if (ndr_flags & NDR_BUFFERS) {
2329 return NDR_ERR_SUCCESS;
2332 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
2334 ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2335 ndr->depth++;
2336 ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2337 ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2338 ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
2339 ndr->depth--;
2342 static enum ndr_err_code ndr_push_netr_USER_KEY_UNION(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY_UNION *r)
2344 if (ndr_flags & NDR_SCALARS) {
2345 NDR_CHECK(ndr_push_align(ndr, 4));
2346 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2348 if (ndr_flags & NDR_BUFFERS) {
2350 return NDR_ERR_SUCCESS;
2353 static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
2355 if (ndr_flags & NDR_SCALARS) {
2356 NDR_CHECK(ndr_pull_align(ndr, 4));
2357 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2359 if (ndr_flags & NDR_BUFFERS) {
2361 return NDR_ERR_SUCCESS;
2364 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
2366 ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2367 ndr->depth++;
2368 ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2369 ndr->depth--;
2372 _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
2374 if (ndr_flags & NDR_SCALARS) {
2375 NDR_CHECK(ndr_push_align(ndr, 4));
2376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2377 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2379 if (ndr_flags & NDR_BUFFERS) {
2381 return NDR_ERR_SUCCESS;
2384 _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
2386 if (ndr_flags & NDR_SCALARS) {
2387 NDR_CHECK(ndr_pull_align(ndr, 4));
2388 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2389 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2391 if (ndr_flags & NDR_BUFFERS) {
2393 return NDR_ERR_SUCCESS;
2396 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
2398 ndr_print_struct(ndr, name, "netr_USER_KEYS");
2399 ndr->depth++;
2400 ndr_print_uint32(ndr, "version", r->version);
2401 ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2402 ndr->depth--;
2405 static enum ndr_err_code ndr_push_netr_USER_PRIVATE_INFO(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_PRIVATE_INFO *r)
2407 if (ndr_flags & NDR_SCALARS) {
2408 NDR_CHECK(ndr_push_align(ndr, 5));
2409 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2412 uint32_t _flags_save_uint8 = ndr->flags;
2413 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2414 NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
2415 ndr->flags = _flags_save_uint8;
2418 if (ndr_flags & NDR_BUFFERS) {
2420 uint32_t _flags_save_uint8 = ndr->flags;
2421 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2422 if (r->SensitiveData) {
2423 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->DataLength));
2424 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2426 ndr->flags = _flags_save_uint8;
2429 return NDR_ERR_SUCCESS;
2432 static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
2434 uint32_t _ptr_SensitiveData;
2435 TALLOC_CTX *_mem_save_SensitiveData_0;
2436 if (ndr_flags & NDR_SCALARS) {
2437 NDR_CHECK(ndr_pull_align(ndr, 5));
2438 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2441 uint32_t _flags_save_uint8 = ndr->flags;
2442 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2443 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2444 if (_ptr_SensitiveData) {
2445 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2446 } else {
2447 r->SensitiveData = NULL;
2449 ndr->flags = _flags_save_uint8;
2452 if (ndr_flags & NDR_BUFFERS) {
2454 uint32_t _flags_save_uint8 = ndr->flags;
2455 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2456 if (r->SensitiveData) {
2457 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2458 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2459 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2460 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2461 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2464 ndr->flags = _flags_save_uint8;
2466 if (r->SensitiveData) {
2467 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2470 return NDR_ERR_SUCCESS;
2473 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
2475 ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2476 ndr->depth++;
2477 ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2478 ndr_print_uint32(ndr, "DataLength", r->DataLength);
2479 ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2480 ndr->depth++;
2481 if (r->SensitiveData) {
2482 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2484 ndr->depth--;
2485 ndr->depth--;
2488 static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
2490 if (ndr_flags & NDR_SCALARS) {
2491 NDR_CHECK(ndr_push_align(ndr, 5));
2492 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2493 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2494 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2495 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2496 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2497 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2498 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2499 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2500 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2501 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2502 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2503 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2504 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2505 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2506 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2507 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2508 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2509 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2510 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2511 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2512 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2513 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2514 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2515 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2516 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2517 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2518 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2520 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2521 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2522 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2523 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2524 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2530 if (ndr_flags & NDR_BUFFERS) {
2531 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2532 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2533 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2534 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2535 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2536 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2537 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2538 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2539 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2540 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2541 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2542 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2543 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2544 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2545 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2546 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2548 return NDR_ERR_SUCCESS;
2551 static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
2553 if (ndr_flags & NDR_SCALARS) {
2554 NDR_CHECK(ndr_pull_align(ndr, 5));
2555 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2556 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2559 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2560 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2561 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2562 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2563 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2564 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2565 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2566 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2567 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2568 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2569 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2570 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2571 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2572 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2573 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2574 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2575 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2576 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2577 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2578 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2579 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2580 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2581 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2582 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2583 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2584 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2585 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2586 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2587 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2589 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2590 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2593 if (ndr_flags & NDR_BUFFERS) {
2594 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2595 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2596 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2597 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2598 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2599 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2600 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2601 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2602 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2603 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2604 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2605 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2606 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2607 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2608 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2609 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2611 return NDR_ERR_SUCCESS;
2614 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
2616 ndr_print_struct(ndr, name, "netr_DELTA_USER");
2617 ndr->depth++;
2618 ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2619 ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2620 ndr_print_uint32(ndr, "rid", r->rid);
2621 ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2622 ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2623 ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2624 ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2625 ndr_print_lsa_String(ndr, "description", &r->description);
2626 ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2627 ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2628 ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2629 ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2630 ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2631 ndr_print_uint16(ndr, "logon_count", r->logon_count);
2632 ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2633 ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2634 ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2635 ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2636 ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2637 ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2638 ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2639 ndr_print_uint8(ndr, "password_expired", r->password_expired);
2640 ndr_print_lsa_String(ndr, "comment", &r->comment);
2641 ndr_print_lsa_BinaryString(ndr, "parameters", &r->parameters);
2642 ndr_print_uint16(ndr, "country_code", r->country_code);
2643 ndr_print_uint16(ndr, "code_page", r->code_page);
2644 ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2645 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2646 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2647 ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2648 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2649 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2650 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2651 ndr_print_uint32(ndr, "unknown5", r->unknown5);
2652 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2653 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2654 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2655 ndr->depth--;
2658 static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
2660 if (ndr_flags & NDR_SCALARS) {
2661 NDR_CHECK(ndr_push_align(ndr, 5));
2662 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2663 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
2664 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2665 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2666 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2667 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2668 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2669 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2670 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2671 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2672 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2673 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2674 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2675 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2676 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2682 if (ndr_flags & NDR_BUFFERS) {
2683 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2684 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
2685 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2686 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2687 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2688 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2689 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2691 return NDR_ERR_SUCCESS;
2694 static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
2696 if (ndr_flags & NDR_SCALARS) {
2697 NDR_CHECK(ndr_pull_align(ndr, 5));
2698 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2699 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
2700 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2701 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2702 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2703 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2704 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2705 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2706 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2707 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2708 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2709 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2710 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2711 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2712 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2713 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2714 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2715 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2716 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2718 if (ndr_flags & NDR_BUFFERS) {
2719 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2720 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
2721 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2722 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2723 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2724 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2725 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2727 return NDR_ERR_SUCCESS;
2730 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
2732 ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2733 ndr->depth++;
2734 ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2735 ndr_print_lsa_String(ndr, "oem_information", &r->oem_information);
2736 ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2737 ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2738 ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2739 ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2740 ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2741 ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2742 ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2743 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2744 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2745 ndr_print_lsa_BinaryString(ndr, "account_lockout", &r->account_lockout);
2746 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2747 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2748 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2749 ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2750 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2751 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2752 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2753 ndr->depth--;
2756 static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
2758 if (ndr_flags & NDR_SCALARS) {
2759 NDR_CHECK(ndr_push_align(ndr, 5));
2760 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2763 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2765 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2766 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2767 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2768 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2769 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2775 if (ndr_flags & NDR_BUFFERS) {
2776 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2777 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2778 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2779 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2780 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2781 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2782 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2784 return NDR_ERR_SUCCESS;
2787 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
2789 if (ndr_flags & NDR_SCALARS) {
2790 NDR_CHECK(ndr_pull_align(ndr, 5));
2791 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2793 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2794 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2795 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2796 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2797 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2798 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2799 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2800 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2802 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2803 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2804 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2806 if (ndr_flags & NDR_BUFFERS) {
2807 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2808 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2809 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2810 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2811 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2812 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2813 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2815 return NDR_ERR_SUCCESS;
2818 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
2820 ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2821 ndr->depth++;
2822 ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2823 ndr_print_uint32(ndr, "rid", r->rid);
2824 ndr_print_uint32(ndr, "attributes", r->attributes);
2825 ndr_print_lsa_String(ndr, "description", &r->description);
2826 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2827 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2828 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2829 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2830 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2831 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2832 ndr_print_uint32(ndr, "unknown5", r->unknown5);
2833 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2834 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2835 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2836 ndr->depth--;
2839 static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
2841 if (ndr_flags & NDR_SCALARS) {
2842 NDR_CHECK(ndr_push_align(ndr, 5));
2843 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2844 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2845 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2846 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2847 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2848 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2854 if (ndr_flags & NDR_BUFFERS) {
2855 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2856 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2857 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2858 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2859 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2860 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2862 return NDR_ERR_SUCCESS;
2865 static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
2867 if (ndr_flags & NDR_SCALARS) {
2868 NDR_CHECK(ndr_pull_align(ndr, 5));
2869 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2870 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2871 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2872 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2873 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2874 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2875 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2876 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2877 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2880 if (ndr_flags & NDR_BUFFERS) {
2881 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2882 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2883 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2884 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2885 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2886 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2888 return NDR_ERR_SUCCESS;
2891 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
2893 ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2894 ndr->depth++;
2895 ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2896 ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2897 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2898 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2899 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2900 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2901 ndr_print_uint32(ndr, "unknown5", r->unknown5);
2902 ndr_print_uint32(ndr, "unknown6", r->unknown6);
2903 ndr_print_uint32(ndr, "unknown7", r->unknown7);
2904 ndr_print_uint32(ndr, "unknown8", r->unknown8);
2905 ndr->depth--;
2908 static enum ndr_err_code ndr_push_netr_DELTA_GROUP_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP_MEMBER *r)
2910 uint32_t cntr_rids_1;
2911 uint32_t cntr_attribs_1;
2912 if (ndr_flags & NDR_SCALARS) {
2913 NDR_CHECK(ndr_push_align(ndr, 5));
2914 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2915 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2918 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2919 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2920 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2922 if (ndr_flags & NDR_BUFFERS) {
2923 if (r->rids) {
2924 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_rids));
2925 for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2929 if (r->attribs) {
2930 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_rids));
2931 for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2932 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2936 return NDR_ERR_SUCCESS;
2939 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
2941 uint32_t _ptr_rids;
2942 uint32_t cntr_rids_1;
2943 TALLOC_CTX *_mem_save_rids_0;
2944 TALLOC_CTX *_mem_save_rids_1;
2945 uint32_t _ptr_attribs;
2946 uint32_t cntr_attribs_1;
2947 TALLOC_CTX *_mem_save_attribs_0;
2948 TALLOC_CTX *_mem_save_attribs_1;
2949 if (ndr_flags & NDR_SCALARS) {
2950 NDR_CHECK(ndr_pull_align(ndr, 5));
2951 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2952 if (_ptr_rids) {
2953 NDR_PULL_ALLOC(ndr, r->rids);
2954 } else {
2955 r->rids = NULL;
2957 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2958 if (_ptr_attribs) {
2959 NDR_PULL_ALLOC(ndr, r->attribs);
2960 } else {
2961 r->attribs = NULL;
2963 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2964 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2965 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2966 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2967 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2969 if (ndr_flags & NDR_BUFFERS) {
2970 if (r->rids) {
2971 _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2972 NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2973 NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2974 NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2975 _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2976 NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2977 for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2978 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2980 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2983 if (r->attribs) {
2984 _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2985 NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2986 NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2987 NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2988 _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2989 NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2990 for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2991 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2993 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2996 if (r->rids) {
2997 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2999 if (r->attribs) {
3000 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
3003 return NDR_ERR_SUCCESS;
3006 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
3008 uint32_t cntr_rids_1;
3009 uint32_t cntr_attribs_1;
3010 ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
3011 ndr->depth++;
3012 ndr_print_ptr(ndr, "rids", r->rids);
3013 ndr->depth++;
3014 if (r->rids) {
3015 ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->num_rids);
3016 ndr->depth++;
3017 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
3018 char *idx_1=NULL;
3019 if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
3020 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
3021 free(idx_1);
3024 ndr->depth--;
3026 ndr->depth--;
3027 ndr_print_ptr(ndr, "attribs", r->attribs);
3028 ndr->depth++;
3029 if (r->attribs) {
3030 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", (int)r->num_rids);
3031 ndr->depth++;
3032 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
3033 char *idx_1=NULL;
3034 if (asprintf(&idx_1, "[%d]", cntr_attribs_1) != -1) {
3035 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
3036 free(idx_1);
3039 ndr->depth--;
3041 ndr->depth--;
3042 ndr_print_uint32(ndr, "num_rids", r->num_rids);
3043 ndr_print_uint32(ndr, "unknown1", r->unknown1);
3044 ndr_print_uint32(ndr, "unknown2", r->unknown2);
3045 ndr_print_uint32(ndr, "unknown3", r->unknown3);
3046 ndr_print_uint32(ndr, "unknown4", r->unknown4);
3047 ndr->depth--;
3050 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
3052 if (ndr_flags & NDR_SCALARS) {
3053 NDR_CHECK(ndr_push_align(ndr, 5));
3054 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
3055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
3056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3057 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3058 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
3059 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3060 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3061 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3067 if (ndr_flags & NDR_BUFFERS) {
3068 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
3069 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3070 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
3071 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3072 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3073 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3075 return NDR_ERR_SUCCESS;
3078 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
3080 if (ndr_flags & NDR_SCALARS) {
3081 NDR_CHECK(ndr_pull_align(ndr, 5));
3082 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
3083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
3084 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3085 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3086 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
3087 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3088 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3089 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3091 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3092 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3093 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3095 if (ndr_flags & NDR_BUFFERS) {
3096 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
3097 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3098 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
3099 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3100 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3101 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3103 return NDR_ERR_SUCCESS;
3106 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
3108 ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
3109 ndr->depth++;
3110 ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
3111 ndr_print_uint32(ndr, "rid", r->rid);
3112 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3113 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3114 ndr_print_lsa_String(ndr, "description", &r->description);
3115 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3116 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3117 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3118 ndr_print_uint32(ndr, "unknown5", r->unknown5);
3119 ndr_print_uint32(ndr, "unknown6", r->unknown6);
3120 ndr_print_uint32(ndr, "unknown7", r->unknown7);
3121 ndr_print_uint32(ndr, "unknown8", r->unknown8);
3122 ndr->depth--;
3125 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS_MEMBER *r)
3127 if (ndr_flags & NDR_SCALARS) {
3128 NDR_CHECK(ndr_push_align(ndr, 5));
3129 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
3130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
3131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
3132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
3133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
3135 if (ndr_flags & NDR_BUFFERS) {
3136 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
3138 return NDR_ERR_SUCCESS;
3141 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
3143 if (ndr_flags & NDR_SCALARS) {
3144 NDR_CHECK(ndr_pull_align(ndr, 5));
3145 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
3146 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
3147 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
3148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
3149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
3151 if (ndr_flags & NDR_BUFFERS) {
3152 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
3154 return NDR_ERR_SUCCESS;
3157 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
3159 ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
3160 ndr->depth++;
3161 ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
3162 ndr_print_uint32(ndr, "unknown1", r->unknown1);
3163 ndr_print_uint32(ndr, "unknown2", r->unknown2);
3164 ndr_print_uint32(ndr, "unknown3", r->unknown3);
3165 ndr_print_uint32(ndr, "unknown4", r->unknown4);
3166 ndr->depth--;
3169 static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
3171 if (ndr_flags & NDR_SCALARS) {
3172 NDR_CHECK(ndr_push_align(ndr, 4));
3173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
3174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
3175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
3176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
3177 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
3178 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
3180 if (ndr_flags & NDR_BUFFERS) {
3182 return NDR_ERR_SUCCESS;
3185 static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
3187 if (ndr_flags & NDR_SCALARS) {
3188 NDR_CHECK(ndr_pull_align(ndr, 4));
3189 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
3190 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
3191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
3192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
3193 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
3194 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
3196 if (ndr_flags & NDR_BUFFERS) {
3198 return NDR_ERR_SUCCESS;
3201 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
3203 ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
3204 ndr->depth++;
3205 ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
3206 ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
3207 ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
3208 ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
3209 ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
3210 ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
3211 ndr->depth--;
3214 static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
3216 uint32_t cntr_eventauditoptions_1;
3217 if (ndr_flags & NDR_SCALARS) {
3218 NDR_CHECK(ndr_push_align(ndr, 5));
3219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
3220 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
3221 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
3222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
3223 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
3224 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3225 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
3226 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3227 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
3228 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
3229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3230 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3231 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3232 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3233 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3234 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3240 if (ndr_flags & NDR_BUFFERS) {
3241 if (r->eventauditoptions) {
3242 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
3243 for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
3247 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3248 if (r->sid) {
3249 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3251 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3252 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3253 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3254 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3255 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3257 return NDR_ERR_SUCCESS;
3260 static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
3262 uint32_t _ptr_eventauditoptions;
3263 uint32_t cntr_eventauditoptions_1;
3264 TALLOC_CTX *_mem_save_eventauditoptions_0;
3265 TALLOC_CTX *_mem_save_eventauditoptions_1;
3266 uint32_t _ptr_sid;
3267 TALLOC_CTX *_mem_save_sid_0;
3268 if (ndr_flags & NDR_SCALARS) {
3269 NDR_CHECK(ndr_pull_align(ndr, 5));
3270 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3271 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3272 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3273 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3275 if (_ptr_eventauditoptions) {
3276 NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3277 } else {
3278 r->eventauditoptions = NULL;
3280 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3281 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3282 if (_ptr_sid) {
3283 NDR_PULL_ALLOC(ndr, r->sid);
3284 } else {
3285 r->sid = NULL;
3287 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3288 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3289 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3290 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3291 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3292 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3293 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3294 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3295 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3297 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3298 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3299 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3301 if (ndr_flags & NDR_BUFFERS) {
3302 if (r->eventauditoptions) {
3303 _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3304 NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3305 NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3306 NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3307 _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3308 NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3309 for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3310 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3315 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3316 if (r->sid) {
3317 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3318 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3319 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3322 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3323 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3324 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3325 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3326 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3327 if (r->eventauditoptions) {
3328 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3331 return NDR_ERR_SUCCESS;
3334 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
3336 uint32_t cntr_eventauditoptions_1;
3337 ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3338 ndr->depth++;
3339 ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3340 ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3341 ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3342 ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3343 ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3344 ndr->depth++;
3345 if (r->eventauditoptions) {
3346 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", (int)r->maxauditeventcount + 1);
3347 ndr->depth++;
3348 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3349 char *idx_1=NULL;
3350 if (asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1) != -1) {
3351 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3352 free(idx_1);
3355 ndr->depth--;
3357 ndr->depth--;
3358 ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3359 ndr_print_ptr(ndr, "sid", r->sid);
3360 ndr->depth++;
3361 if (r->sid) {
3362 ndr_print_dom_sid2(ndr, "sid", r->sid);
3364 ndr->depth--;
3365 ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3366 ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3367 ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3368 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3369 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3370 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3371 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3372 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3373 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3374 ndr_print_uint32(ndr, "unknown5", r->unknown5);
3375 ndr_print_uint32(ndr, "unknown6", r->unknown6);
3376 ndr_print_uint32(ndr, "unknown7", r->unknown7);
3377 ndr_print_uint32(ndr, "unknown8", r->unknown8);
3378 ndr->depth--;
3381 static enum ndr_err_code ndr_push_netr_DELTA_TRUSTED_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3383 uint32_t cntr_controller_names_1;
3384 if (ndr_flags & NDR_SCALARS) {
3385 NDR_CHECK(ndr_push_align(ndr, 5));
3386 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3388 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3390 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3391 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3392 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3393 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3394 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3400 if (ndr_flags & NDR_BUFFERS) {
3401 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3402 if (r->controller_names) {
3403 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_controllers));
3404 for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3405 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3407 for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3408 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3411 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3412 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3413 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3414 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3415 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3417 return NDR_ERR_SUCCESS;
3420 static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
3422 uint32_t _ptr_controller_names;
3423 uint32_t cntr_controller_names_1;
3424 TALLOC_CTX *_mem_save_controller_names_0;
3425 TALLOC_CTX *_mem_save_controller_names_1;
3426 if (ndr_flags & NDR_SCALARS) {
3427 NDR_CHECK(ndr_pull_align(ndr, 5));
3428 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3430 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3431 if (_ptr_controller_names) {
3432 NDR_PULL_ALLOC(ndr, r->controller_names);
3433 } else {
3434 r->controller_names = NULL;
3436 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3437 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3438 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3439 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3440 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3441 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3442 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3443 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3445 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3447 if (ndr_flags & NDR_BUFFERS) {
3448 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3449 if (r->controller_names) {
3450 _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3451 NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3452 NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3453 NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3454 _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3455 NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3456 for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3457 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3459 for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3460 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3465 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3466 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3467 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3468 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3469 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3470 if (r->controller_names) {
3471 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3474 return NDR_ERR_SUCCESS;
3477 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3479 uint32_t cntr_controller_names_1;
3480 ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3481 ndr->depth++;
3482 ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3483 ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3484 ndr_print_ptr(ndr, "controller_names", r->controller_names);
3485 ndr->depth++;
3486 if (r->controller_names) {
3487 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", (int)r->num_controllers);
3488 ndr->depth++;
3489 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3490 char *idx_1=NULL;
3491 if (asprintf(&idx_1, "[%d]", cntr_controller_names_1) != -1) {
3492 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3493 free(idx_1);
3496 ndr->depth--;
3498 ndr->depth--;
3499 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3500 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3501 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3502 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3503 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3504 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3505 ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3506 ndr_print_uint32(ndr, "unknown6", r->unknown6);
3507 ndr_print_uint32(ndr, "unknown7", r->unknown7);
3508 ndr_print_uint32(ndr, "unknown8", r->unknown8);
3509 ndr->depth--;
3512 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_TRUST(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_TRUST *r)
3514 if (ndr_flags & NDR_SCALARS) {
3515 NDR_CHECK(ndr_push_align(ndr, 2));
3516 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3518 if (ndr_flags & NDR_BUFFERS) {
3520 return NDR_ERR_SUCCESS;
3523 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
3525 if (ndr_flags & NDR_SCALARS) {
3526 NDR_CHECK(ndr_pull_align(ndr, 2));
3527 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3529 if (ndr_flags & NDR_BUFFERS) {
3531 return NDR_ERR_SUCCESS;
3534 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
3536 ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3537 ndr->depth++;
3538 ndr_print_uint16(ndr, "unknown", r->unknown);
3539 ndr->depth--;
3542 static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
3544 uint32_t cntr_privilege_attrib_1;
3545 uint32_t cntr_privilege_name_1;
3546 if (ndr_flags & NDR_SCALARS) {
3547 NDR_CHECK(ndr_push_align(ndr, 5));
3548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3550 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3551 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3552 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3555 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3556 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3557 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3558 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3559 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3561 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3563 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3565 if (ndr_flags & NDR_BUFFERS) {
3566 if (r->privilege_attrib) {
3567 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->privilege_entries));
3568 for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3572 if (r->privilege_name) {
3573 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->privilege_entries));
3574 for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3575 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3577 for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3578 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3581 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3582 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3583 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3584 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3585 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3587 return NDR_ERR_SUCCESS;
3590 static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
3592 uint32_t _ptr_privilege_attrib;
3593 uint32_t cntr_privilege_attrib_1;
3594 TALLOC_CTX *_mem_save_privilege_attrib_0;
3595 TALLOC_CTX *_mem_save_privilege_attrib_1;
3596 uint32_t _ptr_privilege_name;
3597 uint32_t cntr_privilege_name_1;
3598 TALLOC_CTX *_mem_save_privilege_name_0;
3599 TALLOC_CTX *_mem_save_privilege_name_1;
3600 if (ndr_flags & NDR_SCALARS) {
3601 NDR_CHECK(ndr_pull_align(ndr, 5));
3602 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3603 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3604 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3605 if (_ptr_privilege_attrib) {
3606 NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3607 } else {
3608 r->privilege_attrib = NULL;
3610 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3611 if (_ptr_privilege_name) {
3612 NDR_PULL_ALLOC(ndr, r->privilege_name);
3613 } else {
3614 r->privilege_name = NULL;
3616 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3617 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3618 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3619 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3620 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3621 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3622 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3623 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3624 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3625 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3626 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3629 if (ndr_flags & NDR_BUFFERS) {
3630 if (r->privilege_attrib) {
3631 _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3632 NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3633 NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3634 NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3635 _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3636 NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3637 for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3638 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3643 if (r->privilege_name) {
3644 _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3645 NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3646 NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3647 NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3648 _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3649 NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3650 for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3651 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3653 for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3654 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3656 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3657 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3659 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3660 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3661 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3662 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3663 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3664 if (r->privilege_attrib) {
3665 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3667 if (r->privilege_name) {
3668 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3671 return NDR_ERR_SUCCESS;
3674 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
3676 uint32_t cntr_privilege_attrib_1;
3677 uint32_t cntr_privilege_name_1;
3678 ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3679 ndr->depth++;
3680 ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3681 ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3682 ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3683 ndr->depth++;
3684 if (r->privilege_attrib) {
3685 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", (int)r->privilege_entries);
3686 ndr->depth++;
3687 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3688 char *idx_1=NULL;
3689 if (asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1) != -1) {
3690 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3691 free(idx_1);
3694 ndr->depth--;
3696 ndr->depth--;
3697 ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3698 ndr->depth++;
3699 if (r->privilege_name) {
3700 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", (int)r->privilege_entries);
3701 ndr->depth++;
3702 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3703 char *idx_1=NULL;
3704 if (asprintf(&idx_1, "[%d]", cntr_privilege_name_1) != -1) {
3705 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3706 free(idx_1);
3709 ndr->depth--;
3711 ndr->depth--;
3712 ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3713 ndr_print_uint32(ndr, "system_flags", r->system_flags);
3714 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3715 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3716 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3717 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3718 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3719 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3720 ndr_print_uint32(ndr, "unknown5", r->unknown5);
3721 ndr_print_uint32(ndr, "unknown6", r->unknown6);
3722 ndr_print_uint32(ndr, "unknown7", r->unknown7);
3723 ndr_print_uint32(ndr, "unknown8", r->unknown8);
3724 ndr->depth--;
3727 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_ACCOUNT *r)
3729 if (ndr_flags & NDR_SCALARS) {
3730 NDR_CHECK(ndr_push_align(ndr, 2));
3731 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3733 if (ndr_flags & NDR_BUFFERS) {
3735 return NDR_ERR_SUCCESS;
3738 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
3740 if (ndr_flags & NDR_SCALARS) {
3741 NDR_CHECK(ndr_pull_align(ndr, 2));
3742 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3744 if (ndr_flags & NDR_BUFFERS) {
3746 return NDR_ERR_SUCCESS;
3749 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
3751 ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3752 ndr->depth++;
3753 ndr_print_uint16(ndr, "unknown", r->unknown);
3754 ndr->depth--;
3757 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_SECRET *r)
3759 if (ndr_flags & NDR_SCALARS) {
3760 NDR_CHECK(ndr_push_align(ndr, 2));
3761 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3763 if (ndr_flags & NDR_BUFFERS) {
3765 return NDR_ERR_SUCCESS;
3768 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
3770 if (ndr_flags & NDR_SCALARS) {
3771 NDR_CHECK(ndr_pull_align(ndr, 2));
3772 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3774 if (ndr_flags & NDR_BUFFERS) {
3776 return NDR_ERR_SUCCESS;
3779 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
3781 ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3782 ndr->depth++;
3783 ndr_print_uint16(ndr, "unknown", r->unknown);
3784 ndr->depth--;
3787 static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
3789 if (ndr_flags & NDR_SCALARS) {
3790 NDR_CHECK(ndr_push_align(ndr, 5));
3791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3793 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3795 if (ndr_flags & NDR_BUFFERS) {
3796 if (r->cipher_data) {
3797 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->maxlen));
3798 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
3799 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->len));
3800 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3803 return NDR_ERR_SUCCESS;
3806 static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
3808 uint32_t _ptr_cipher_data;
3809 TALLOC_CTX *_mem_save_cipher_data_0;
3810 if (ndr_flags & NDR_SCALARS) {
3811 NDR_CHECK(ndr_pull_align(ndr, 5));
3812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3813 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3814 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3815 if (_ptr_cipher_data) {
3816 NDR_PULL_ALLOC(ndr, r->cipher_data);
3817 } else {
3818 r->cipher_data = NULL;
3821 if (ndr_flags & NDR_BUFFERS) {
3822 if (r->cipher_data) {
3823 _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3824 NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3825 NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3826 NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3827 if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3828 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));
3830 NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3831 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3834 if (r->cipher_data) {
3835 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3837 if (r->cipher_data) {
3838 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3841 return NDR_ERR_SUCCESS;
3844 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
3846 ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3847 ndr->depth++;
3848 ndr_print_uint32(ndr, "len", r->len);
3849 ndr_print_uint32(ndr, "maxlen", r->maxlen);
3850 ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3851 ndr->depth++;
3852 if (r->cipher_data) {
3853 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3855 ndr->depth--;
3856 ndr->depth--;
3859 static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
3861 if (ndr_flags & NDR_SCALARS) {
3862 NDR_CHECK(ndr_push_align(ndr, 5));
3863 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3864 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3865 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3866 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3868 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3869 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3870 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3871 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3872 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3878 if (ndr_flags & NDR_BUFFERS) {
3879 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3880 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3881 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3882 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3883 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3884 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3885 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3887 return NDR_ERR_SUCCESS;
3890 static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
3892 if (ndr_flags & NDR_SCALARS) {
3893 NDR_CHECK(ndr_pull_align(ndr, 5));
3894 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3895 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3896 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3897 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3899 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3900 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3901 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3902 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3903 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3905 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3909 if (ndr_flags & NDR_BUFFERS) {
3910 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3911 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3912 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3913 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3914 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3915 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3916 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3918 return NDR_ERR_SUCCESS;
3921 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
3923 ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3924 ndr->depth++;
3925 ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3926 ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3927 ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3928 ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3929 ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3930 ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3931 ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3932 ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3933 ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3934 ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3935 ndr_print_uint32(ndr, "unknown5", r->unknown5);
3936 ndr_print_uint32(ndr, "unknown6", r->unknown6);
3937 ndr_print_uint32(ndr, "unknown7", r->unknown7);
3938 ndr_print_uint32(ndr, "unknown8", r->unknown8);
3939 ndr->depth--;
3942 static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
3944 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3945 return NDR_ERR_SUCCESS;
3948 static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
3950 uint16_t v;
3951 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3952 *r = v;
3953 return NDR_ERR_SUCCESS;
3956 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
3958 const char *val = NULL;
3960 switch (r) {
3961 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3962 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3963 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3964 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3965 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3966 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3967 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3968 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3969 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3970 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3971 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3972 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3973 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3974 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3975 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3976 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3977 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3978 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3979 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3980 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3981 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3982 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3984 ndr_print_enum(ndr, name, "ENUM", val, r);
3987 static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
3989 if (ndr_flags & NDR_SCALARS) {
3990 int level = ndr_push_get_switch_value(ndr, r);
3991 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3992 switch (level) {
3993 case NETR_DELTA_DOMAIN: {
3994 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3995 break; }
3997 case NETR_DELTA_GROUP: {
3998 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3999 break; }
4001 case NETR_DELTA_DELETE_GROUP: {
4002 break; }
4004 case NETR_DELTA_RENAME_GROUP: {
4005 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
4006 break; }
4008 case NETR_DELTA_USER: {
4009 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
4010 break; }
4012 case NETR_DELTA_DELETE_USER: {
4013 break; }
4015 case NETR_DELTA_RENAME_USER: {
4016 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
4017 break; }
4019 case NETR_DELTA_GROUP_MEMBER: {
4020 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
4021 break; }
4023 case NETR_DELTA_ALIAS: {
4024 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
4025 break; }
4027 case NETR_DELTA_DELETE_ALIAS: {
4028 break; }
4030 case NETR_DELTA_RENAME_ALIAS: {
4031 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
4032 break; }
4034 case NETR_DELTA_ALIAS_MEMBER: {
4035 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
4036 break; }
4038 case NETR_DELTA_POLICY: {
4039 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
4040 break; }
4042 case NETR_DELTA_TRUSTED_DOMAIN: {
4043 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
4044 break; }
4046 case NETR_DELTA_DELETE_TRUST: {
4047 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4048 break; }
4050 case NETR_DELTA_ACCOUNT: {
4051 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
4052 break; }
4054 case NETR_DELTA_DELETE_ACCOUNT: {
4055 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4056 break; }
4058 case NETR_DELTA_SECRET: {
4059 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
4060 break; }
4062 case NETR_DELTA_DELETE_SECRET: {
4063 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4064 break; }
4066 case NETR_DELTA_DELETE_GROUP2: {
4067 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
4068 break; }
4070 case NETR_DELTA_DELETE_USER2: {
4071 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
4072 break; }
4074 case NETR_DELTA_MODIFY_COUNT: {
4075 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
4076 break; }
4078 default:
4079 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4082 if (ndr_flags & NDR_BUFFERS) {
4083 int level = ndr_push_get_switch_value(ndr, r);
4084 switch (level) {
4085 case NETR_DELTA_DOMAIN:
4086 if (r->domain) {
4087 NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4089 break;
4091 case NETR_DELTA_GROUP:
4092 if (r->group) {
4093 NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4095 break;
4097 case NETR_DELTA_DELETE_GROUP:
4098 break;
4100 case NETR_DELTA_RENAME_GROUP:
4101 if (r->rename_group) {
4102 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4104 break;
4106 case NETR_DELTA_USER:
4107 if (r->user) {
4108 NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4110 break;
4112 case NETR_DELTA_DELETE_USER:
4113 break;
4115 case NETR_DELTA_RENAME_USER:
4116 if (r->rename_user) {
4117 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4119 break;
4121 case NETR_DELTA_GROUP_MEMBER:
4122 if (r->group_member) {
4123 NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4125 break;
4127 case NETR_DELTA_ALIAS:
4128 if (r->alias) {
4129 NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4131 break;
4133 case NETR_DELTA_DELETE_ALIAS:
4134 break;
4136 case NETR_DELTA_RENAME_ALIAS:
4137 if (r->rename_alias) {
4138 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4140 break;
4142 case NETR_DELTA_ALIAS_MEMBER:
4143 if (r->alias_member) {
4144 NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4146 break;
4148 case NETR_DELTA_POLICY:
4149 if (r->policy) {
4150 NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4152 break;
4154 case NETR_DELTA_TRUSTED_DOMAIN:
4155 if (r->trusted_domain) {
4156 NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4158 break;
4160 case NETR_DELTA_DELETE_TRUST:
4161 break;
4163 case NETR_DELTA_ACCOUNT:
4164 if (r->account) {
4165 NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4167 break;
4169 case NETR_DELTA_DELETE_ACCOUNT:
4170 break;
4172 case NETR_DELTA_SECRET:
4173 if (r->secret) {
4174 NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4176 break;
4178 case NETR_DELTA_DELETE_SECRET:
4179 break;
4181 case NETR_DELTA_DELETE_GROUP2:
4182 if (r->delete_group) {
4183 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4185 break;
4187 case NETR_DELTA_DELETE_USER2:
4188 if (r->delete_user) {
4189 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4191 break;
4193 case NETR_DELTA_MODIFY_COUNT:
4194 if (r->modified_count) {
4195 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
4197 break;
4199 default:
4200 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4203 return NDR_ERR_SUCCESS;
4206 static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
4208 int level;
4209 uint16_t _level;
4210 TALLOC_CTX *_mem_save_domain_0;
4211 TALLOC_CTX *_mem_save_group_0;
4212 TALLOC_CTX *_mem_save_rename_group_0;
4213 TALLOC_CTX *_mem_save_user_0;
4214 TALLOC_CTX *_mem_save_rename_user_0;
4215 TALLOC_CTX *_mem_save_group_member_0;
4216 TALLOC_CTX *_mem_save_alias_0;
4217 TALLOC_CTX *_mem_save_rename_alias_0;
4218 TALLOC_CTX *_mem_save_alias_member_0;
4219 TALLOC_CTX *_mem_save_policy_0;
4220 TALLOC_CTX *_mem_save_trusted_domain_0;
4221 TALLOC_CTX *_mem_save_account_0;
4222 TALLOC_CTX *_mem_save_secret_0;
4223 TALLOC_CTX *_mem_save_delete_group_0;
4224 TALLOC_CTX *_mem_save_delete_user_0;
4225 TALLOC_CTX *_mem_save_modified_count_0;
4226 level = ndr_pull_get_switch_value(ndr, r);
4227 if (ndr_flags & NDR_SCALARS) {
4228 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4229 if (_level != level) {
4230 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4232 switch (level) {
4233 case NETR_DELTA_DOMAIN: {
4234 uint32_t _ptr_domain;
4235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
4236 if (_ptr_domain) {
4237 NDR_PULL_ALLOC(ndr, r->domain);
4238 } else {
4239 r->domain = NULL;
4241 break; }
4243 case NETR_DELTA_GROUP: {
4244 uint32_t _ptr_group;
4245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
4246 if (_ptr_group) {
4247 NDR_PULL_ALLOC(ndr, r->group);
4248 } else {
4249 r->group = NULL;
4251 break; }
4253 case NETR_DELTA_DELETE_GROUP: {
4254 break; }
4256 case NETR_DELTA_RENAME_GROUP: {
4257 uint32_t _ptr_rename_group;
4258 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4259 if (_ptr_rename_group) {
4260 NDR_PULL_ALLOC(ndr, r->rename_group);
4261 } else {
4262 r->rename_group = NULL;
4264 break; }
4266 case NETR_DELTA_USER: {
4267 uint32_t _ptr_user;
4268 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4269 if (_ptr_user) {
4270 NDR_PULL_ALLOC(ndr, r->user);
4271 } else {
4272 r->user = NULL;
4274 break; }
4276 case NETR_DELTA_DELETE_USER: {
4277 break; }
4279 case NETR_DELTA_RENAME_USER: {
4280 uint32_t _ptr_rename_user;
4281 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4282 if (_ptr_rename_user) {
4283 NDR_PULL_ALLOC(ndr, r->rename_user);
4284 } else {
4285 r->rename_user = NULL;
4287 break; }
4289 case NETR_DELTA_GROUP_MEMBER: {
4290 uint32_t _ptr_group_member;
4291 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4292 if (_ptr_group_member) {
4293 NDR_PULL_ALLOC(ndr, r->group_member);
4294 } else {
4295 r->group_member = NULL;
4297 break; }
4299 case NETR_DELTA_ALIAS: {
4300 uint32_t _ptr_alias;
4301 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4302 if (_ptr_alias) {
4303 NDR_PULL_ALLOC(ndr, r->alias);
4304 } else {
4305 r->alias = NULL;
4307 break; }
4309 case NETR_DELTA_DELETE_ALIAS: {
4310 break; }
4312 case NETR_DELTA_RENAME_ALIAS: {
4313 uint32_t _ptr_rename_alias;
4314 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4315 if (_ptr_rename_alias) {
4316 NDR_PULL_ALLOC(ndr, r->rename_alias);
4317 } else {
4318 r->rename_alias = NULL;
4320 break; }
4322 case NETR_DELTA_ALIAS_MEMBER: {
4323 uint32_t _ptr_alias_member;
4324 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4325 if (_ptr_alias_member) {
4326 NDR_PULL_ALLOC(ndr, r->alias_member);
4327 } else {
4328 r->alias_member = NULL;
4330 break; }
4332 case NETR_DELTA_POLICY: {
4333 uint32_t _ptr_policy;
4334 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4335 if (_ptr_policy) {
4336 NDR_PULL_ALLOC(ndr, r->policy);
4337 } else {
4338 r->policy = NULL;
4340 break; }
4342 case NETR_DELTA_TRUSTED_DOMAIN: {
4343 uint32_t _ptr_trusted_domain;
4344 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4345 if (_ptr_trusted_domain) {
4346 NDR_PULL_ALLOC(ndr, r->trusted_domain);
4347 } else {
4348 r->trusted_domain = NULL;
4350 break; }
4352 case NETR_DELTA_DELETE_TRUST: {
4353 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4354 break; }
4356 case NETR_DELTA_ACCOUNT: {
4357 uint32_t _ptr_account;
4358 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4359 if (_ptr_account) {
4360 NDR_PULL_ALLOC(ndr, r->account);
4361 } else {
4362 r->account = NULL;
4364 break; }
4366 case NETR_DELTA_DELETE_ACCOUNT: {
4367 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4368 break; }
4370 case NETR_DELTA_SECRET: {
4371 uint32_t _ptr_secret;
4372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4373 if (_ptr_secret) {
4374 NDR_PULL_ALLOC(ndr, r->secret);
4375 } else {
4376 r->secret = NULL;
4378 break; }
4380 case NETR_DELTA_DELETE_SECRET: {
4381 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4382 break; }
4384 case NETR_DELTA_DELETE_GROUP2: {
4385 uint32_t _ptr_delete_group;
4386 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4387 if (_ptr_delete_group) {
4388 NDR_PULL_ALLOC(ndr, r->delete_group);
4389 } else {
4390 r->delete_group = NULL;
4392 break; }
4394 case NETR_DELTA_DELETE_USER2: {
4395 uint32_t _ptr_delete_user;
4396 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4397 if (_ptr_delete_user) {
4398 NDR_PULL_ALLOC(ndr, r->delete_user);
4399 } else {
4400 r->delete_user = NULL;
4402 break; }
4404 case NETR_DELTA_MODIFY_COUNT: {
4405 uint32_t _ptr_modified_count;
4406 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4407 if (_ptr_modified_count) {
4408 NDR_PULL_ALLOC(ndr, r->modified_count);
4409 } else {
4410 r->modified_count = NULL;
4412 break; }
4414 default:
4415 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4418 if (ndr_flags & NDR_BUFFERS) {
4419 switch (level) {
4420 case NETR_DELTA_DOMAIN:
4421 if (r->domain) {
4422 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4423 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4424 NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4427 break;
4429 case NETR_DELTA_GROUP:
4430 if (r->group) {
4431 _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4432 NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4433 NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4434 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4436 break;
4438 case NETR_DELTA_DELETE_GROUP:
4439 break;
4441 case NETR_DELTA_RENAME_GROUP:
4442 if (r->rename_group) {
4443 _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4444 NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4445 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4446 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4448 break;
4450 case NETR_DELTA_USER:
4451 if (r->user) {
4452 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4453 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4454 NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4457 break;
4459 case NETR_DELTA_DELETE_USER:
4460 break;
4462 case NETR_DELTA_RENAME_USER:
4463 if (r->rename_user) {
4464 _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4465 NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4466 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4467 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4469 break;
4471 case NETR_DELTA_GROUP_MEMBER:
4472 if (r->group_member) {
4473 _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4474 NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4475 NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4478 break;
4480 case NETR_DELTA_ALIAS:
4481 if (r->alias) {
4482 _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4483 NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4484 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4485 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4487 break;
4489 case NETR_DELTA_DELETE_ALIAS:
4490 break;
4492 case NETR_DELTA_RENAME_ALIAS:
4493 if (r->rename_alias) {
4494 _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4495 NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4496 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4499 break;
4501 case NETR_DELTA_ALIAS_MEMBER:
4502 if (r->alias_member) {
4503 _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4504 NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4505 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4508 break;
4510 case NETR_DELTA_POLICY:
4511 if (r->policy) {
4512 _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4513 NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4514 NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4515 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4517 break;
4519 case NETR_DELTA_TRUSTED_DOMAIN:
4520 if (r->trusted_domain) {
4521 _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4522 NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4523 NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4526 break;
4528 case NETR_DELTA_DELETE_TRUST:
4529 break;
4531 case NETR_DELTA_ACCOUNT:
4532 if (r->account) {
4533 _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4534 NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4535 NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4538 break;
4540 case NETR_DELTA_DELETE_ACCOUNT:
4541 break;
4543 case NETR_DELTA_SECRET:
4544 if (r->secret) {
4545 _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4546 NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4547 NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4550 break;
4552 case NETR_DELTA_DELETE_SECRET:
4553 break;
4555 case NETR_DELTA_DELETE_GROUP2:
4556 if (r->delete_group) {
4557 _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4558 NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4559 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4562 break;
4564 case NETR_DELTA_DELETE_USER2:
4565 if (r->delete_user) {
4566 _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4567 NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4568 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4571 break;
4573 case NETR_DELTA_MODIFY_COUNT:
4574 if (r->modified_count) {
4575 _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4576 NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4577 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4580 break;
4582 default:
4583 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4586 return NDR_ERR_SUCCESS;
4589 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
4591 int level;
4592 level = ndr_print_get_switch_value(ndr, r);
4593 ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4594 switch (level) {
4595 case NETR_DELTA_DOMAIN:
4596 ndr_print_ptr(ndr, "domain", r->domain);
4597 ndr->depth++;
4598 if (r->domain) {
4599 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4601 ndr->depth--;
4602 break;
4604 case NETR_DELTA_GROUP:
4605 ndr_print_ptr(ndr, "group", r->group);
4606 ndr->depth++;
4607 if (r->group) {
4608 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4610 ndr->depth--;
4611 break;
4613 case NETR_DELTA_DELETE_GROUP:
4614 break;
4616 case NETR_DELTA_RENAME_GROUP:
4617 ndr_print_ptr(ndr, "rename_group", r->rename_group);
4618 ndr->depth++;
4619 if (r->rename_group) {
4620 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4622 ndr->depth--;
4623 break;
4625 case NETR_DELTA_USER:
4626 ndr_print_ptr(ndr, "user", r->user);
4627 ndr->depth++;
4628 if (r->user) {
4629 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4631 ndr->depth--;
4632 break;
4634 case NETR_DELTA_DELETE_USER:
4635 break;
4637 case NETR_DELTA_RENAME_USER:
4638 ndr_print_ptr(ndr, "rename_user", r->rename_user);
4639 ndr->depth++;
4640 if (r->rename_user) {
4641 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4643 ndr->depth--;
4644 break;
4646 case NETR_DELTA_GROUP_MEMBER:
4647 ndr_print_ptr(ndr, "group_member", r->group_member);
4648 ndr->depth++;
4649 if (r->group_member) {
4650 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4652 ndr->depth--;
4653 break;
4655 case NETR_DELTA_ALIAS:
4656 ndr_print_ptr(ndr, "alias", r->alias);
4657 ndr->depth++;
4658 if (r->alias) {
4659 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4661 ndr->depth--;
4662 break;
4664 case NETR_DELTA_DELETE_ALIAS:
4665 break;
4667 case NETR_DELTA_RENAME_ALIAS:
4668 ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4669 ndr->depth++;
4670 if (r->rename_alias) {
4671 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4673 ndr->depth--;
4674 break;
4676 case NETR_DELTA_ALIAS_MEMBER:
4677 ndr_print_ptr(ndr, "alias_member", r->alias_member);
4678 ndr->depth++;
4679 if (r->alias_member) {
4680 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4682 ndr->depth--;
4683 break;
4685 case NETR_DELTA_POLICY:
4686 ndr_print_ptr(ndr, "policy", r->policy);
4687 ndr->depth++;
4688 if (r->policy) {
4689 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4691 ndr->depth--;
4692 break;
4694 case NETR_DELTA_TRUSTED_DOMAIN:
4695 ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4696 ndr->depth++;
4697 if (r->trusted_domain) {
4698 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4700 ndr->depth--;
4701 break;
4703 case NETR_DELTA_DELETE_TRUST:
4704 ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4705 break;
4707 case NETR_DELTA_ACCOUNT:
4708 ndr_print_ptr(ndr, "account", r->account);
4709 ndr->depth++;
4710 if (r->account) {
4711 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4713 ndr->depth--;
4714 break;
4716 case NETR_DELTA_DELETE_ACCOUNT:
4717 ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4718 break;
4720 case NETR_DELTA_SECRET:
4721 ndr_print_ptr(ndr, "secret", r->secret);
4722 ndr->depth++;
4723 if (r->secret) {
4724 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4726 ndr->depth--;
4727 break;
4729 case NETR_DELTA_DELETE_SECRET:
4730 ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4731 break;
4733 case NETR_DELTA_DELETE_GROUP2:
4734 ndr_print_ptr(ndr, "delete_group", r->delete_group);
4735 ndr->depth++;
4736 if (r->delete_group) {
4737 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4739 ndr->depth--;
4740 break;
4742 case NETR_DELTA_DELETE_USER2:
4743 ndr_print_ptr(ndr, "delete_user", r->delete_user);
4744 ndr->depth++;
4745 if (r->delete_user) {
4746 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4748 ndr->depth--;
4749 break;
4751 case NETR_DELTA_MODIFY_COUNT:
4752 ndr_print_ptr(ndr, "modified_count", r->modified_count);
4753 ndr->depth++;
4754 if (r->modified_count) {
4755 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4757 ndr->depth--;
4758 break;
4760 default:
4761 ndr_print_bad_level(ndr, name, level);
4765 static enum ndr_err_code ndr_push_netr_DELTA_ID_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_ID_UNION *r)
4767 if (ndr_flags & NDR_SCALARS) {
4768 int level = ndr_push_get_switch_value(ndr, r);
4769 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4770 switch (level) {
4771 case NETR_DELTA_DOMAIN: {
4772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4773 break; }
4775 case NETR_DELTA_GROUP: {
4776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4777 break; }
4779 case NETR_DELTA_DELETE_GROUP: {
4780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4781 break; }
4783 case NETR_DELTA_RENAME_GROUP: {
4784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4785 break; }
4787 case NETR_DELTA_USER: {
4788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4789 break; }
4791 case NETR_DELTA_DELETE_USER: {
4792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4793 break; }
4795 case NETR_DELTA_RENAME_USER: {
4796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4797 break; }
4799 case NETR_DELTA_GROUP_MEMBER: {
4800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4801 break; }
4803 case NETR_DELTA_ALIAS: {
4804 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4805 break; }
4807 case NETR_DELTA_DELETE_ALIAS: {
4808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4809 break; }
4811 case NETR_DELTA_RENAME_ALIAS: {
4812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4813 break; }
4815 case NETR_DELTA_ALIAS_MEMBER: {
4816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4817 break; }
4819 case NETR_DELTA_POLICY: {
4820 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4821 break; }
4823 case NETR_DELTA_TRUSTED_DOMAIN: {
4824 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4825 break; }
4827 case NETR_DELTA_DELETE_TRUST: {
4828 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4829 break; }
4831 case NETR_DELTA_ACCOUNT: {
4832 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4833 break; }
4835 case NETR_DELTA_DELETE_ACCOUNT: {
4836 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4837 break; }
4839 case NETR_DELTA_SECRET: {
4840 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4841 break; }
4843 case NETR_DELTA_DELETE_SECRET: {
4844 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4845 break; }
4847 case NETR_DELTA_DELETE_GROUP2: {
4848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4849 break; }
4851 case NETR_DELTA_DELETE_USER2: {
4852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4853 break; }
4855 case NETR_DELTA_MODIFY_COUNT: {
4856 break; }
4858 default:
4859 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4862 if (ndr_flags & NDR_BUFFERS) {
4863 int level = ndr_push_get_switch_value(ndr, r);
4864 switch (level) {
4865 case NETR_DELTA_DOMAIN:
4866 break;
4868 case NETR_DELTA_GROUP:
4869 break;
4871 case NETR_DELTA_DELETE_GROUP:
4872 break;
4874 case NETR_DELTA_RENAME_GROUP:
4875 break;
4877 case NETR_DELTA_USER:
4878 break;
4880 case NETR_DELTA_DELETE_USER:
4881 break;
4883 case NETR_DELTA_RENAME_USER:
4884 break;
4886 case NETR_DELTA_GROUP_MEMBER:
4887 break;
4889 case NETR_DELTA_ALIAS:
4890 break;
4892 case NETR_DELTA_DELETE_ALIAS:
4893 break;
4895 case NETR_DELTA_RENAME_ALIAS:
4896 break;
4898 case NETR_DELTA_ALIAS_MEMBER:
4899 break;
4901 case NETR_DELTA_POLICY:
4902 if (r->sid) {
4903 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4905 break;
4907 case NETR_DELTA_TRUSTED_DOMAIN:
4908 if (r->sid) {
4909 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4911 break;
4913 case NETR_DELTA_DELETE_TRUST:
4914 if (r->sid) {
4915 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4917 break;
4919 case NETR_DELTA_ACCOUNT:
4920 if (r->sid) {
4921 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4923 break;
4925 case NETR_DELTA_DELETE_ACCOUNT:
4926 if (r->sid) {
4927 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4929 break;
4931 case NETR_DELTA_SECRET:
4932 if (r->name) {
4933 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4934 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4935 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4936 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4938 break;
4940 case NETR_DELTA_DELETE_SECRET:
4941 if (r->name) {
4942 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4943 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4944 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4945 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4947 break;
4949 case NETR_DELTA_DELETE_GROUP2:
4950 break;
4952 case NETR_DELTA_DELETE_USER2:
4953 break;
4955 case NETR_DELTA_MODIFY_COUNT:
4956 break;
4958 default:
4959 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4962 return NDR_ERR_SUCCESS;
4965 static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
4967 int level;
4968 uint16_t _level;
4969 TALLOC_CTX *_mem_save_sid_0;
4970 TALLOC_CTX *_mem_save_name_0;
4971 level = ndr_pull_get_switch_value(ndr, r);
4972 if (ndr_flags & NDR_SCALARS) {
4973 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4974 if (_level != level) {
4975 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4977 switch (level) {
4978 case NETR_DELTA_DOMAIN: {
4979 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4980 break; }
4982 case NETR_DELTA_GROUP: {
4983 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4984 break; }
4986 case NETR_DELTA_DELETE_GROUP: {
4987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4988 break; }
4990 case NETR_DELTA_RENAME_GROUP: {
4991 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4992 break; }
4994 case NETR_DELTA_USER: {
4995 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4996 break; }
4998 case NETR_DELTA_DELETE_USER: {
4999 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5000 break; }
5002 case NETR_DELTA_RENAME_USER: {
5003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5004 break; }
5006 case NETR_DELTA_GROUP_MEMBER: {
5007 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5008 break; }
5010 case NETR_DELTA_ALIAS: {
5011 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5012 break; }
5014 case NETR_DELTA_DELETE_ALIAS: {
5015 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5016 break; }
5018 case NETR_DELTA_RENAME_ALIAS: {
5019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5020 break; }
5022 case NETR_DELTA_ALIAS_MEMBER: {
5023 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5024 break; }
5026 case NETR_DELTA_POLICY: {
5027 uint32_t _ptr_sid;
5028 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5029 if (_ptr_sid) {
5030 NDR_PULL_ALLOC(ndr, r->sid);
5031 } else {
5032 r->sid = NULL;
5034 break; }
5036 case NETR_DELTA_TRUSTED_DOMAIN: {
5037 uint32_t _ptr_sid;
5038 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5039 if (_ptr_sid) {
5040 NDR_PULL_ALLOC(ndr, r->sid);
5041 } else {
5042 r->sid = NULL;
5044 break; }
5046 case NETR_DELTA_DELETE_TRUST: {
5047 uint32_t _ptr_sid;
5048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5049 if (_ptr_sid) {
5050 NDR_PULL_ALLOC(ndr, r->sid);
5051 } else {
5052 r->sid = NULL;
5054 break; }
5056 case NETR_DELTA_ACCOUNT: {
5057 uint32_t _ptr_sid;
5058 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5059 if (_ptr_sid) {
5060 NDR_PULL_ALLOC(ndr, r->sid);
5061 } else {
5062 r->sid = NULL;
5064 break; }
5066 case NETR_DELTA_DELETE_ACCOUNT: {
5067 uint32_t _ptr_sid;
5068 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5069 if (_ptr_sid) {
5070 NDR_PULL_ALLOC(ndr, r->sid);
5071 } else {
5072 r->sid = NULL;
5074 break; }
5076 case NETR_DELTA_SECRET: {
5077 uint32_t _ptr_name;
5078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5079 if (_ptr_name) {
5080 NDR_PULL_ALLOC(ndr, r->name);
5081 } else {
5082 r->name = NULL;
5084 break; }
5086 case NETR_DELTA_DELETE_SECRET: {
5087 uint32_t _ptr_name;
5088 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5089 if (_ptr_name) {
5090 NDR_PULL_ALLOC(ndr, r->name);
5091 } else {
5092 r->name = NULL;
5094 break; }
5096 case NETR_DELTA_DELETE_GROUP2: {
5097 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5098 break; }
5100 case NETR_DELTA_DELETE_USER2: {
5101 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5102 break; }
5104 case NETR_DELTA_MODIFY_COUNT: {
5105 break; }
5107 default:
5108 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5111 if (ndr_flags & NDR_BUFFERS) {
5112 switch (level) {
5113 case NETR_DELTA_DOMAIN:
5114 break;
5116 case NETR_DELTA_GROUP:
5117 break;
5119 case NETR_DELTA_DELETE_GROUP:
5120 break;
5122 case NETR_DELTA_RENAME_GROUP:
5123 break;
5125 case NETR_DELTA_USER:
5126 break;
5128 case NETR_DELTA_DELETE_USER:
5129 break;
5131 case NETR_DELTA_RENAME_USER:
5132 break;
5134 case NETR_DELTA_GROUP_MEMBER:
5135 break;
5137 case NETR_DELTA_ALIAS:
5138 break;
5140 case NETR_DELTA_DELETE_ALIAS:
5141 break;
5143 case NETR_DELTA_RENAME_ALIAS:
5144 break;
5146 case NETR_DELTA_ALIAS_MEMBER:
5147 break;
5149 case NETR_DELTA_POLICY:
5150 if (r->sid) {
5151 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5152 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5153 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5154 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5156 break;
5158 case NETR_DELTA_TRUSTED_DOMAIN:
5159 if (r->sid) {
5160 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5161 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5162 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5163 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5165 break;
5167 case NETR_DELTA_DELETE_TRUST:
5168 if (r->sid) {
5169 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5170 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5171 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5172 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5174 break;
5176 case NETR_DELTA_ACCOUNT:
5177 if (r->sid) {
5178 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5179 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5180 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5181 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5183 break;
5185 case NETR_DELTA_DELETE_ACCOUNT:
5186 if (r->sid) {
5187 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5188 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5189 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5190 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5192 break;
5194 case NETR_DELTA_SECRET:
5195 if (r->name) {
5196 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5197 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5198 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5199 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5200 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5201 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));
5203 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5204 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5207 break;
5209 case NETR_DELTA_DELETE_SECRET:
5210 if (r->name) {
5211 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5212 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5213 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5214 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5215 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5216 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));
5218 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5219 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5222 break;
5224 case NETR_DELTA_DELETE_GROUP2:
5225 break;
5227 case NETR_DELTA_DELETE_USER2:
5228 break;
5230 case NETR_DELTA_MODIFY_COUNT:
5231 break;
5233 default:
5234 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5237 return NDR_ERR_SUCCESS;
5240 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
5242 int level;
5243 level = ndr_print_get_switch_value(ndr, r);
5244 ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
5245 switch (level) {
5246 case NETR_DELTA_DOMAIN:
5247 ndr_print_uint32(ndr, "rid", r->rid);
5248 break;
5250 case NETR_DELTA_GROUP:
5251 ndr_print_uint32(ndr, "rid", r->rid);
5252 break;
5254 case NETR_DELTA_DELETE_GROUP:
5255 ndr_print_uint32(ndr, "rid", r->rid);
5256 break;
5258 case NETR_DELTA_RENAME_GROUP:
5259 ndr_print_uint32(ndr, "rid", r->rid);
5260 break;
5262 case NETR_DELTA_USER:
5263 ndr_print_uint32(ndr, "rid", r->rid);
5264 break;
5266 case NETR_DELTA_DELETE_USER:
5267 ndr_print_uint32(ndr, "rid", r->rid);
5268 break;
5270 case NETR_DELTA_RENAME_USER:
5271 ndr_print_uint32(ndr, "rid", r->rid);
5272 break;
5274 case NETR_DELTA_GROUP_MEMBER:
5275 ndr_print_uint32(ndr, "rid", r->rid);
5276 break;
5278 case NETR_DELTA_ALIAS:
5279 ndr_print_uint32(ndr, "rid", r->rid);
5280 break;
5282 case NETR_DELTA_DELETE_ALIAS:
5283 ndr_print_uint32(ndr, "rid", r->rid);
5284 break;
5286 case NETR_DELTA_RENAME_ALIAS:
5287 ndr_print_uint32(ndr, "rid", r->rid);
5288 break;
5290 case NETR_DELTA_ALIAS_MEMBER:
5291 ndr_print_uint32(ndr, "rid", r->rid);
5292 break;
5294 case NETR_DELTA_POLICY:
5295 ndr_print_ptr(ndr, "sid", r->sid);
5296 ndr->depth++;
5297 if (r->sid) {
5298 ndr_print_dom_sid2(ndr, "sid", r->sid);
5300 ndr->depth--;
5301 break;
5303 case NETR_DELTA_TRUSTED_DOMAIN:
5304 ndr_print_ptr(ndr, "sid", r->sid);
5305 ndr->depth++;
5306 if (r->sid) {
5307 ndr_print_dom_sid2(ndr, "sid", r->sid);
5309 ndr->depth--;
5310 break;
5312 case NETR_DELTA_DELETE_TRUST:
5313 ndr_print_ptr(ndr, "sid", r->sid);
5314 ndr->depth++;
5315 if (r->sid) {
5316 ndr_print_dom_sid2(ndr, "sid", r->sid);
5318 ndr->depth--;
5319 break;
5321 case NETR_DELTA_ACCOUNT:
5322 ndr_print_ptr(ndr, "sid", r->sid);
5323 ndr->depth++;
5324 if (r->sid) {
5325 ndr_print_dom_sid2(ndr, "sid", r->sid);
5327 ndr->depth--;
5328 break;
5330 case NETR_DELTA_DELETE_ACCOUNT:
5331 ndr_print_ptr(ndr, "sid", r->sid);
5332 ndr->depth++;
5333 if (r->sid) {
5334 ndr_print_dom_sid2(ndr, "sid", r->sid);
5336 ndr->depth--;
5337 break;
5339 case NETR_DELTA_SECRET:
5340 ndr_print_ptr(ndr, "name", r->name);
5341 ndr->depth++;
5342 if (r->name) {
5343 ndr_print_string(ndr, "name", r->name);
5345 ndr->depth--;
5346 break;
5348 case NETR_DELTA_DELETE_SECRET:
5349 ndr_print_ptr(ndr, "name", r->name);
5350 ndr->depth++;
5351 if (r->name) {
5352 ndr_print_string(ndr, "name", r->name);
5354 ndr->depth--;
5355 break;
5357 case NETR_DELTA_DELETE_GROUP2:
5358 ndr_print_uint32(ndr, "rid", r->rid);
5359 break;
5361 case NETR_DELTA_DELETE_USER2:
5362 ndr_print_uint32(ndr, "rid", r->rid);
5363 break;
5365 case NETR_DELTA_MODIFY_COUNT:
5366 break;
5368 default:
5369 ndr_print_bad_level(ndr, name, level);
5373 static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
5375 if (ndr_flags & NDR_SCALARS) {
5376 NDR_CHECK(ndr_push_align(ndr, 5));
5377 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5378 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5379 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5380 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5381 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5383 if (ndr_flags & NDR_BUFFERS) {
5384 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5385 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5387 return NDR_ERR_SUCCESS;
5390 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
5392 if (ndr_flags & NDR_SCALARS) {
5393 NDR_CHECK(ndr_pull_align(ndr, 5));
5394 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5395 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5396 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5397 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5398 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5400 if (ndr_flags & NDR_BUFFERS) {
5401 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5402 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5404 return NDR_ERR_SUCCESS;
5407 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
5409 ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5410 ndr->depth++;
5411 ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5412 ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5413 ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5414 ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5415 ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5416 ndr->depth--;
5419 static enum ndr_err_code ndr_push_netr_DELTA_ENUM_ARRAY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM_ARRAY *r)
5421 uint32_t cntr_delta_enum_1;
5422 if (ndr_flags & NDR_SCALARS) {
5423 NDR_CHECK(ndr_push_align(ndr, 5));
5424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5425 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5427 if (ndr_flags & NDR_BUFFERS) {
5428 if (r->delta_enum) {
5429 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_deltas));
5430 for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5431 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5433 for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5434 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5438 return NDR_ERR_SUCCESS;
5441 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
5443 uint32_t _ptr_delta_enum;
5444 uint32_t cntr_delta_enum_1;
5445 TALLOC_CTX *_mem_save_delta_enum_0;
5446 TALLOC_CTX *_mem_save_delta_enum_1;
5447 if (ndr_flags & NDR_SCALARS) {
5448 NDR_CHECK(ndr_pull_align(ndr, 5));
5449 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5450 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5451 if (_ptr_delta_enum) {
5452 NDR_PULL_ALLOC(ndr, r->delta_enum);
5453 } else {
5454 r->delta_enum = NULL;
5457 if (ndr_flags & NDR_BUFFERS) {
5458 if (r->delta_enum) {
5459 _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5460 NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5461 NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5462 NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5463 _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5464 NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5465 for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5466 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5468 for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5469 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5474 if (r->delta_enum) {
5475 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5478 return NDR_ERR_SUCCESS;
5481 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
5483 uint32_t cntr_delta_enum_1;
5484 ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5485 ndr->depth++;
5486 ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5487 ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5488 ndr->depth++;
5489 if (r->delta_enum) {
5490 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", (int)r->num_deltas);
5491 ndr->depth++;
5492 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5493 char *idx_1=NULL;
5494 if (asprintf(&idx_1, "[%d]", cntr_delta_enum_1) != -1) {
5495 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5496 free(idx_1);
5499 ndr->depth--;
5501 ndr->depth--;
5502 ndr->depth--;
5505 static enum ndr_err_code ndr_push_netr_UAS_INFO_0(struct ndr_push *ndr, int ndr_flags, const struct netr_UAS_INFO_0 *r)
5508 uint32_t _flags_save_STRUCT = ndr->flags;
5509 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5510 if (ndr_flags & NDR_SCALARS) {
5511 NDR_CHECK(ndr_push_align(ndr, 4));
5512 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5516 if (ndr_flags & NDR_BUFFERS) {
5518 ndr->flags = _flags_save_STRUCT;
5520 return NDR_ERR_SUCCESS;
5523 static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
5526 uint32_t _flags_save_STRUCT = ndr->flags;
5527 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5528 if (ndr_flags & NDR_SCALARS) {
5529 NDR_CHECK(ndr_pull_align(ndr, 4));
5530 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5531 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5534 if (ndr_flags & NDR_BUFFERS) {
5536 ndr->flags = _flags_save_STRUCT;
5538 return NDR_ERR_SUCCESS;
5541 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
5543 ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5545 uint32_t _flags_save_STRUCT = ndr->flags;
5546 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5547 ndr->depth++;
5548 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5549 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5550 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5551 ndr->depth--;
5552 ndr->flags = _flags_save_STRUCT;
5556 static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
5558 if (ndr_flags & NDR_SCALARS) {
5559 NDR_CHECK(ndr_push_align(ndr, 4));
5561 uint32_t _flags_save_DATA_BLOB = ndr->flags;
5562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5563 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5564 ndr->flags = _flags_save_DATA_BLOB;
5567 if (ndr_flags & NDR_BUFFERS) {
5569 return NDR_ERR_SUCCESS;
5572 static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
5574 if (ndr_flags & NDR_SCALARS) {
5575 NDR_CHECK(ndr_pull_align(ndr, 4));
5577 uint32_t _flags_save_DATA_BLOB = ndr->flags;
5578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5579 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5580 ndr->flags = _flags_save_DATA_BLOB;
5583 if (ndr_flags & NDR_BUFFERS) {
5585 return NDR_ERR_SUCCESS;
5588 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
5590 ndr_print_struct(ndr, name, "netr_AccountBuffer");
5591 ndr->depth++;
5592 ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5593 ndr->depth--;
5596 static enum ndr_err_code ndr_push_netr_InfoFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5599 return NDR_ERR_SUCCESS;
5602 static enum ndr_err_code ndr_pull_netr_InfoFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5604 uint32_t v;
5605 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5606 *r = v;
5607 return NDR_ERR_SUCCESS;
5610 _PUBLIC_ void ndr_print_netr_InfoFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5612 ndr_print_uint32(ndr, name, r);
5613 ndr->depth++;
5614 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_REPLICATION_NEEDED", NETLOGON_REPLICATION_NEEDED, r);
5615 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_REPLICATION_IN_PROGRESS", NETLOGON_REPLICATION_IN_PROGRESS, r);
5616 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_FULL_SYNC_REPLICATION", NETLOGON_FULL_SYNC_REPLICATION, r);
5617 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_REDO_NEEDED", NETLOGON_REDO_NEEDED, r);
5618 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_HAS_IP", NETLOGON_HAS_IP, r);
5619 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_HAS_TIMESERV", NETLOGON_HAS_TIMESERV, r);
5620 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_DNS_UPDATE_FAILURE", NETLOGON_DNS_UPDATE_FAILURE, r);
5621 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_VERIFY_STATUS_RETURNED", NETLOGON_VERIFY_STATUS_RETURNED, r);
5622 ndr->depth--;
5625 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_1(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_1 *r)
5627 if (ndr_flags & NDR_SCALARS) {
5628 NDR_CHECK(ndr_push_align(ndr, 4));
5629 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5630 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->pdc_connection_status));
5632 if (ndr_flags & NDR_BUFFERS) {
5634 return NDR_ERR_SUCCESS;
5637 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
5639 if (ndr_flags & NDR_SCALARS) {
5640 NDR_CHECK(ndr_pull_align(ndr, 4));
5641 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5642 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->pdc_connection_status));
5644 if (ndr_flags & NDR_BUFFERS) {
5646 return NDR_ERR_SUCCESS;
5649 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
5651 ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5652 ndr->depth++;
5653 ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5654 ndr_print_WERROR(ndr, "pdc_connection_status", r->pdc_connection_status);
5655 ndr->depth--;
5658 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_2(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_2 *r)
5660 if (ndr_flags & NDR_SCALARS) {
5661 NDR_CHECK(ndr_push_align(ndr, 5));
5662 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5663 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->pdc_connection_status));
5664 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5665 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->tc_connection_status));
5667 if (ndr_flags & NDR_BUFFERS) {
5668 if (r->trusted_dc_name) {
5669 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5670 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5671 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5672 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));
5675 return NDR_ERR_SUCCESS;
5678 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
5680 uint32_t _ptr_trusted_dc_name;
5681 TALLOC_CTX *_mem_save_trusted_dc_name_0;
5682 if (ndr_flags & NDR_SCALARS) {
5683 NDR_CHECK(ndr_pull_align(ndr, 5));
5684 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5685 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->pdc_connection_status));
5686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5687 if (_ptr_trusted_dc_name) {
5688 NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5689 } else {
5690 r->trusted_dc_name = NULL;
5692 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->tc_connection_status));
5694 if (ndr_flags & NDR_BUFFERS) {
5695 if (r->trusted_dc_name) {
5696 _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5697 NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5698 NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5699 NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5700 if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5701 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));
5703 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5704 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));
5705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5708 return NDR_ERR_SUCCESS;
5711 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
5713 ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5714 ndr->depth++;
5715 ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5716 ndr_print_WERROR(ndr, "pdc_connection_status", r->pdc_connection_status);
5717 ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5718 ndr->depth++;
5719 if (r->trusted_dc_name) {
5720 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5722 ndr->depth--;
5723 ndr_print_WERROR(ndr, "tc_connection_status", r->tc_connection_status);
5724 ndr->depth--;
5727 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_3(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_3 *r)
5729 if (ndr_flags & NDR_SCALARS) {
5730 NDR_CHECK(ndr_push_align(ndr, 4));
5731 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5739 if (ndr_flags & NDR_BUFFERS) {
5741 return NDR_ERR_SUCCESS;
5744 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
5746 if (ndr_flags & NDR_SCALARS) {
5747 NDR_CHECK(ndr_pull_align(ndr, 4));
5748 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5749 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5750 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5751 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5752 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5753 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5754 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5756 if (ndr_flags & NDR_BUFFERS) {
5758 return NDR_ERR_SUCCESS;
5761 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
5763 ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
5764 ndr->depth++;
5765 ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5766 ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5767 ndr_print_uint32(ndr, "unknown1", r->unknown1);
5768 ndr_print_uint32(ndr, "unknown2", r->unknown2);
5769 ndr_print_uint32(ndr, "unknown3", r->unknown3);
5770 ndr_print_uint32(ndr, "unknown4", r->unknown4);
5771 ndr_print_uint32(ndr, "unknown5", r->unknown5);
5772 ndr->depth--;
5775 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_4(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_4 *r)
5777 if (ndr_flags & NDR_SCALARS) {
5778 NDR_CHECK(ndr_push_align(ndr, 5));
5779 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5780 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain_name));
5782 if (ndr_flags & NDR_BUFFERS) {
5783 if (r->trusted_dc_name) {
5784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5785 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5786 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5787 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));
5789 if (r->trusted_domain_name) {
5790 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_domain_name, CH_UTF16)));
5791 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5792 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_domain_name, CH_UTF16)));
5793 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->trusted_domain_name, ndr_charset_length(r->trusted_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5796 return NDR_ERR_SUCCESS;
5799 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_4(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_4 *r)
5801 uint32_t _ptr_trusted_dc_name;
5802 TALLOC_CTX *_mem_save_trusted_dc_name_0;
5803 uint32_t _ptr_trusted_domain_name;
5804 TALLOC_CTX *_mem_save_trusted_domain_name_0;
5805 if (ndr_flags & NDR_SCALARS) {
5806 NDR_CHECK(ndr_pull_align(ndr, 5));
5807 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5808 if (_ptr_trusted_dc_name) {
5809 NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5810 } else {
5811 r->trusted_dc_name = NULL;
5813 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
5814 if (_ptr_trusted_domain_name) {
5815 NDR_PULL_ALLOC(ndr, r->trusted_domain_name);
5816 } else {
5817 r->trusted_domain_name = NULL;
5820 if (ndr_flags & NDR_BUFFERS) {
5821 if (r->trusted_dc_name) {
5822 _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5823 NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5824 NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5825 NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5826 if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5827 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));
5829 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5830 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));
5831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5833 if (r->trusted_domain_name) {
5834 _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5835 NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain_name, 0);
5836 NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_domain_name));
5837 NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_domain_name));
5838 if (ndr_get_array_length(ndr, &r->trusted_domain_name) > ndr_get_array_size(ndr, &r->trusted_domain_name)) {
5839 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->trusted_domain_name), ndr_get_array_length(ndr, &r->trusted_domain_name));
5841 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_domain_name), sizeof(uint16_t)));
5842 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_domain_name, ndr_get_array_length(ndr, &r->trusted_domain_name), sizeof(uint16_t), CH_UTF16));
5843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
5846 return NDR_ERR_SUCCESS;
5849 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_4(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_4 *r)
5851 ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_4");
5852 ndr->depth++;
5853 ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5854 ndr->depth++;
5855 if (r->trusted_dc_name) {
5856 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5858 ndr->depth--;
5859 ndr_print_ptr(ndr, "trusted_domain_name", r->trusted_domain_name);
5860 ndr->depth++;
5861 if (r->trusted_domain_name) {
5862 ndr_print_string(ndr, "trusted_domain_name", r->trusted_domain_name);
5864 ndr->depth--;
5865 ndr->depth--;
5868 static enum ndr_err_code ndr_push_netr_CONTROL_QUERY_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_QUERY_INFORMATION *r)
5870 if (ndr_flags & NDR_SCALARS) {
5871 int level = ndr_push_get_switch_value(ndr, r);
5872 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5873 switch (level) {
5874 case 1: {
5875 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5876 break; }
5878 case 2: {
5879 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5880 break; }
5882 case 3: {
5883 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5884 break; }
5886 case 4: {
5887 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
5888 break; }
5890 default: {
5891 break; }
5895 if (ndr_flags & NDR_BUFFERS) {
5896 int level = ndr_push_get_switch_value(ndr, r);
5897 switch (level) {
5898 case 1:
5899 if (r->info1) {
5900 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5902 break;
5904 case 2:
5905 if (r->info2) {
5906 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5908 break;
5910 case 3:
5911 if (r->info3) {
5912 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5914 break;
5916 case 4:
5917 if (r->info4) {
5918 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5920 break;
5922 default:
5923 break;
5927 return NDR_ERR_SUCCESS;
5930 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
5932 int level;
5933 uint32_t _level;
5934 TALLOC_CTX *_mem_save_info1_0;
5935 TALLOC_CTX *_mem_save_info2_0;
5936 TALLOC_CTX *_mem_save_info3_0;
5937 TALLOC_CTX *_mem_save_info4_0;
5938 level = ndr_pull_get_switch_value(ndr, r);
5939 if (ndr_flags & NDR_SCALARS) {
5940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5941 if (_level != level) {
5942 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5944 switch (level) {
5945 case 1: {
5946 uint32_t _ptr_info1;
5947 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5948 if (_ptr_info1) {
5949 NDR_PULL_ALLOC(ndr, r->info1);
5950 } else {
5951 r->info1 = NULL;
5953 break; }
5955 case 2: {
5956 uint32_t _ptr_info2;
5957 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5958 if (_ptr_info2) {
5959 NDR_PULL_ALLOC(ndr, r->info2);
5960 } else {
5961 r->info2 = NULL;
5963 break; }
5965 case 3: {
5966 uint32_t _ptr_info3;
5967 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5968 if (_ptr_info3) {
5969 NDR_PULL_ALLOC(ndr, r->info3);
5970 } else {
5971 r->info3 = NULL;
5973 break; }
5975 case 4: {
5976 uint32_t _ptr_info4;
5977 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
5978 if (_ptr_info4) {
5979 NDR_PULL_ALLOC(ndr, r->info4);
5980 } else {
5981 r->info4 = NULL;
5983 break; }
5985 default: {
5986 break; }
5990 if (ndr_flags & NDR_BUFFERS) {
5991 switch (level) {
5992 case 1:
5993 if (r->info1) {
5994 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5995 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5996 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5999 break;
6001 case 2:
6002 if (r->info2) {
6003 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6004 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6005 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6008 break;
6010 case 3:
6011 if (r->info3) {
6012 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6013 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6014 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
6015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6017 break;
6019 case 4:
6020 if (r->info4) {
6021 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6022 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6023 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6026 break;
6028 default:
6029 break;
6033 return NDR_ERR_SUCCESS;
6036 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
6038 int level;
6039 level = ndr_print_get_switch_value(ndr, r);
6040 ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
6041 switch (level) {
6042 case 1:
6043 ndr_print_ptr(ndr, "info1", r->info1);
6044 ndr->depth++;
6045 if (r->info1) {
6046 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
6048 ndr->depth--;
6049 break;
6051 case 2:
6052 ndr_print_ptr(ndr, "info2", r->info2);
6053 ndr->depth++;
6054 if (r->info2) {
6055 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
6057 ndr->depth--;
6058 break;
6060 case 3:
6061 ndr_print_ptr(ndr, "info3", r->info3);
6062 ndr->depth++;
6063 if (r->info3) {
6064 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
6066 ndr->depth--;
6067 break;
6069 case 4:
6070 ndr_print_ptr(ndr, "info4", r->info4);
6071 ndr->depth++;
6072 if (r->info4) {
6073 ndr_print_netr_NETLOGON_INFO_4(ndr, "info4", r->info4);
6075 ndr->depth--;
6076 break;
6078 default:
6079 break;
6084 static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
6086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6087 return NDR_ERR_SUCCESS;
6090 static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
6092 uint32_t v;
6093 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6094 *r = v;
6095 return NDR_ERR_SUCCESS;
6098 _PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
6100 const char *val = NULL;
6102 switch (r) {
6103 case NETLOGON_CONTROL_QUERY: val = "NETLOGON_CONTROL_QUERY"; break;
6104 case NETLOGON_CONTROL_REPLICATE: val = "NETLOGON_CONTROL_REPLICATE"; break;
6105 case NETLOGON_CONTROL_SYNCHRONIZE: val = "NETLOGON_CONTROL_SYNCHRONIZE"; break;
6106 case NETLOGON_CONTROL_PDC_REPLICATE: val = "NETLOGON_CONTROL_PDC_REPLICATE"; break;
6107 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
6108 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
6109 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
6110 case NETLOGON_CONTROL_FIND_USER: val = "NETLOGON_CONTROL_FIND_USER"; break;
6111 case NETLOGON_CONTROL_CHANGE_PASSWORD: val = "NETLOGON_CONTROL_CHANGE_PASSWORD"; break;
6112 case NETLOGON_CONTROL_TC_VERIFY: val = "NETLOGON_CONTROL_TC_VERIFY"; break;
6113 case NETLOGON_CONTROL_FORCE_DNS_REG: val = "NETLOGON_CONTROL_FORCE_DNS_REG"; break;
6114 case NETLOGON_CONTROL_QUERY_DNS_REG: val = "NETLOGON_CONTROL_QUERY_DNS_REG"; break;
6115 case NETLOGON_CONTROL_BACKUP_CHANGE_LOG: val = "NETLOGON_CONTROL_BACKUP_CHANGE_LOG"; break;
6116 case NETLOGON_CONTROL_TRUNCATE_LOG: val = "NETLOGON_CONTROL_TRUNCATE_LOG"; break;
6117 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
6118 case NETLOGON_CONTROL_BREAKPOINT: val = "NETLOGON_CONTROL_BREAKPOINT"; break;
6120 ndr_print_enum(ndr, name, "ENUM", val, r);
6123 static enum ndr_err_code ndr_push_netr_CONTROL_DATA_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_DATA_INFORMATION *r)
6125 if (ndr_flags & NDR_SCALARS) {
6126 int level = ndr_push_get_switch_value(ndr, r);
6127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6128 switch (level) {
6129 case NETLOGON_CONTROL_REDISCOVER: {
6130 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6131 break; }
6133 case NETLOGON_CONTROL_TC_QUERY: {
6134 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6135 break; }
6137 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
6138 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6139 break; }
6141 case NETLOGON_CONTROL_CHANGE_PASSWORD: {
6142 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6143 break; }
6145 case NETLOGON_CONTROL_TC_VERIFY: {
6146 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6147 break; }
6149 case NETLOGON_CONTROL_FIND_USER: {
6150 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
6151 break; }
6153 case NETLOGON_CONTROL_SET_DBFLAG: {
6154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
6155 break; }
6157 default: {
6158 break; }
6162 if (ndr_flags & NDR_BUFFERS) {
6163 int level = ndr_push_get_switch_value(ndr, r);
6164 switch (level) {
6165 case NETLOGON_CONTROL_REDISCOVER:
6166 if (r->domain) {
6167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6169 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6170 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6172 break;
6174 case NETLOGON_CONTROL_TC_QUERY:
6175 if (r->domain) {
6176 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6178 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6179 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6181 break;
6183 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6184 if (r->domain) {
6185 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6186 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6187 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6188 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6190 break;
6192 case NETLOGON_CONTROL_CHANGE_PASSWORD:
6193 if (r->domain) {
6194 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6195 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6196 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6197 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6199 break;
6201 case NETLOGON_CONTROL_TC_VERIFY:
6202 if (r->domain) {
6203 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6204 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6205 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6206 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6208 break;
6210 case NETLOGON_CONTROL_FIND_USER:
6211 if (r->user) {
6212 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
6213 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6214 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
6215 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6217 break;
6219 case NETLOGON_CONTROL_SET_DBFLAG:
6220 break;
6222 default:
6223 break;
6227 return NDR_ERR_SUCCESS;
6230 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
6232 int level;
6233 uint32_t _level;
6234 TALLOC_CTX *_mem_save_domain_0;
6235 TALLOC_CTX *_mem_save_user_0;
6236 level = ndr_pull_get_switch_value(ndr, r);
6237 if (ndr_flags & NDR_SCALARS) {
6238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6239 if (_level != level) {
6240 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6242 switch (level) {
6243 case NETLOGON_CONTROL_REDISCOVER: {
6244 uint32_t _ptr_domain;
6245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6246 if (_ptr_domain) {
6247 NDR_PULL_ALLOC(ndr, r->domain);
6248 } else {
6249 r->domain = NULL;
6251 break; }
6253 case NETLOGON_CONTROL_TC_QUERY: {
6254 uint32_t _ptr_domain;
6255 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6256 if (_ptr_domain) {
6257 NDR_PULL_ALLOC(ndr, r->domain);
6258 } else {
6259 r->domain = NULL;
6261 break; }
6263 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
6264 uint32_t _ptr_domain;
6265 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6266 if (_ptr_domain) {
6267 NDR_PULL_ALLOC(ndr, r->domain);
6268 } else {
6269 r->domain = NULL;
6271 break; }
6273 case NETLOGON_CONTROL_CHANGE_PASSWORD: {
6274 uint32_t _ptr_domain;
6275 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6276 if (_ptr_domain) {
6277 NDR_PULL_ALLOC(ndr, r->domain);
6278 } else {
6279 r->domain = NULL;
6281 break; }
6283 case NETLOGON_CONTROL_TC_VERIFY: {
6284 uint32_t _ptr_domain;
6285 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6286 if (_ptr_domain) {
6287 NDR_PULL_ALLOC(ndr, r->domain);
6288 } else {
6289 r->domain = NULL;
6291 break; }
6293 case NETLOGON_CONTROL_FIND_USER: {
6294 uint32_t _ptr_user;
6295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
6296 if (_ptr_user) {
6297 NDR_PULL_ALLOC(ndr, r->user);
6298 } else {
6299 r->user = NULL;
6301 break; }
6303 case NETLOGON_CONTROL_SET_DBFLAG: {
6304 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
6305 break; }
6307 default: {
6308 break; }
6312 if (ndr_flags & NDR_BUFFERS) {
6313 switch (level) {
6314 case NETLOGON_CONTROL_REDISCOVER:
6315 if (r->domain) {
6316 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6317 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6318 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6319 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6320 if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6321 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));
6323 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6324 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6327 break;
6329 case NETLOGON_CONTROL_TC_QUERY:
6330 if (r->domain) {
6331 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6332 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6333 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6334 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6335 if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6336 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));
6338 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6339 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6342 break;
6344 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6345 if (r->domain) {
6346 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6347 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6348 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6349 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6350 if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6351 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));
6353 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6354 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6357 break;
6359 case NETLOGON_CONTROL_CHANGE_PASSWORD:
6360 if (r->domain) {
6361 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6362 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6363 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6364 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6365 if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6366 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));
6368 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6369 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6372 break;
6374 case NETLOGON_CONTROL_TC_VERIFY:
6375 if (r->domain) {
6376 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6377 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6378 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6379 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6380 if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6381 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));
6383 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6384 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6387 break;
6389 case NETLOGON_CONTROL_FIND_USER:
6390 if (r->user) {
6391 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
6392 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
6393 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
6394 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
6395 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
6396 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user));
6398 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
6399 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
6400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
6402 break;
6404 case NETLOGON_CONTROL_SET_DBFLAG:
6405 break;
6407 default:
6408 break;
6412 return NDR_ERR_SUCCESS;
6415 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
6417 int level;
6418 level = ndr_print_get_switch_value(ndr, r);
6419 ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
6420 switch (level) {
6421 case NETLOGON_CONTROL_REDISCOVER:
6422 ndr_print_ptr(ndr, "domain", r->domain);
6423 ndr->depth++;
6424 if (r->domain) {
6425 ndr_print_string(ndr, "domain", r->domain);
6427 ndr->depth--;
6428 break;
6430 case NETLOGON_CONTROL_TC_QUERY:
6431 ndr_print_ptr(ndr, "domain", r->domain);
6432 ndr->depth++;
6433 if (r->domain) {
6434 ndr_print_string(ndr, "domain", r->domain);
6436 ndr->depth--;
6437 break;
6439 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6440 ndr_print_ptr(ndr, "domain", r->domain);
6441 ndr->depth++;
6442 if (r->domain) {
6443 ndr_print_string(ndr, "domain", r->domain);
6445 ndr->depth--;
6446 break;
6448 case NETLOGON_CONTROL_CHANGE_PASSWORD:
6449 ndr_print_ptr(ndr, "domain", r->domain);
6450 ndr->depth++;
6451 if (r->domain) {
6452 ndr_print_string(ndr, "domain", r->domain);
6454 ndr->depth--;
6455 break;
6457 case NETLOGON_CONTROL_TC_VERIFY:
6458 ndr_print_ptr(ndr, "domain", r->domain);
6459 ndr->depth++;
6460 if (r->domain) {
6461 ndr_print_string(ndr, "domain", r->domain);
6463 ndr->depth--;
6464 break;
6466 case NETLOGON_CONTROL_FIND_USER:
6467 ndr_print_ptr(ndr, "user", r->user);
6468 ndr->depth++;
6469 if (r->user) {
6470 ndr_print_string(ndr, "user", r->user);
6472 ndr->depth--;
6473 break;
6475 case NETLOGON_CONTROL_SET_DBFLAG:
6476 ndr_print_uint32(ndr, "debug_level", r->debug_level);
6477 break;
6479 default:
6480 break;
6485 _PUBLIC_ enum ndr_err_code ndr_push_netr_NegotiateFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6487 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6488 return NDR_ERR_SUCCESS;
6491 _PUBLIC_ enum ndr_err_code ndr_pull_netr_NegotiateFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6493 uint32_t v;
6494 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6495 *r = v;
6496 return NDR_ERR_SUCCESS;
6499 _PUBLIC_ void ndr_print_netr_NegotiateFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6501 ndr_print_uint32(ndr, name, r);
6502 ndr->depth++;
6503 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT, r);
6504 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL, r);
6505 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR, r);
6506 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT, r);
6507 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC, r);
6508 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL, r);
6509 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS, r);
6510 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO, r);
6511 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL, r);
6512 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC, r);
6513 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH, r);
6514 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC, r);
6515 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL, r);
6516 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL, r);
6517 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_STRONG_KEYS", NETLOGON_NEG_STRONG_KEYS, r);
6518 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS, r);
6519 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS, r);
6520 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2, r);
6521 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO, r);
6522 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS, r);
6523 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION, r);
6524 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH, r);
6525 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES_SHA2", NETLOGON_NEG_SUPPORTS_AES_SHA2, r);
6526 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES", NETLOGON_NEG_SUPPORTS_AES, r);
6527 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS, r);
6528 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC", NETLOGON_NEG_AUTHENTICATED_RPC, r);
6529 ndr->depth--;
6532 static enum ndr_err_code ndr_push_SyncStateEnum(struct ndr_push *ndr, int ndr_flags, enum SyncStateEnum r)
6534 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
6535 return NDR_ERR_SUCCESS;
6538 static enum ndr_err_code ndr_pull_SyncStateEnum(struct ndr_pull *ndr, int ndr_flags, enum SyncStateEnum *r)
6540 uint16_t v;
6541 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
6542 *r = v;
6543 return NDR_ERR_SUCCESS;
6546 _PUBLIC_ void ndr_print_SyncStateEnum(struct ndr_print *ndr, const char *name, enum SyncStateEnum r)
6548 const char *val = NULL;
6550 switch (r) {
6551 case SYNCSTATE_NORMAL_STATE: val = "SYNCSTATE_NORMAL_STATE"; break;
6552 case SYNCSTATE_DOMAIN_STATE: val = "SYNCSTATE_DOMAIN_STATE"; break;
6553 case SYNCSTATE_GROUP_STATE: val = "SYNCSTATE_GROUP_STATE"; break;
6554 case SYNCSTATE_UAS_BUILT_IN_GROUP_STATE: val = "SYNCSTATE_UAS_BUILT_IN_GROUP_STATE"; break;
6555 case SYNCSTATE_USER_STATE: val = "SYNCSTATE_USER_STATE"; break;
6556 case SYNCSTATE_GROUP_MEMBER_STATE: val = "SYNCSTATE_GROUP_MEMBER_STATE"; break;
6557 case SYNCSTATE_ALIAS_STATE: val = "SYNCSTATE_ALIAS_STATE"; break;
6558 case SYNCSTATE_ALIAS_MEMBER_STATE: val = "SYNCSTATE_ALIAS_MEMBER_STATE"; break;
6559 case SYNCSTATE_SAM_DONE_STATE: val = "SYNCSTATE_SAM_DONE_STATE"; break;
6561 ndr_print_enum(ndr, name, "ENUM", val, r);
6564 static enum ndr_err_code ndr_push_netr_ChangeLogFlags(struct ndr_push *ndr, int ndr_flags, uint16_t r)
6566 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
6567 return NDR_ERR_SUCCESS;
6570 static enum ndr_err_code ndr_pull_netr_ChangeLogFlags(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
6572 uint16_t v;
6573 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
6574 *r = v;
6575 return NDR_ERR_SUCCESS;
6578 _PUBLIC_ void ndr_print_netr_ChangeLogFlags(struct ndr_print *ndr, const char *name, uint16_t r)
6580 ndr_print_uint16(ndr, name, r);
6581 ndr->depth++;
6582 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED, r);
6583 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD, r);
6584 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED, r);
6585 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED, r);
6586 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ, r);
6587 ndr->depth--;
6590 static enum ndr_err_code ndr_push_netr_ChangeLogObject(struct ndr_push *ndr, int ndr_flags, const union netr_ChangeLogObject *r)
6592 if (ndr_flags & NDR_SCALARS) {
6593 int level = ndr_push_get_switch_value(ndr, r);
6594 switch (level) {
6595 case NETR_CHANGELOG_SID_INCLUDED: {
6596 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
6597 break; }
6599 case NETR_CHANGELOG_NAME_INCLUDED: {
6601 uint32_t _flags_save_string = ndr->flags;
6602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6603 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->object_name));
6604 ndr->flags = _flags_save_string;
6606 break; }
6608 default: {
6609 break; }
6613 if (ndr_flags & NDR_BUFFERS) {
6614 int level = ndr_push_get_switch_value(ndr, r);
6615 switch (level) {
6616 case NETR_CHANGELOG_SID_INCLUDED:
6617 break;
6619 case NETR_CHANGELOG_NAME_INCLUDED:
6620 break;
6622 default:
6623 break;
6627 return NDR_ERR_SUCCESS;
6630 static enum ndr_err_code ndr_pull_netr_ChangeLogObject(struct ndr_pull *ndr, int ndr_flags, union netr_ChangeLogObject *r)
6632 int level;
6633 level = ndr_pull_get_switch_value(ndr, r);
6634 if (ndr_flags & NDR_SCALARS) {
6635 switch (level) {
6636 case NETR_CHANGELOG_SID_INCLUDED: {
6637 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
6638 break; }
6640 case NETR_CHANGELOG_NAME_INCLUDED: {
6642 uint32_t _flags_save_string = ndr->flags;
6643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6644 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->object_name));
6645 ndr->flags = _flags_save_string;
6647 break; }
6649 default: {
6650 break; }
6654 if (ndr_flags & NDR_BUFFERS) {
6655 switch (level) {
6656 case NETR_CHANGELOG_SID_INCLUDED:
6657 break;
6659 case NETR_CHANGELOG_NAME_INCLUDED:
6660 break;
6662 default:
6663 break;
6667 return NDR_ERR_SUCCESS;
6670 _PUBLIC_ void ndr_print_netr_ChangeLogObject(struct ndr_print *ndr, const char *name, const union netr_ChangeLogObject *r)
6672 int level;
6673 level = ndr_print_get_switch_value(ndr, r);
6674 ndr_print_union(ndr, name, level, "netr_ChangeLogObject");
6675 switch (level) {
6676 case NETR_CHANGELOG_SID_INCLUDED:
6677 ndr_print_dom_sid(ndr, "object_sid", &r->object_sid);
6678 break;
6680 case NETR_CHANGELOG_NAME_INCLUDED:
6681 ndr_print_string(ndr, "object_name", r->object_name);
6682 break;
6684 default:
6685 break;
6690 _PUBLIC_ enum ndr_err_code ndr_push_netr_ChangeLogEntry(struct ndr_push *ndr, int ndr_flags, const struct netr_ChangeLogEntry *r)
6692 if (ndr_flags & NDR_SCALARS) {
6693 NDR_CHECK(ndr_push_align(ndr, 4));
6694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number1));
6695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number2));
6696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_rid));
6697 NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr, NDR_SCALARS, r->flags));
6698 NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, r->db_index));
6699 NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, r->delta_type));
6700 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
6701 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
6703 if (ndr_flags & NDR_BUFFERS) {
6704 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
6706 return NDR_ERR_SUCCESS;
6709 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ChangeLogEntry(struct ndr_pull *ndr, int ndr_flags, struct netr_ChangeLogEntry *r)
6711 if (ndr_flags & NDR_SCALARS) {
6712 NDR_CHECK(ndr_pull_align(ndr, 4));
6713 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number1));
6714 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number2));
6715 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_rid));
6716 NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr, NDR_SCALARS, &r->flags));
6717 NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, &r->db_index));
6718 NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, &r->delta_type));
6719 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
6720 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
6722 if (ndr_flags & NDR_BUFFERS) {
6723 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
6725 return NDR_ERR_SUCCESS;
6728 _PUBLIC_ void ndr_print_netr_ChangeLogEntry(struct ndr_print *ndr, const char *name, const struct netr_ChangeLogEntry *r)
6730 ndr_print_struct(ndr, name, "netr_ChangeLogEntry");
6731 ndr->depth++;
6732 ndr_print_uint32(ndr, "serial_number1", r->serial_number1);
6733 ndr_print_uint32(ndr, "serial_number2", r->serial_number2);
6734 ndr_print_uint32(ndr, "object_rid", r->object_rid);
6735 ndr_print_netr_ChangeLogFlags(ndr, "flags", r->flags);
6736 ndr_print_netr_SamDatabaseID8Bit(ndr, "db_index", r->db_index);
6737 ndr_print_netr_DeltaEnum8Bit(ndr, "delta_type", r->delta_type);
6738 ndr_print_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED));
6739 ndr_print_netr_ChangeLogObject(ndr, "object", &r->object);
6740 ndr->depth--;
6743 _PUBLIC_ size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry *r, struct smb_iconv_convenience *ic, int flags)
6745 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_netr_ChangeLogEntry, ic);
6748 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
6750 if (ndr_flags & NDR_SCALARS) {
6751 NDR_CHECK(ndr_push_align(ndr, 5));
6752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6753 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6755 if (ndr_flags & NDR_BUFFERS) {
6756 if (r->data) {
6757 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
6758 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
6761 return NDR_ERR_SUCCESS;
6764 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
6766 uint32_t _ptr_data;
6767 TALLOC_CTX *_mem_save_data_0;
6768 if (ndr_flags & NDR_SCALARS) {
6769 NDR_CHECK(ndr_pull_align(ndr, 5));
6770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
6771 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6772 if (_ptr_data) {
6773 NDR_PULL_ALLOC(ndr, r->data);
6774 } else {
6775 r->data = NULL;
6778 if (ndr_flags & NDR_BUFFERS) {
6779 if (r->data) {
6780 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6781 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6782 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6783 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6784 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
6785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6787 if (r->data) {
6788 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
6791 return NDR_ERR_SUCCESS;
6794 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
6796 ndr_print_struct(ndr, name, "netr_Blob");
6797 ndr->depth++;
6798 ndr_print_uint32(ndr, "length", r->length);
6799 ndr_print_ptr(ndr, "data", r->data);
6800 ndr->depth++;
6801 if (r->data) {
6802 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6804 ndr->depth--;
6805 ndr->depth--;
6808 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6811 return NDR_ERR_SUCCESS;
6814 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6816 uint32_t v;
6817 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6818 *r = v;
6819 return NDR_ERR_SUCCESS;
6822 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6824 ndr_print_uint32(ndr, name, r);
6825 ndr->depth++;
6826 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6827 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6828 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6829 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6830 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6831 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6832 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6833 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6834 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6835 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6836 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6837 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6838 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6839 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6840 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6841 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
6842 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
6843 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WEB_SERVICE_REQUIRED", DS_WEB_SERVICE_REQUIRED, r);
6844 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6845 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6846 ndr->depth--;
6849 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6852 return NDR_ERR_SUCCESS;
6855 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6857 uint32_t v;
6858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6859 *r = v;
6860 return NDR_ERR_SUCCESS;
6863 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6865 const char *val = NULL;
6867 switch (r) {
6868 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6869 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6871 ndr_print_enum(ndr, name, "ENUM", val, r);
6874 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6877 return NDR_ERR_SUCCESS;
6880 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6882 uint32_t v;
6883 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6884 *r = v;
6885 return NDR_ERR_SUCCESS;
6888 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6890 ndr_print_uint32(ndr, name, r);
6891 ndr->depth++;
6892 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6893 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6894 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6895 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6896 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6897 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6898 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6899 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6900 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6901 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6902 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
6903 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
6904 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6905 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6906 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6907 ndr->depth--;
6910 _PUBLIC_ enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6912 if (ndr_flags & NDR_SCALARS) {
6913 NDR_CHECK(ndr_push_align(ndr, 5));
6914 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6915 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6916 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6917 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6918 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6919 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6920 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6921 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6922 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6924 if (ndr_flags & NDR_BUFFERS) {
6925 if (r->dc_unc) {
6926 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6927 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6928 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6929 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6931 if (r->dc_address) {
6932 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6933 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6934 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6935 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6937 if (r->domain_name) {
6938 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6939 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6940 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6941 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6943 if (r->forest_name) {
6944 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6945 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6946 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6947 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6949 if (r->dc_site_name) {
6950 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6951 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6952 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6953 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));
6955 if (r->client_site_name) {
6956 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6957 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6958 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6959 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));
6962 return NDR_ERR_SUCCESS;
6965 _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6967 uint32_t _ptr_dc_unc;
6968 TALLOC_CTX *_mem_save_dc_unc_0;
6969 uint32_t _ptr_dc_address;
6970 TALLOC_CTX *_mem_save_dc_address_0;
6971 uint32_t _ptr_domain_name;
6972 TALLOC_CTX *_mem_save_domain_name_0;
6973 uint32_t _ptr_forest_name;
6974 TALLOC_CTX *_mem_save_forest_name_0;
6975 uint32_t _ptr_dc_site_name;
6976 TALLOC_CTX *_mem_save_dc_site_name_0;
6977 uint32_t _ptr_client_site_name;
6978 TALLOC_CTX *_mem_save_client_site_name_0;
6979 if (ndr_flags & NDR_SCALARS) {
6980 NDR_CHECK(ndr_pull_align(ndr, 5));
6981 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6982 if (_ptr_dc_unc) {
6983 NDR_PULL_ALLOC(ndr, r->dc_unc);
6984 } else {
6985 r->dc_unc = NULL;
6987 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6988 if (_ptr_dc_address) {
6989 NDR_PULL_ALLOC(ndr, r->dc_address);
6990 } else {
6991 r->dc_address = NULL;
6993 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6994 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6995 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6996 if (_ptr_domain_name) {
6997 NDR_PULL_ALLOC(ndr, r->domain_name);
6998 } else {
6999 r->domain_name = NULL;
7001 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
7002 if (_ptr_forest_name) {
7003 NDR_PULL_ALLOC(ndr, r->forest_name);
7004 } else {
7005 r->forest_name = NULL;
7007 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
7008 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
7009 if (_ptr_dc_site_name) {
7010 NDR_PULL_ALLOC(ndr, r->dc_site_name);
7011 } else {
7012 r->dc_site_name = NULL;
7014 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
7015 if (_ptr_client_site_name) {
7016 NDR_PULL_ALLOC(ndr, r->client_site_name);
7017 } else {
7018 r->client_site_name = NULL;
7021 if (ndr_flags & NDR_BUFFERS) {
7022 if (r->dc_unc) {
7023 _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
7024 NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
7025 NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
7026 NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
7027 if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
7028 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));
7030 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
7031 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
7032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
7034 if (r->dc_address) {
7035 _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
7036 NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
7037 NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
7038 NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
7039 if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
7040 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));
7042 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
7043 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
7044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
7046 if (r->domain_name) {
7047 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7048 NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
7049 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
7050 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
7051 if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
7052 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));
7054 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
7055 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
7056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
7058 if (r->forest_name) {
7059 _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7060 NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
7061 NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
7062 NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
7063 if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
7064 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));
7066 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
7067 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
7068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
7070 if (r->dc_site_name) {
7071 _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7072 NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
7073 NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
7074 NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
7075 if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
7076 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));
7078 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
7079 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));
7080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
7082 if (r->client_site_name) {
7083 _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7084 NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
7085 NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
7086 NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
7087 if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
7088 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));
7090 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
7091 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));
7092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
7095 return NDR_ERR_SUCCESS;
7098 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
7100 ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
7101 ndr->depth++;
7102 ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
7103 ndr->depth++;
7104 if (r->dc_unc) {
7105 ndr_print_string(ndr, "dc_unc", r->dc_unc);
7107 ndr->depth--;
7108 ndr_print_ptr(ndr, "dc_address", r->dc_address);
7109 ndr->depth++;
7110 if (r->dc_address) {
7111 ndr_print_string(ndr, "dc_address", r->dc_address);
7113 ndr->depth--;
7114 ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
7115 ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
7116 ndr_print_ptr(ndr, "domain_name", r->domain_name);
7117 ndr->depth++;
7118 if (r->domain_name) {
7119 ndr_print_string(ndr, "domain_name", r->domain_name);
7121 ndr->depth--;
7122 ndr_print_ptr(ndr, "forest_name", r->forest_name);
7123 ndr->depth++;
7124 if (r->forest_name) {
7125 ndr_print_string(ndr, "forest_name", r->forest_name);
7127 ndr->depth--;
7128 ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
7129 ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
7130 ndr->depth++;
7131 if (r->dc_site_name) {
7132 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
7134 ndr->depth--;
7135 ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
7136 ndr->depth++;
7137 if (r->client_site_name) {
7138 ndr_print_string(ndr, "client_site_name", r->client_site_name);
7140 ndr->depth--;
7141 ndr->depth--;
7144 static enum ndr_err_code ndr_push_netr_Capabilities(struct ndr_push *ndr, int ndr_flags, const union netr_Capabilities *r)
7146 if (ndr_flags & NDR_SCALARS) {
7147 int level = ndr_push_get_switch_value(ndr, r);
7148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7149 switch (level) {
7150 case 1: {
7151 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, r->server_capabilities));
7152 break; }
7154 default:
7155 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7158 if (ndr_flags & NDR_BUFFERS) {
7159 int level = ndr_push_get_switch_value(ndr, r);
7160 switch (level) {
7161 case 1:
7162 break;
7164 default:
7165 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7168 return NDR_ERR_SUCCESS;
7171 static enum ndr_err_code ndr_pull_netr_Capabilities(struct ndr_pull *ndr, int ndr_flags, union netr_Capabilities *r)
7173 int level;
7174 uint32_t _level;
7175 level = ndr_pull_get_switch_value(ndr, r);
7176 if (ndr_flags & NDR_SCALARS) {
7177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7178 if (_level != level) {
7179 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
7181 switch (level) {
7182 case 1: {
7183 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, &r->server_capabilities));
7184 break; }
7186 default:
7187 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7190 if (ndr_flags & NDR_BUFFERS) {
7191 switch (level) {
7192 case 1:
7193 break;
7195 default:
7196 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7199 return NDR_ERR_SUCCESS;
7202 _PUBLIC_ void ndr_print_netr_Capabilities(struct ndr_print *ndr, const char *name, const union netr_Capabilities *r)
7204 int level;
7205 level = ndr_print_get_switch_value(ndr, r);
7206 ndr_print_union(ndr, name, level, "netr_Capabilities");
7207 switch (level) {
7208 case 1:
7209 ndr_print_netr_NegotiateFlags(ndr, "server_capabilities", r->server_capabilities);
7210 break;
7212 default:
7213 ndr_print_bad_level(ndr, name, level);
7217 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7220 return NDR_ERR_SUCCESS;
7223 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7225 uint32_t v;
7226 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7227 *r = v;
7228 return NDR_ERR_SUCCESS;
7231 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7233 ndr_print_uint32(ndr, name, r);
7234 ndr->depth++;
7235 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7236 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7237 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7239 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7240 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7241 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_MIT_KRB5", NETR_TRUST_FLAG_MIT_KRB5, r);
7242 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_AES", NETR_TRUST_FLAG_AES, r);
7243 ndr->depth--;
7246 static enum ndr_err_code ndr_push_netr_WorkstationFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7249 return NDR_ERR_SUCCESS;
7252 static enum ndr_err_code ndr_pull_netr_WorkstationFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7254 uint32_t v;
7255 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7256 *r = v;
7257 return NDR_ERR_SUCCESS;
7260 _PUBLIC_ void ndr_print_netr_WorkstationFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7262 ndr_print_uint32(ndr, name, r);
7263 ndr->depth++;
7264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS, r);
7265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_SPN_UPDATE", NETR_WS_FLAG_HANDLES_SPN_UPDATE, r);
7266 ndr->depth--;
7269 static enum ndr_err_code ndr_push_netr_SuiteMask(struct ndr_push *ndr, int ndr_flags, uint16_t r)
7271 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
7272 return NDR_ERR_SUCCESS;
7275 static enum ndr_err_code ndr_pull_netr_SuiteMask(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
7277 uint16_t v;
7278 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
7279 *r = v;
7280 return NDR_ERR_SUCCESS;
7283 _PUBLIC_ void ndr_print_netr_SuiteMask(struct ndr_print *ndr, const char *name, uint16_t r)
7285 ndr_print_uint16(ndr, name, r);
7286 ndr->depth++;
7287 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_BACKOFFICE", NETR_VER_SUITE_BACKOFFICE, r);
7288 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_BLADE", NETR_VER_SUITE_BLADE, r);
7289 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_COMPUTE_SERVER", NETR_VER_SUITE_COMPUTE_SERVER, r);
7290 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_DATACENTER", NETR_VER_SUITE_DATACENTER, r);
7291 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_ENTERPRISE", NETR_VER_SUITE_ENTERPRISE, r);
7292 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_EMBEDDEDNT", NETR_VER_SUITE_EMBEDDEDNT, r);
7293 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_PERSONAL", NETR_VER_SUITE_PERSONAL, r);
7294 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_SINGLEUSERTS", NETR_VER_SUITE_SINGLEUSERTS, r);
7295 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS", NETR_VER_SUITE_SMALLBUSINESS, r);
7296 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED", NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED, r);
7297 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_STORAGE_SERVER", NETR_VER_SUITE_STORAGE_SERVER, r);
7298 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_TERMINAL", NETR_VER_SUITE_TERMINAL, r);
7299 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_WH_SERVER", NETR_VER_SUITE_WH_SERVER, r);
7300 ndr->depth--;
7303 static enum ndr_err_code ndr_push_netr_ProductType(struct ndr_push *ndr, int ndr_flags, uint8_t r)
7305 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
7306 return NDR_ERR_SUCCESS;
7309 static enum ndr_err_code ndr_pull_netr_ProductType(struct ndr_pull *ndr, int ndr_flags, uint8_t *r)
7311 uint8_t v;
7312 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
7313 *r = v;
7314 return NDR_ERR_SUCCESS;
7317 _PUBLIC_ void ndr_print_netr_ProductType(struct ndr_print *ndr, const char *name, uint8_t r)
7319 ndr_print_uint8(ndr, name, r);
7320 ndr->depth++;
7321 ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "NETR_VER_NT_DOMAIN_CONTROLLER", NETR_VER_NT_DOMAIN_CONTROLLER, r);
7322 ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "NETR_VER_NT_SERVER", NETR_VER_NT_SERVER, r);
7323 ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "NETR_VER_NT_WORKSTATION", NETR_VER_NT_WORKSTATION, r);
7324 ndr->depth--;
7327 static enum ndr_err_code ndr_push_netr_LsaPolicyInformation(struct ndr_push *ndr, int ndr_flags, const struct netr_LsaPolicyInformation *r)
7329 if (ndr_flags & NDR_SCALARS) {
7330 NDR_CHECK(ndr_push_align(ndr, 5));
7331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size));
7332 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
7334 if (ndr_flags & NDR_BUFFERS) {
7335 if (r->policy) {
7336 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->policy_size));
7337 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->policy, r->policy_size));
7340 return NDR_ERR_SUCCESS;
7343 static enum ndr_err_code ndr_pull_netr_LsaPolicyInformation(struct ndr_pull *ndr, int ndr_flags, struct netr_LsaPolicyInformation *r)
7345 uint32_t _ptr_policy;
7346 TALLOC_CTX *_mem_save_policy_0;
7347 if (ndr_flags & NDR_SCALARS) {
7348 NDR_CHECK(ndr_pull_align(ndr, 5));
7349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->policy_size));
7350 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
7351 if (_ptr_policy) {
7352 NDR_PULL_ALLOC(ndr, r->policy);
7353 } else {
7354 r->policy = NULL;
7357 if (ndr_flags & NDR_BUFFERS) {
7358 if (r->policy) {
7359 _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
7360 NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
7361 NDR_CHECK(ndr_pull_array_size(ndr, &r->policy));
7362 NDR_PULL_ALLOC_N(ndr, r->policy, ndr_get_array_size(ndr, &r->policy));
7363 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->policy, ndr_get_array_size(ndr, &r->policy)));
7364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
7366 if (r->policy) {
7367 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->policy, r->policy_size));
7370 return NDR_ERR_SUCCESS;
7373 _PUBLIC_ void ndr_print_netr_LsaPolicyInformation(struct ndr_print *ndr, const char *name, const struct netr_LsaPolicyInformation *r)
7375 ndr_print_struct(ndr, name, "netr_LsaPolicyInformation");
7376 ndr->depth++;
7377 ndr_print_uint32(ndr, "policy_size", r->policy_size);
7378 ndr_print_ptr(ndr, "policy", r->policy);
7379 ndr->depth++;
7380 if (r->policy) {
7381 ndr_print_array_uint8(ndr, "policy", r->policy, r->policy_size);
7383 ndr->depth--;
7384 ndr->depth--;
7387 static enum ndr_err_code ndr_push_netr_OsVersionInfoEx(struct ndr_push *ndr, int ndr_flags, const struct netr_OsVersionInfoEx *r)
7389 if (ndr_flags & NDR_SCALARS) {
7390 NDR_CHECK(ndr_push_align(ndr, 4));
7391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 284));
7392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->MajorVersion));
7393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->MinorVersion));
7394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->BuildNumber));
7395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->PlatformId));
7397 uint32_t _flags_save_string = ndr->flags;
7398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7400 struct ndr_push *_ndr_CSDVersion;
7401 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_CSDVersion, 0, 256));
7402 NDR_CHECK(ndr_push_string(_ndr_CSDVersion, NDR_SCALARS, r->CSDVersion));
7403 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_CSDVersion, 0, 256));
7405 ndr->flags = _flags_save_string;
7407 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ServicePackMajor));
7408 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ServicePackMinor));
7409 NDR_CHECK(ndr_push_netr_SuiteMask(ndr, NDR_SCALARS, r->SuiteMask));
7410 NDR_CHECK(ndr_push_netr_ProductType(ndr, NDR_SCALARS, r->ProductType));
7411 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Reserved));
7413 if (ndr_flags & NDR_BUFFERS) {
7415 return NDR_ERR_SUCCESS;
7418 static enum ndr_err_code ndr_pull_netr_OsVersionInfoEx(struct ndr_pull *ndr, int ndr_flags, struct netr_OsVersionInfoEx *r)
7420 if (ndr_flags & NDR_SCALARS) {
7421 NDR_CHECK(ndr_pull_align(ndr, 4));
7422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->OSVersionInfoSize));
7423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MajorVersion));
7424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MinorVersion));
7425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->BuildNumber));
7426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->PlatformId));
7428 uint32_t _flags_save_string = ndr->flags;
7429 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7431 struct ndr_pull *_ndr_CSDVersion;
7432 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_CSDVersion, 0, 256));
7433 NDR_CHECK(ndr_pull_string(_ndr_CSDVersion, NDR_SCALARS, &r->CSDVersion));
7434 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_CSDVersion, 0, 256));
7436 ndr->flags = _flags_save_string;
7438 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ServicePackMajor));
7439 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ServicePackMinor));
7440 NDR_CHECK(ndr_pull_netr_SuiteMask(ndr, NDR_SCALARS, &r->SuiteMask));
7441 NDR_CHECK(ndr_pull_netr_ProductType(ndr, NDR_SCALARS, &r->ProductType));
7442 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Reserved));
7444 if (ndr_flags & NDR_BUFFERS) {
7446 return NDR_ERR_SUCCESS;
7449 _PUBLIC_ void ndr_print_netr_OsVersionInfoEx(struct ndr_print *ndr, const char *name, const struct netr_OsVersionInfoEx *r)
7451 ndr_print_struct(ndr, name, "netr_OsVersionInfoEx");
7452 ndr->depth++;
7453 ndr_print_uint32(ndr, "OSVersionInfoSize", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?284:r->OSVersionInfoSize);
7454 ndr_print_uint32(ndr, "MajorVersion", r->MajorVersion);
7455 ndr_print_uint32(ndr, "MinorVersion", r->MinorVersion);
7456 ndr_print_uint32(ndr, "BuildNumber", r->BuildNumber);
7457 ndr_print_uint32(ndr, "PlatformId", r->PlatformId);
7458 ndr_print_string(ndr, "CSDVersion", r->CSDVersion);
7459 ndr_print_uint16(ndr, "ServicePackMajor", r->ServicePackMajor);
7460 ndr_print_uint16(ndr, "ServicePackMinor", r->ServicePackMinor);
7461 ndr_print_netr_SuiteMask(ndr, "SuiteMask", r->SuiteMask);
7462 ndr_print_netr_ProductType(ndr, "ProductType", r->ProductType);
7463 ndr_print_uint8(ndr, "Reserved", r->Reserved);
7464 ndr->depth--;
7467 static enum ndr_err_code ndr_push_netr_OsVersion(struct ndr_push *ndr, int ndr_flags, const struct netr_OsVersion *r)
7469 if (ndr_flags & NDR_SCALARS) {
7470 NDR_CHECK(ndr_push_align(ndr, 4));
7471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 142));
7472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7473 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 142));
7474 NDR_CHECK(ndr_push_netr_OsVersionInfoEx(ndr, NDR_SCALARS, &r->os));
7476 if (ndr_flags & NDR_BUFFERS) {
7478 return NDR_ERR_SUCCESS;
7481 static enum ndr_err_code ndr_pull_netr_OsVersion(struct ndr_pull *ndr, int ndr_flags, struct netr_OsVersion *r)
7483 if (ndr_flags & NDR_SCALARS) {
7484 NDR_CHECK(ndr_pull_align(ndr, 4));
7485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
7487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7488 NDR_CHECK(ndr_pull_netr_OsVersionInfoEx(ndr, NDR_SCALARS, &r->os));
7490 if (ndr_flags & NDR_BUFFERS) {
7492 return NDR_ERR_SUCCESS;
7495 _PUBLIC_ void ndr_print_netr_OsVersion(struct ndr_print *ndr, const char *name, const struct netr_OsVersion *r)
7497 ndr_print_struct(ndr, name, "netr_OsVersion");
7498 ndr->depth++;
7499 ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?142:r->length);
7500 ndr_print_uint32(ndr, "dummy", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->dummy);
7501 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?142:r->size);
7502 ndr_print_netr_OsVersionInfoEx(ndr, "os", &r->os);
7503 ndr->depth--;
7506 static enum ndr_err_code ndr_push_netr_OsVersionContainer(struct ndr_push *ndr, int ndr_flags, const struct netr_OsVersionContainer *r)
7508 if (ndr_flags & NDR_SCALARS) {
7509 NDR_CHECK(ndr_push_align(ndr, 5));
7510 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->os == NULL?0:284));
7511 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->os == NULL?0:284));
7512 NDR_CHECK(ndr_push_unique_ptr(ndr, r->os));
7514 if (ndr_flags & NDR_BUFFERS) {
7515 if (r->os) {
7516 NDR_CHECK(ndr_push_netr_OsVersion(ndr, NDR_SCALARS, r->os));
7519 return NDR_ERR_SUCCESS;
7522 static enum ndr_err_code ndr_pull_netr_OsVersionContainer(struct ndr_pull *ndr, int ndr_flags, struct netr_OsVersionContainer *r)
7524 uint32_t _ptr_os;
7525 TALLOC_CTX *_mem_save_os_0;
7526 if (ndr_flags & NDR_SCALARS) {
7527 NDR_CHECK(ndr_pull_align(ndr, 5));
7528 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
7529 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
7530 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_os));
7531 if (_ptr_os) {
7532 NDR_PULL_ALLOC(ndr, r->os);
7533 } else {
7534 r->os = NULL;
7537 if (ndr_flags & NDR_BUFFERS) {
7538 if (r->os) {
7539 _mem_save_os_0 = NDR_PULL_GET_MEM_CTX(ndr);
7540 NDR_PULL_SET_MEM_CTX(ndr, r->os, 0);
7541 NDR_CHECK(ndr_pull_netr_OsVersion(ndr, NDR_SCALARS, r->os));
7542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_os_0, 0);
7545 return NDR_ERR_SUCCESS;
7548 _PUBLIC_ void ndr_print_netr_OsVersionContainer(struct ndr_print *ndr, const char *name, const struct netr_OsVersionContainer *r)
7550 ndr_print_struct(ndr, name, "netr_OsVersionContainer");
7551 ndr->depth++;
7552 ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->os == NULL?0:284:r->length);
7553 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->os == NULL?0:284:r->size);
7554 ndr_print_ptr(ndr, "os", r->os);
7555 ndr->depth++;
7556 if (r->os) {
7557 ndr_print_netr_OsVersion(ndr, "os", r->os);
7559 ndr->depth--;
7560 ndr->depth--;
7563 static enum ndr_err_code ndr_push_netr_WorkstationInformation(struct ndr_push *ndr, int ndr_flags, const struct netr_WorkstationInformation *r)
7565 if (ndr_flags & NDR_SCALARS) {
7566 NDR_CHECK(ndr_push_align(ndr, 5));
7567 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy));
7568 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_hostname));
7569 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7570 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy1));
7571 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy2));
7572 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy3));
7573 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy4));
7574 NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr, NDR_SCALARS, &r->os_version));
7575 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->os_name));
7576 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3));
7577 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4));
7578 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr, NDR_SCALARS, r->workstation_flags));
7579 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long2));
7580 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long3));
7581 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long4));
7583 if (ndr_flags & NDR_BUFFERS) {
7584 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy));
7585 if (r->dns_hostname) {
7586 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_hostname, CH_UTF16)));
7587 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7588 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_hostname, CH_UTF16)));
7589 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_hostname, ndr_charset_length(r->dns_hostname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7591 if (r->sitename) {
7592 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sitename, CH_UTF16)));
7593 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7594 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sitename, CH_UTF16)));
7595 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sitename, ndr_charset_length(r->sitename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7597 if (r->dummy1) {
7598 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy1, CH_UTF16)));
7599 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7600 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy1, CH_UTF16)));
7601 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy1, ndr_charset_length(r->dummy1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7603 if (r->dummy2) {
7604 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy2, CH_UTF16)));
7605 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7606 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy2, CH_UTF16)));
7607 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy2, ndr_charset_length(r->dummy2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7609 if (r->dummy3) {
7610 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy3, CH_UTF16)));
7611 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7612 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy3, CH_UTF16)));
7613 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy3, ndr_charset_length(r->dummy3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7615 if (r->dummy4) {
7616 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy4, CH_UTF16)));
7617 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7618 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy4, CH_UTF16)));
7619 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy4, ndr_charset_length(r->dummy4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7621 NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr, NDR_BUFFERS, &r->os_version));
7622 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->os_name));
7623 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3));
7624 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4));
7626 return NDR_ERR_SUCCESS;
7629 static enum ndr_err_code ndr_pull_netr_WorkstationInformation(struct ndr_pull *ndr, int ndr_flags, struct netr_WorkstationInformation *r)
7631 uint32_t _ptr_dns_hostname;
7632 TALLOC_CTX *_mem_save_dns_hostname_0;
7633 uint32_t _ptr_sitename;
7634 TALLOC_CTX *_mem_save_sitename_0;
7635 uint32_t _ptr_dummy1;
7636 TALLOC_CTX *_mem_save_dummy1_0;
7637 uint32_t _ptr_dummy2;
7638 TALLOC_CTX *_mem_save_dummy2_0;
7639 uint32_t _ptr_dummy3;
7640 TALLOC_CTX *_mem_save_dummy3_0;
7641 uint32_t _ptr_dummy4;
7642 TALLOC_CTX *_mem_save_dummy4_0;
7643 if (ndr_flags & NDR_SCALARS) {
7644 NDR_CHECK(ndr_pull_align(ndr, 5));
7645 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy));
7646 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_hostname));
7647 if (_ptr_dns_hostname) {
7648 NDR_PULL_ALLOC(ndr, r->dns_hostname);
7649 } else {
7650 r->dns_hostname = NULL;
7652 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7653 if (_ptr_sitename) {
7654 NDR_PULL_ALLOC(ndr, r->sitename);
7655 } else {
7656 r->sitename = NULL;
7658 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy1));
7659 if (_ptr_dummy1) {
7660 NDR_PULL_ALLOC(ndr, r->dummy1);
7661 } else {
7662 r->dummy1 = NULL;
7664 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy2));
7665 if (_ptr_dummy2) {
7666 NDR_PULL_ALLOC(ndr, r->dummy2);
7667 } else {
7668 r->dummy2 = NULL;
7670 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy3));
7671 if (_ptr_dummy3) {
7672 NDR_PULL_ALLOC(ndr, r->dummy3);
7673 } else {
7674 r->dummy3 = NULL;
7676 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy4));
7677 if (_ptr_dummy4) {
7678 NDR_PULL_ALLOC(ndr, r->dummy4);
7679 } else {
7680 r->dummy4 = NULL;
7682 NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr, NDR_SCALARS, &r->os_version));
7683 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->os_name));
7684 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3));
7685 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4));
7686 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr, NDR_SCALARS, &r->workstation_flags));
7687 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long2));
7688 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long3));
7689 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long4));
7691 if (ndr_flags & NDR_BUFFERS) {
7692 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy));
7693 if (r->dns_hostname) {
7694 _mem_save_dns_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7695 NDR_PULL_SET_MEM_CTX(ndr, r->dns_hostname, 0);
7696 NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_hostname));
7697 NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_hostname));
7698 if (ndr_get_array_length(ndr, &r->dns_hostname) > ndr_get_array_size(ndr, &r->dns_hostname)) {
7699 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_hostname), ndr_get_array_length(ndr, &r->dns_hostname));
7701 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_hostname), sizeof(uint16_t)));
7702 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_hostname, ndr_get_array_length(ndr, &r->dns_hostname), sizeof(uint16_t), CH_UTF16));
7703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_hostname_0, 0);
7705 if (r->sitename) {
7706 _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7707 NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7708 NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7709 NDR_CHECK(ndr_pull_array_length(ndr, &r->sitename));
7710 if (ndr_get_array_length(ndr, &r->sitename) > ndr_get_array_size(ndr, &r->sitename)) {
7711 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sitename), ndr_get_array_length(ndr, &r->sitename));
7713 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sitename), sizeof(uint16_t)));
7714 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sitename, ndr_get_array_length(ndr, &r->sitename), sizeof(uint16_t), CH_UTF16));
7715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7717 if (r->dummy1) {
7718 _mem_save_dummy1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7719 NDR_PULL_SET_MEM_CTX(ndr, r->dummy1, 0);
7720 NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy1));
7721 NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy1));
7722 if (ndr_get_array_length(ndr, &r->dummy1) > ndr_get_array_size(ndr, &r->dummy1)) {
7723 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy1), ndr_get_array_length(ndr, &r->dummy1));
7725 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy1), sizeof(uint16_t)));
7726 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy1, ndr_get_array_length(ndr, &r->dummy1), sizeof(uint16_t), CH_UTF16));
7727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy1_0, 0);
7729 if (r->dummy2) {
7730 _mem_save_dummy2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7731 NDR_PULL_SET_MEM_CTX(ndr, r->dummy2, 0);
7732 NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy2));
7733 NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy2));
7734 if (ndr_get_array_length(ndr, &r->dummy2) > ndr_get_array_size(ndr, &r->dummy2)) {
7735 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy2), ndr_get_array_length(ndr, &r->dummy2));
7737 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy2), sizeof(uint16_t)));
7738 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy2, ndr_get_array_length(ndr, &r->dummy2), sizeof(uint16_t), CH_UTF16));
7739 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy2_0, 0);
7741 if (r->dummy3) {
7742 _mem_save_dummy3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7743 NDR_PULL_SET_MEM_CTX(ndr, r->dummy3, 0);
7744 NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy3));
7745 NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy3));
7746 if (ndr_get_array_length(ndr, &r->dummy3) > ndr_get_array_size(ndr, &r->dummy3)) {
7747 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy3), ndr_get_array_length(ndr, &r->dummy3));
7749 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy3), sizeof(uint16_t)));
7750 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy3, ndr_get_array_length(ndr, &r->dummy3), sizeof(uint16_t), CH_UTF16));
7751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy3_0, 0);
7753 if (r->dummy4) {
7754 _mem_save_dummy4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7755 NDR_PULL_SET_MEM_CTX(ndr, r->dummy4, 0);
7756 NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy4));
7757 NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy4));
7758 if (ndr_get_array_length(ndr, &r->dummy4) > ndr_get_array_size(ndr, &r->dummy4)) {
7759 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy4), ndr_get_array_length(ndr, &r->dummy4));
7761 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy4), sizeof(uint16_t)));
7762 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy4, ndr_get_array_length(ndr, &r->dummy4), sizeof(uint16_t), CH_UTF16));
7763 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy4_0, 0);
7765 NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr, NDR_BUFFERS, &r->os_version));
7766 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->os_name));
7767 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3));
7768 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4));
7770 return NDR_ERR_SUCCESS;
7773 _PUBLIC_ void ndr_print_netr_WorkstationInformation(struct ndr_print *ndr, const char *name, const struct netr_WorkstationInformation *r)
7775 ndr_print_struct(ndr, name, "netr_WorkstationInformation");
7776 ndr->depth++;
7777 ndr_print_netr_LsaPolicyInformation(ndr, "lsa_policy", &r->lsa_policy);
7778 ndr_print_ptr(ndr, "dns_hostname", r->dns_hostname);
7779 ndr->depth++;
7780 if (r->dns_hostname) {
7781 ndr_print_string(ndr, "dns_hostname", r->dns_hostname);
7783 ndr->depth--;
7784 ndr_print_ptr(ndr, "sitename", r->sitename);
7785 ndr->depth++;
7786 if (r->sitename) {
7787 ndr_print_string(ndr, "sitename", r->sitename);
7789 ndr->depth--;
7790 ndr_print_ptr(ndr, "dummy1", r->dummy1);
7791 ndr->depth++;
7792 if (r->dummy1) {
7793 ndr_print_string(ndr, "dummy1", r->dummy1);
7795 ndr->depth--;
7796 ndr_print_ptr(ndr, "dummy2", r->dummy2);
7797 ndr->depth++;
7798 if (r->dummy2) {
7799 ndr_print_string(ndr, "dummy2", r->dummy2);
7801 ndr->depth--;
7802 ndr_print_ptr(ndr, "dummy3", r->dummy3);
7803 ndr->depth++;
7804 if (r->dummy3) {
7805 ndr_print_string(ndr, "dummy3", r->dummy3);
7807 ndr->depth--;
7808 ndr_print_ptr(ndr, "dummy4", r->dummy4);
7809 ndr->depth++;
7810 if (r->dummy4) {
7811 ndr_print_string(ndr, "dummy4", r->dummy4);
7813 ndr->depth--;
7814 ndr_print_netr_OsVersionContainer(ndr, "os_version", &r->os_version);
7815 ndr_print_lsa_String(ndr, "os_name", &r->os_name);
7816 ndr_print_lsa_String(ndr, "dummy_string3", &r->dummy_string3);
7817 ndr_print_lsa_String(ndr, "dummy_string4", &r->dummy_string4);
7818 ndr_print_netr_WorkstationFlags(ndr, "workstation_flags", r->workstation_flags);
7819 ndr_print_uint32(ndr, "dummy_long2", r->dummy_long2);
7820 ndr_print_uint32(ndr, "dummy_long3", r->dummy_long3);
7821 ndr_print_uint32(ndr, "dummy_long4", r->dummy_long4);
7822 ndr->depth--;
7825 static enum ndr_err_code ndr_push_netr_WorkstationInfo(struct ndr_push *ndr, int ndr_flags, const union netr_WorkstationInfo *r)
7827 if (ndr_flags & NDR_SCALARS) {
7828 int level = ndr_push_get_switch_value(ndr, r);
7829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7830 switch (level) {
7831 case 1: {
7832 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_info));
7833 break; }
7835 case 2: {
7836 NDR_CHECK(ndr_push_unique_ptr(ndr, r->lsa_policy_info));
7837 break; }
7839 default:
7840 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7843 if (ndr_flags & NDR_BUFFERS) {
7844 int level = ndr_push_get_switch_value(ndr, r);
7845 switch (level) {
7846 case 1:
7847 if (r->workstation_info) {
7848 NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->workstation_info));
7850 break;
7852 case 2:
7853 if (r->lsa_policy_info) {
7854 NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info));
7856 break;
7858 default:
7859 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7862 return NDR_ERR_SUCCESS;
7865 static enum ndr_err_code ndr_pull_netr_WorkstationInfo(struct ndr_pull *ndr, int ndr_flags, union netr_WorkstationInfo *r)
7867 int level;
7868 uint32_t _level;
7869 TALLOC_CTX *_mem_save_workstation_info_0;
7870 TALLOC_CTX *_mem_save_lsa_policy_info_0;
7871 level = ndr_pull_get_switch_value(ndr, r);
7872 if (ndr_flags & NDR_SCALARS) {
7873 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7874 if (_level != level) {
7875 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
7877 switch (level) {
7878 case 1: {
7879 uint32_t _ptr_workstation_info;
7880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_info));
7881 if (_ptr_workstation_info) {
7882 NDR_PULL_ALLOC(ndr, r->workstation_info);
7883 } else {
7884 r->workstation_info = NULL;
7886 break; }
7888 case 2: {
7889 uint32_t _ptr_lsa_policy_info;
7890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lsa_policy_info));
7891 if (_ptr_lsa_policy_info) {
7892 NDR_PULL_ALLOC(ndr, r->lsa_policy_info);
7893 } else {
7894 r->lsa_policy_info = NULL;
7896 break; }
7898 default:
7899 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7902 if (ndr_flags & NDR_BUFFERS) {
7903 switch (level) {
7904 case 1:
7905 if (r->workstation_info) {
7906 _mem_save_workstation_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7907 NDR_PULL_SET_MEM_CTX(ndr, r->workstation_info, 0);
7908 NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->workstation_info));
7909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_info_0, 0);
7911 break;
7913 case 2:
7914 if (r->lsa_policy_info) {
7915 _mem_save_lsa_policy_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7916 NDR_PULL_SET_MEM_CTX(ndr, r->lsa_policy_info, 0);
7917 NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info));
7918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lsa_policy_info_0, 0);
7920 break;
7922 default:
7923 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7926 return NDR_ERR_SUCCESS;
7929 _PUBLIC_ void ndr_print_netr_WorkstationInfo(struct ndr_print *ndr, const char *name, const union netr_WorkstationInfo *r)
7931 int level;
7932 level = ndr_print_get_switch_value(ndr, r);
7933 ndr_print_union(ndr, name, level, "netr_WorkstationInfo");
7934 switch (level) {
7935 case 1:
7936 ndr_print_ptr(ndr, "workstation_info", r->workstation_info);
7937 ndr->depth++;
7938 if (r->workstation_info) {
7939 ndr_print_netr_WorkstationInformation(ndr, "workstation_info", r->workstation_info);
7941 ndr->depth--;
7942 break;
7944 case 2:
7945 ndr_print_ptr(ndr, "lsa_policy_info", r->lsa_policy_info);
7946 ndr->depth++;
7947 if (r->lsa_policy_info) {
7948 ndr_print_netr_WorkstationInformation(ndr, "lsa_policy_info", r->lsa_policy_info);
7950 ndr->depth--;
7951 break;
7953 default:
7954 ndr_print_bad_level(ndr, name, level);
7958 static enum ndr_err_code ndr_push_netr_trust_extension(struct ndr_push *ndr, int ndr_flags, const struct netr_trust_extension *r)
7960 if (ndr_flags & NDR_SCALARS) {
7961 NDR_CHECK(ndr_push_align(ndr, 4));
7962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8));
7963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8));
7965 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->flags));
7966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_type));
7968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_attributes));
7970 if (ndr_flags & NDR_BUFFERS) {
7972 return NDR_ERR_SUCCESS;
7975 static enum ndr_err_code ndr_pull_netr_trust_extension(struct ndr_pull *ndr, int ndr_flags, struct netr_trust_extension *r)
7977 if (ndr_flags & NDR_SCALARS) {
7978 NDR_CHECK(ndr_pull_align(ndr, 4));
7979 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
7981 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7982 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->flags));
7983 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7984 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_type));
7985 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_attributes));
7987 if (ndr_flags & NDR_BUFFERS) {
7989 return NDR_ERR_SUCCESS;
7992 _PUBLIC_ void ndr_print_netr_trust_extension(struct ndr_print *ndr, const char *name, const struct netr_trust_extension *r)
7994 ndr_print_struct(ndr, name, "netr_trust_extension");
7995 ndr->depth++;
7996 ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8:r->length);
7997 ndr_print_uint32(ndr, "dummy", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->dummy);
7998 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8:r->size);
7999 ndr_print_netr_TrustFlags(ndr, "flags", r->flags);
8000 ndr_print_uint32(ndr, "parent_index", r->parent_index);
8001 ndr_print_uint32(ndr, "trust_type", r->trust_type);
8002 ndr_print_uint32(ndr, "trust_attributes", r->trust_attributes);
8003 ndr->depth--;
8006 static enum ndr_err_code ndr_push_netr_trust_extension_container(struct ndr_push *ndr, int ndr_flags, const struct netr_trust_extension_container *r)
8008 if (ndr_flags & NDR_SCALARS) {
8009 NDR_CHECK(ndr_push_align(ndr, 5));
8010 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
8011 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
8012 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
8014 if (ndr_flags & NDR_BUFFERS) {
8015 if (r->info) {
8016 NDR_CHECK(ndr_push_netr_trust_extension(ndr, NDR_SCALARS, r->info));
8019 return NDR_ERR_SUCCESS;
8022 static enum ndr_err_code ndr_pull_netr_trust_extension_container(struct ndr_pull *ndr, int ndr_flags, struct netr_trust_extension_container *r)
8024 uint32_t _ptr_info;
8025 TALLOC_CTX *_mem_save_info_0;
8026 if (ndr_flags & NDR_SCALARS) {
8027 NDR_CHECK(ndr_pull_align(ndr, 5));
8028 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
8029 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
8030 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
8031 if (_ptr_info) {
8032 NDR_PULL_ALLOC(ndr, r->info);
8033 } else {
8034 r->info = NULL;
8037 if (ndr_flags & NDR_BUFFERS) {
8038 if (r->info) {
8039 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8040 NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
8041 NDR_CHECK(ndr_pull_netr_trust_extension(ndr, NDR_SCALARS, r->info));
8042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
8045 return NDR_ERR_SUCCESS;
8048 _PUBLIC_ void ndr_print_netr_trust_extension_container(struct ndr_print *ndr, const char *name, const struct netr_trust_extension_container *r)
8050 ndr_print_struct(ndr, name, "netr_trust_extension_container");
8051 ndr->depth++;
8052 ndr_print_uint16(ndr, "length", r->length);
8053 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
8054 ndr_print_ptr(ndr, "info", r->info);
8055 ndr->depth++;
8056 if (r->info) {
8057 ndr_print_netr_trust_extension(ndr, "info", r->info);
8059 ndr->depth--;
8060 ndr->depth--;
8063 static enum ndr_err_code ndr_push_netr_OneDomainInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_OneDomainInfo *r)
8065 if (ndr_flags & NDR_SCALARS) {
8066 NDR_CHECK(ndr_push_align(ndr, 5));
8067 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
8068 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dns_domainname));
8069 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dns_forestname));
8070 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
8071 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
8072 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension));
8073 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string2));
8074 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3));
8075 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4));
8076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long1));
8077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long2));
8078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long3));
8079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long4));
8081 if (ndr_flags & NDR_BUFFERS) {
8082 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
8083 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dns_domainname));
8084 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dns_forestname));
8085 if (r->domain_sid) {
8086 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
8088 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension));
8089 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string2));
8090 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3));
8091 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4));
8093 return NDR_ERR_SUCCESS;
8096 static enum ndr_err_code ndr_pull_netr_OneDomainInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_OneDomainInfo *r)
8098 uint32_t _ptr_domain_sid;
8099 TALLOC_CTX *_mem_save_domain_sid_0;
8100 if (ndr_flags & NDR_SCALARS) {
8101 NDR_CHECK(ndr_pull_align(ndr, 5));
8102 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
8103 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dns_domainname));
8104 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dns_forestname));
8105 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
8106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
8107 if (_ptr_domain_sid) {
8108 NDR_PULL_ALLOC(ndr, r->domain_sid);
8109 } else {
8110 r->domain_sid = NULL;
8112 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension));
8113 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string2));
8114 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3));
8115 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4));
8116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long1));
8117 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long2));
8118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long3));
8119 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long4));
8121 if (ndr_flags & NDR_BUFFERS) {
8122 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
8123 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dns_domainname));
8124 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dns_forestname));
8125 if (r->domain_sid) {
8126 _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8127 NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
8128 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
8129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
8131 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension));
8132 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string2));
8133 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3));
8134 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4));
8136 return NDR_ERR_SUCCESS;
8139 _PUBLIC_ void ndr_print_netr_OneDomainInfo(struct ndr_print *ndr, const char *name, const struct netr_OneDomainInfo *r)
8141 ndr_print_struct(ndr, name, "netr_OneDomainInfo");
8142 ndr->depth++;
8143 ndr_print_lsa_String(ndr, "domainname", &r->domainname);
8144 ndr_print_lsa_String(ndr, "dns_domainname", &r->dns_domainname);
8145 ndr_print_lsa_String(ndr, "dns_forestname", &r->dns_forestname);
8146 ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
8147 ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
8148 ndr->depth++;
8149 if (r->domain_sid) {
8150 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
8152 ndr->depth--;
8153 ndr_print_netr_trust_extension_container(ndr, "trust_extension", &r->trust_extension);
8154 ndr_print_lsa_String(ndr, "dummy_string2", &r->dummy_string2);
8155 ndr_print_lsa_String(ndr, "dummy_string3", &r->dummy_string3);
8156 ndr_print_lsa_String(ndr, "dummy_string4", &r->dummy_string4);
8157 ndr_print_uint32(ndr, "dummy_long1", r->dummy_long1);
8158 ndr_print_uint32(ndr, "dummy_long2", r->dummy_long2);
8159 ndr_print_uint32(ndr, "dummy_long3", r->dummy_long3);
8160 ndr_print_uint32(ndr, "dummy_long4", r->dummy_long4);
8161 ndr->depth--;
8164 _PUBLIC_ enum ndr_err_code ndr_push_netr_SupportedEncTypes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
8166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8167 return NDR_ERR_SUCCESS;
8170 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SupportedEncTypes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
8172 uint32_t v;
8173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8174 *r = v;
8175 return NDR_ERR_SUCCESS;
8178 _PUBLIC_ void ndr_print_netr_SupportedEncTypes(struct ndr_print *ndr, const char *name, uint32_t r)
8180 ndr_print_uint32(ndr, name, r);
8181 ndr->depth++;
8182 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ENC_CRC32", ENC_CRC32, r);
8183 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ENC_RSA_MD5", ENC_RSA_MD5, r);
8184 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ENC_RC4_HMAC_MD5", ENC_RC4_HMAC_MD5, r);
8185 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ENC_HMAC_SHA1_96_AES128", ENC_HMAC_SHA1_96_AES128, r);
8186 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ENC_HMAC_SHA1_96_AES256", ENC_HMAC_SHA1_96_AES256, r);
8187 ndr->depth--;
8190 static enum ndr_err_code ndr_push_netr_DomainInformation(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInformation *r)
8192 uint32_t cntr_trusted_domains_1;
8193 if (ndr_flags & NDR_SCALARS) {
8194 NDR_CHECK(ndr_push_align(ndr, 5));
8195 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->primary_domain));
8196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trusted_domain_count));
8197 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domains));
8198 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy));
8199 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dns_hostname));
8200 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string2));
8201 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3));
8202 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4));
8203 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr, NDR_SCALARS, r->workstation_flags));
8204 NDR_CHECK(ndr_push_netr_SupportedEncTypes(ndr, NDR_SCALARS, r->supported_enc_types));
8205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long3));
8206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long4));
8208 if (ndr_flags & NDR_BUFFERS) {
8209 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->primary_domain));
8210 if (r->trusted_domains) {
8211 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->trusted_domain_count));
8212 for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) {
8213 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->trusted_domains[cntr_trusted_domains_1]));
8215 for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) {
8216 NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->trusted_domains[cntr_trusted_domains_1]));
8219 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy));
8220 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dns_hostname));
8221 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string2));
8222 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3));
8223 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4));
8225 return NDR_ERR_SUCCESS;
8228 static enum ndr_err_code ndr_pull_netr_DomainInformation(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInformation *r)
8230 uint32_t _ptr_trusted_domains;
8231 uint32_t cntr_trusted_domains_1;
8232 TALLOC_CTX *_mem_save_trusted_domains_0;
8233 TALLOC_CTX *_mem_save_trusted_domains_1;
8234 if (ndr_flags & NDR_SCALARS) {
8235 NDR_CHECK(ndr_pull_align(ndr, 5));
8236 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->primary_domain));
8237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trusted_domain_count));
8238 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domains));
8239 if (_ptr_trusted_domains) {
8240 NDR_PULL_ALLOC(ndr, r->trusted_domains);
8241 } else {
8242 r->trusted_domains = NULL;
8244 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy));
8245 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dns_hostname));
8246 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string2));
8247 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3));
8248 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4));
8249 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr, NDR_SCALARS, &r->workstation_flags));
8250 NDR_CHECK(ndr_pull_netr_SupportedEncTypes(ndr, NDR_SCALARS, &r->supported_enc_types));
8251 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long3));
8252 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long4));
8254 if (ndr_flags & NDR_BUFFERS) {
8255 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->primary_domain));
8256 if (r->trusted_domains) {
8257 _mem_save_trusted_domains_0 = NDR_PULL_GET_MEM_CTX(ndr);
8258 NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domains, 0);
8259 NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_domains));
8260 NDR_PULL_ALLOC_N(ndr, r->trusted_domains, ndr_get_array_size(ndr, &r->trusted_domains));
8261 _mem_save_trusted_domains_1 = NDR_PULL_GET_MEM_CTX(ndr);
8262 NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domains, 0);
8263 for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) {
8264 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->trusted_domains[cntr_trusted_domains_1]));
8266 for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) {
8267 NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->trusted_domains[cntr_trusted_domains_1]));
8269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_1, 0);
8270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_0, 0);
8272 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy));
8273 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dns_hostname));
8274 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string2));
8275 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3));
8276 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4));
8277 if (r->trusted_domains) {
8278 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusted_domains, r->trusted_domain_count));
8281 return NDR_ERR_SUCCESS;
8284 _PUBLIC_ void ndr_print_netr_DomainInformation(struct ndr_print *ndr, const char *name, const struct netr_DomainInformation *r)
8286 uint32_t cntr_trusted_domains_1;
8287 ndr_print_struct(ndr, name, "netr_DomainInformation");
8288 ndr->depth++;
8289 ndr_print_netr_OneDomainInfo(ndr, "primary_domain", &r->primary_domain);
8290 ndr_print_uint32(ndr, "trusted_domain_count", r->trusted_domain_count);
8291 ndr_print_ptr(ndr, "trusted_domains", r->trusted_domains);
8292 ndr->depth++;
8293 if (r->trusted_domains) {
8294 ndr->print(ndr, "%s: ARRAY(%d)", "trusted_domains", (int)r->trusted_domain_count);
8295 ndr->depth++;
8296 for (cntr_trusted_domains_1=0;cntr_trusted_domains_1<r->trusted_domain_count;cntr_trusted_domains_1++) {
8297 char *idx_1=NULL;
8298 if (asprintf(&idx_1, "[%d]", cntr_trusted_domains_1) != -1) {
8299 ndr_print_netr_OneDomainInfo(ndr, "trusted_domains", &r->trusted_domains[cntr_trusted_domains_1]);
8300 free(idx_1);
8303 ndr->depth--;
8305 ndr->depth--;
8306 ndr_print_netr_LsaPolicyInformation(ndr, "lsa_policy", &r->lsa_policy);
8307 ndr_print_lsa_String(ndr, "dns_hostname", &r->dns_hostname);
8308 ndr_print_lsa_String(ndr, "dummy_string2", &r->dummy_string2);
8309 ndr_print_lsa_String(ndr, "dummy_string3", &r->dummy_string3);
8310 ndr_print_lsa_String(ndr, "dummy_string4", &r->dummy_string4);
8311 ndr_print_netr_WorkstationFlags(ndr, "workstation_flags", r->workstation_flags);
8312 ndr_print_netr_SupportedEncTypes(ndr, "supported_enc_types", r->supported_enc_types);
8313 ndr_print_uint32(ndr, "dummy_long3", r->dummy_long3);
8314 ndr_print_uint32(ndr, "dummy_long4", r->dummy_long4);
8315 ndr->depth--;
8318 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
8320 if (ndr_flags & NDR_SCALARS) {
8321 int level = ndr_push_get_switch_value(ndr, r);
8322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
8323 switch (level) {
8324 case 1: {
8325 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_info));
8326 break; }
8328 case 2: {
8329 NDR_CHECK(ndr_push_unique_ptr(ndr, r->lsa_policy_info));
8330 break; }
8332 default:
8333 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8336 if (ndr_flags & NDR_BUFFERS) {
8337 int level = ndr_push_get_switch_value(ndr, r);
8338 switch (level) {
8339 case 1:
8340 if (r->domain_info) {
8341 NDR_CHECK(ndr_push_netr_DomainInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_info));
8343 break;
8345 case 2:
8346 if (r->lsa_policy_info) {
8347 NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info));
8349 break;
8351 default:
8352 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8355 return NDR_ERR_SUCCESS;
8358 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
8360 int level;
8361 uint32_t _level;
8362 TALLOC_CTX *_mem_save_domain_info_0;
8363 TALLOC_CTX *_mem_save_lsa_policy_info_0;
8364 level = ndr_pull_get_switch_value(ndr, r);
8365 if (ndr_flags & NDR_SCALARS) {
8366 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
8367 if (_level != level) {
8368 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
8370 switch (level) {
8371 case 1: {
8372 uint32_t _ptr_domain_info;
8373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_info));
8374 if (_ptr_domain_info) {
8375 NDR_PULL_ALLOC(ndr, r->domain_info);
8376 } else {
8377 r->domain_info = NULL;
8379 break; }
8381 case 2: {
8382 uint32_t _ptr_lsa_policy_info;
8383 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lsa_policy_info));
8384 if (_ptr_lsa_policy_info) {
8385 NDR_PULL_ALLOC(ndr, r->lsa_policy_info);
8386 } else {
8387 r->lsa_policy_info = NULL;
8389 break; }
8391 default:
8392 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8395 if (ndr_flags & NDR_BUFFERS) {
8396 switch (level) {
8397 case 1:
8398 if (r->domain_info) {
8399 _mem_save_domain_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8400 NDR_PULL_SET_MEM_CTX(ndr, r->domain_info, 0);
8401 NDR_CHECK(ndr_pull_netr_DomainInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_info));
8402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_info_0, 0);
8404 break;
8406 case 2:
8407 if (r->lsa_policy_info) {
8408 _mem_save_lsa_policy_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8409 NDR_PULL_SET_MEM_CTX(ndr, r->lsa_policy_info, 0);
8410 NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info));
8411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lsa_policy_info_0, 0);
8413 break;
8415 default:
8416 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8419 return NDR_ERR_SUCCESS;
8422 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
8424 int level;
8425 level = ndr_print_get_switch_value(ndr, r);
8426 ndr_print_union(ndr, name, level, "netr_DomainInfo");
8427 switch (level) {
8428 case 1:
8429 ndr_print_ptr(ndr, "domain_info", r->domain_info);
8430 ndr->depth++;
8431 if (r->domain_info) {
8432 ndr_print_netr_DomainInformation(ndr, "domain_info", r->domain_info);
8434 ndr->depth--;
8435 break;
8437 case 2:
8438 ndr_print_ptr(ndr, "lsa_policy_info", r->lsa_policy_info);
8439 ndr->depth++;
8440 if (r->lsa_policy_info) {
8441 ndr_print_netr_LsaPolicyInformation(ndr, "lsa_policy_info", r->lsa_policy_info);
8443 ndr->depth--;
8444 break;
8446 default:
8447 ndr_print_bad_level(ndr, name, level);
8451 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
8454 uint32_t _flags_save_STRUCT = ndr->flags;
8455 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
8456 if (ndr_flags & NDR_SCALARS) {
8457 NDR_CHECK(ndr_push_align(ndr, 4));
8458 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
8459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
8461 if (ndr_flags & NDR_BUFFERS) {
8463 ndr->flags = _flags_save_STRUCT;
8465 return NDR_ERR_SUCCESS;
8468 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
8471 uint32_t _flags_save_STRUCT = ndr->flags;
8472 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
8473 if (ndr_flags & NDR_SCALARS) {
8474 NDR_CHECK(ndr_pull_align(ndr, 4));
8475 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
8476 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
8478 if (ndr_flags & NDR_BUFFERS) {
8480 ndr->flags = _flags_save_STRUCT;
8482 return NDR_ERR_SUCCESS;
8485 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
8487 ndr_print_struct(ndr, name, "netr_CryptPassword");
8489 uint32_t _flags_save_STRUCT = ndr->flags;
8490 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
8491 ndr->depth++;
8492 ndr_print_array_uint8(ndr, "data", r->data, 512);
8493 ndr_print_uint32(ndr, "length", r->length);
8494 ndr->depth--;
8495 ndr->flags = _flags_save_STRUCT;
8499 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
8501 uint32_t cntr_sitename_1;
8502 if (ndr_flags & NDR_SCALARS) {
8503 NDR_CHECK(ndr_push_align(ndr, 5));
8504 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8505 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
8507 if (ndr_flags & NDR_BUFFERS) {
8508 if (r->sitename) {
8509 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
8510 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8511 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8513 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8514 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8518 return NDR_ERR_SUCCESS;
8521 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
8523 uint32_t _ptr_sitename;
8524 uint32_t cntr_sitename_1;
8525 TALLOC_CTX *_mem_save_sitename_0;
8526 TALLOC_CTX *_mem_save_sitename_1;
8527 if (ndr_flags & NDR_SCALARS) {
8528 NDR_CHECK(ndr_pull_align(ndr, 5));
8529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8530 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
8531 if (_ptr_sitename) {
8532 NDR_PULL_ALLOC(ndr, r->sitename);
8533 } else {
8534 r->sitename = NULL;
8537 if (ndr_flags & NDR_BUFFERS) {
8538 if (r->sitename) {
8539 _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
8540 NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8541 NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
8542 NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
8543 _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
8544 NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8545 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8546 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8548 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8549 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8551 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
8552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
8554 if (r->sitename) {
8555 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
8558 return NDR_ERR_SUCCESS;
8561 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
8563 uint32_t cntr_sitename_1;
8564 ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
8565 ndr->depth++;
8566 ndr_print_uint32(ndr, "count", r->count);
8567 ndr_print_ptr(ndr, "sitename", r->sitename);
8568 ndr->depth++;
8569 if (r->sitename) {
8570 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
8571 ndr->depth++;
8572 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
8573 char *idx_1=NULL;
8574 if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
8575 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
8576 free(idx_1);
8579 ndr->depth--;
8581 ndr->depth--;
8582 ndr->depth--;
8585 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
8587 if (ndr_flags & NDR_SCALARS) {
8588 NDR_CHECK(ndr_push_align(ndr, 5));
8589 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
8590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8592 if (ndr_flags & NDR_BUFFERS) {
8593 if (r->buffer) {
8594 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size));
8595 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
8598 return NDR_ERR_SUCCESS;
8601 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
8603 uint32_t _ptr_buffer;
8604 TALLOC_CTX *_mem_save_buffer_0;
8605 if (ndr_flags & NDR_SCALARS) {
8606 NDR_CHECK(ndr_pull_align(ndr, 5));
8607 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
8608 if (_ptr_buffer) {
8609 NDR_PULL_ALLOC(ndr, r->buffer);
8610 } else {
8611 r->buffer = NULL;
8613 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
8615 if (ndr_flags & NDR_BUFFERS) {
8616 if (r->buffer) {
8617 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
8618 NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
8619 NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
8620 NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
8621 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
8622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
8624 if (r->buffer) {
8625 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
8628 return NDR_ERR_SUCCESS;
8631 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
8633 ndr_print_struct(ndr, name, "netr_DsRAddress");
8634 ndr->depth++;
8635 ndr_print_ptr(ndr, "buffer", r->buffer);
8636 ndr->depth++;
8637 if (r->buffer) {
8638 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
8640 ndr->depth--;
8641 ndr_print_uint32(ndr, "size", r->size);
8642 ndr->depth--;
8645 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
8647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8648 return NDR_ERR_SUCCESS;
8651 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
8653 uint32_t v;
8654 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8655 *r = v;
8656 return NDR_ERR_SUCCESS;
8659 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
8661 const char *val = NULL;
8663 switch (r) {
8664 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
8665 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
8666 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
8667 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
8669 ndr_print_enum(ndr, name, "ENUM", val, r);
8672 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
8674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8675 return NDR_ERR_SUCCESS;
8678 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
8680 uint32_t v;
8681 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8682 *r = v;
8683 return NDR_ERR_SUCCESS;
8686 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
8688 ndr_print_uint32(ndr, name, r);
8689 ndr->depth++;
8690 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
8691 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
8692 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
8693 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
8694 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
8695 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
8696 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
8697 ndr->depth--;
8700 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
8702 if (ndr_flags & NDR_SCALARS) {
8703 NDR_CHECK(ndr_push_align(ndr, 5));
8704 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
8705 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
8706 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
8707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
8708 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
8709 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
8710 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
8711 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
8713 if (ndr_flags & NDR_BUFFERS) {
8714 if (r->netbios_name) {
8715 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
8716 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8717 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
8718 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8720 if (r->dns_name) {
8721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
8722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8723 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
8724 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8726 if (r->sid) {
8727 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
8730 return NDR_ERR_SUCCESS;
8733 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
8735 uint32_t _ptr_netbios_name;
8736 TALLOC_CTX *_mem_save_netbios_name_0;
8737 uint32_t _ptr_dns_name;
8738 TALLOC_CTX *_mem_save_dns_name_0;
8739 uint32_t _ptr_sid;
8740 TALLOC_CTX *_mem_save_sid_0;
8741 if (ndr_flags & NDR_SCALARS) {
8742 NDR_CHECK(ndr_pull_align(ndr, 5));
8743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
8744 if (_ptr_netbios_name) {
8745 NDR_PULL_ALLOC(ndr, r->netbios_name);
8746 } else {
8747 r->netbios_name = NULL;
8749 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
8750 if (_ptr_dns_name) {
8751 NDR_PULL_ALLOC(ndr, r->dns_name);
8752 } else {
8753 r->dns_name = NULL;
8755 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
8756 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
8757 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
8758 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
8759 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
8760 if (_ptr_sid) {
8761 NDR_PULL_ALLOC(ndr, r->sid);
8762 } else {
8763 r->sid = NULL;
8765 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
8767 if (ndr_flags & NDR_BUFFERS) {
8768 if (r->netbios_name) {
8769 _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8770 NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
8771 NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
8772 NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
8773 if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
8774 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));
8776 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
8777 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
8778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
8780 if (r->dns_name) {
8781 _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8782 NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
8783 NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
8784 NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
8785 if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
8786 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));
8788 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
8789 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
8790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
8792 if (r->sid) {
8793 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8794 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
8795 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
8796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
8799 return NDR_ERR_SUCCESS;
8802 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
8804 ndr_print_struct(ndr, name, "netr_DomainTrust");
8805 ndr->depth++;
8806 ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
8807 ndr->depth++;
8808 if (r->netbios_name) {
8809 ndr_print_string(ndr, "netbios_name", r->netbios_name);
8811 ndr->depth--;
8812 ndr_print_ptr(ndr, "dns_name", r->dns_name);
8813 ndr->depth++;
8814 if (r->dns_name) {
8815 ndr_print_string(ndr, "dns_name", r->dns_name);
8817 ndr->depth--;
8818 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
8819 ndr_print_uint32(ndr, "parent_index", r->parent_index);
8820 ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
8821 ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
8822 ndr_print_ptr(ndr, "sid", r->sid);
8823 ndr->depth++;
8824 if (r->sid) {
8825 ndr_print_dom_sid2(ndr, "sid", r->sid);
8827 ndr->depth--;
8828 ndr_print_GUID(ndr, "guid", &r->guid);
8829 ndr->depth--;
8832 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
8834 uint32_t cntr_array_1;
8835 if (ndr_flags & NDR_SCALARS) {
8836 NDR_CHECK(ndr_push_align(ndr, 5));
8837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8838 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
8840 if (ndr_flags & NDR_BUFFERS) {
8841 if (r->array) {
8842 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
8843 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8844 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8846 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8847 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8851 return NDR_ERR_SUCCESS;
8854 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
8856 uint32_t _ptr_array;
8857 uint32_t cntr_array_1;
8858 TALLOC_CTX *_mem_save_array_0;
8859 TALLOC_CTX *_mem_save_array_1;
8860 if (ndr_flags & NDR_SCALARS) {
8861 NDR_CHECK(ndr_pull_align(ndr, 5));
8862 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8863 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
8864 if (_ptr_array) {
8865 NDR_PULL_ALLOC(ndr, r->array);
8866 } else {
8867 r->array = NULL;
8870 if (ndr_flags & NDR_BUFFERS) {
8871 if (r->array) {
8872 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8873 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8874 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
8875 NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
8876 _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
8877 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8878 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8879 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8881 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8882 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
8885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
8887 if (r->array) {
8888 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
8891 return NDR_ERR_SUCCESS;
8894 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
8896 uint32_t cntr_array_1;
8897 ndr_print_struct(ndr, name, "netr_DomainTrustList");
8898 ndr->depth++;
8899 ndr_print_uint32(ndr, "count", r->count);
8900 ndr_print_ptr(ndr, "array", r->array);
8901 ndr->depth++;
8902 if (r->array) {
8903 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
8904 ndr->depth++;
8905 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
8906 char *idx_1=NULL;
8907 if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
8908 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
8909 free(idx_1);
8912 ndr->depth--;
8914 ndr->depth--;
8915 ndr->depth--;
8918 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
8920 uint32_t cntr_sitename_1;
8921 uint32_t cntr_subnetname_1;
8922 if (ndr_flags & NDR_SCALARS) {
8923 NDR_CHECK(ndr_push_align(ndr, 5));
8924 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8925 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
8926 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
8928 if (ndr_flags & NDR_BUFFERS) {
8929 if (r->sitename) {
8930 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
8931 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8932 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8934 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8935 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8938 if (r->subnetname) {
8939 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
8940 for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8941 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
8943 for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8944 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
8948 return NDR_ERR_SUCCESS;
8951 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
8953 uint32_t _ptr_sitename;
8954 uint32_t cntr_sitename_1;
8955 TALLOC_CTX *_mem_save_sitename_0;
8956 TALLOC_CTX *_mem_save_sitename_1;
8957 uint32_t _ptr_subnetname;
8958 uint32_t cntr_subnetname_1;
8959 TALLOC_CTX *_mem_save_subnetname_0;
8960 TALLOC_CTX *_mem_save_subnetname_1;
8961 if (ndr_flags & NDR_SCALARS) {
8962 NDR_CHECK(ndr_pull_align(ndr, 5));
8963 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8964 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
8965 if (_ptr_sitename) {
8966 NDR_PULL_ALLOC(ndr, r->sitename);
8967 } else {
8968 r->sitename = NULL;
8970 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
8971 if (_ptr_subnetname) {
8972 NDR_PULL_ALLOC(ndr, r->subnetname);
8973 } else {
8974 r->subnetname = NULL;
8977 if (ndr_flags & NDR_BUFFERS) {
8978 if (r->sitename) {
8979 _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
8980 NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8981 NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
8982 NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
8983 _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
8984 NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8985 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8986 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8988 for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8989 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
8992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
8994 if (r->subnetname) {
8995 _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
8996 NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
8997 NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
8998 NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
8999 _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
9000 NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
9001 for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
9002 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
9004 for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
9005 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
9007 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
9008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
9010 if (r->sitename) {
9011 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
9013 if (r->subnetname) {
9014 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
9017 return NDR_ERR_SUCCESS;
9020 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
9022 uint32_t cntr_sitename_1;
9023 uint32_t cntr_subnetname_1;
9024 ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
9025 ndr->depth++;
9026 ndr_print_uint32(ndr, "count", r->count);
9027 ndr_print_ptr(ndr, "sitename", r->sitename);
9028 ndr->depth++;
9029 if (r->sitename) {
9030 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
9031 ndr->depth++;
9032 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
9033 char *idx_1=NULL;
9034 if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
9035 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
9036 free(idx_1);
9039 ndr->depth--;
9041 ndr->depth--;
9042 ndr_print_ptr(ndr, "subnetname", r->subnetname);
9043 ndr->depth++;
9044 if (r->subnetname) {
9045 ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", (int)r->count);
9046 ndr->depth++;
9047 for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
9048 char *idx_1=NULL;
9049 if (asprintf(&idx_1, "[%d]", cntr_subnetname_1) != -1) {
9050 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
9051 free(idx_1);
9054 ndr->depth--;
9056 ndr->depth--;
9057 ndr->depth--;
9060 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
9062 uint32_t cntr_sites_1;
9063 if (ndr_flags & NDR_SCALARS) {
9064 NDR_CHECK(ndr_push_align(ndr, 5));
9065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
9066 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
9068 if (ndr_flags & NDR_BUFFERS) {
9069 if (r->sites) {
9070 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_sites));
9071 for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
9072 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
9074 for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
9075 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
9079 return NDR_ERR_SUCCESS;
9082 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
9084 uint32_t _ptr_sites;
9085 uint32_t cntr_sites_1;
9086 TALLOC_CTX *_mem_save_sites_0;
9087 TALLOC_CTX *_mem_save_sites_1;
9088 if (ndr_flags & NDR_SCALARS) {
9089 NDR_CHECK(ndr_pull_align(ndr, 5));
9090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
9091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
9092 if (_ptr_sites) {
9093 NDR_PULL_ALLOC(ndr, r->sites);
9094 } else {
9095 r->sites = NULL;
9098 if (ndr_flags & NDR_BUFFERS) {
9099 if (r->sites) {
9100 _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
9101 NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
9102 NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
9103 NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
9104 _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
9105 NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
9106 for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
9107 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
9109 for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
9110 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
9112 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
9113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
9115 if (r->sites) {
9116 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
9119 return NDR_ERR_SUCCESS;
9122 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
9124 uint32_t cntr_sites_1;
9125 ndr_print_struct(ndr, name, "DcSitesCtr");
9126 ndr->depth++;
9127 ndr_print_uint32(ndr, "num_sites", r->num_sites);
9128 ndr_print_ptr(ndr, "sites", r->sites);
9129 ndr->depth++;
9130 if (r->sites) {
9131 ndr->print(ndr, "%s: ARRAY(%d)", "sites", (int)r->num_sites);
9132 ndr->depth++;
9133 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
9134 char *idx_1=NULL;
9135 if (asprintf(&idx_1, "[%d]", cntr_sites_1) != -1) {
9136 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
9137 free(idx_1);
9140 ndr->depth--;
9142 ndr->depth--;
9143 ndr->depth--;
9146 static enum ndr_err_code ndr_push_netr_TrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_TrustInfo *r)
9148 uint32_t cntr_data_1;
9149 uint32_t cntr_entries_1;
9150 if (ndr_flags & NDR_SCALARS) {
9151 NDR_CHECK(ndr_push_align(ndr, 5));
9152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9153 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
9154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entry_count));
9155 NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
9157 if (ndr_flags & NDR_BUFFERS) {
9158 if (r->data) {
9159 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
9160 for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
9161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data[cntr_data_1]));
9164 if (r->entries) {
9165 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
9166 for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
9167 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
9169 for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
9170 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
9174 return NDR_ERR_SUCCESS;
9177 static enum ndr_err_code ndr_pull_netr_TrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_TrustInfo *r)
9179 uint32_t _ptr_data;
9180 uint32_t cntr_data_1;
9181 TALLOC_CTX *_mem_save_data_0;
9182 TALLOC_CTX *_mem_save_data_1;
9183 uint32_t _ptr_entries;
9184 uint32_t cntr_entries_1;
9185 TALLOC_CTX *_mem_save_entries_0;
9186 TALLOC_CTX *_mem_save_entries_1;
9187 if (ndr_flags & NDR_SCALARS) {
9188 NDR_CHECK(ndr_pull_align(ndr, 5));
9189 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
9190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
9191 if (_ptr_data) {
9192 NDR_PULL_ALLOC(ndr, r->data);
9193 } else {
9194 r->data = NULL;
9196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->entry_count));
9197 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
9198 if (_ptr_entries) {
9199 NDR_PULL_ALLOC(ndr, r->entries);
9200 } else {
9201 r->entries = NULL;
9204 if (ndr_flags & NDR_BUFFERS) {
9205 if (r->data) {
9206 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
9207 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
9208 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
9209 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
9210 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
9211 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
9212 for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
9213 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
9215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
9216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
9218 if (r->entries) {
9219 _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9220 NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
9221 NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
9222 NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
9223 _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
9224 NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
9225 for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
9226 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
9228 for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
9229 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
9231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
9232 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
9234 if (r->data) {
9235 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->count));
9237 if (r->entries) {
9238 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
9241 return NDR_ERR_SUCCESS;
9244 _PUBLIC_ void ndr_print_netr_TrustInfo(struct ndr_print *ndr, const char *name, const struct netr_TrustInfo *r)
9246 uint32_t cntr_data_1;
9247 uint32_t cntr_entries_1;
9248 ndr_print_struct(ndr, name, "netr_TrustInfo");
9249 ndr->depth++;
9250 ndr_print_uint32(ndr, "count", r->count);
9251 ndr_print_ptr(ndr, "data", r->data);
9252 ndr->depth++;
9253 if (r->data) {
9254 ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)r->count);
9255 ndr->depth++;
9256 for (cntr_data_1=0;cntr_data_1<r->count;cntr_data_1++) {
9257 char *idx_1=NULL;
9258 if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
9259 ndr_print_uint32(ndr, "data", r->data[cntr_data_1]);
9260 free(idx_1);
9263 ndr->depth--;
9265 ndr->depth--;
9266 ndr_print_uint32(ndr, "entry_count", r->entry_count);
9267 ndr_print_ptr(ndr, "entries", r->entries);
9268 ndr->depth++;
9269 if (r->entries) {
9270 ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
9271 ndr->depth++;
9272 for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
9273 char *idx_1=NULL;
9274 if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
9275 ndr_print_lsa_String(ndr, "entries", &r->entries[cntr_entries_1]);
9276 free(idx_1);
9279 ndr->depth--;
9281 ndr->depth--;
9282 ndr->depth--;
9285 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
9287 if (flags & NDR_IN) {
9288 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9289 if (r->in.server_name) {
9290 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9291 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9292 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9293 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));
9295 if (r->in.account_name == NULL) {
9296 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9298 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9299 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9300 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9301 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));
9302 if (r->in.workstation == NULL) {
9303 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9305 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
9306 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9307 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
9308 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9310 if (flags & NDR_OUT) {
9311 if (r->out.info == NULL) {
9312 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9314 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
9315 if (*r->out.info) {
9316 NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
9318 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9320 return NDR_ERR_SUCCESS;
9323 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
9325 uint32_t _ptr_server_name;
9326 uint32_t _ptr_info;
9327 TALLOC_CTX *_mem_save_server_name_0;
9328 TALLOC_CTX *_mem_save_info_0;
9329 TALLOC_CTX *_mem_save_info_1;
9330 if (flags & NDR_IN) {
9331 ZERO_STRUCT(r->out);
9333 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9334 if (_ptr_server_name) {
9335 NDR_PULL_ALLOC(ndr, r->in.server_name);
9336 } else {
9337 r->in.server_name = NULL;
9339 if (r->in.server_name) {
9340 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9341 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9342 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9343 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9344 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9345 return 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));
9347 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9348 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));
9349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9351 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9352 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9353 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9354 return 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));
9356 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9357 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));
9358 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
9359 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
9360 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
9361 return 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));
9363 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
9364 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
9365 NDR_PULL_ALLOC(ndr, r->out.info);
9366 ZERO_STRUCTP(r->out.info);
9368 if (flags & NDR_OUT) {
9369 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9370 NDR_PULL_ALLOC(ndr, r->out.info);
9372 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9373 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9374 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
9375 if (_ptr_info) {
9376 NDR_PULL_ALLOC(ndr, *r->out.info);
9377 } else {
9378 *r->out.info = NULL;
9380 if (*r->out.info) {
9381 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
9382 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
9383 NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
9384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
9386 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9387 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9389 return NDR_ERR_SUCCESS;
9392 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
9394 ndr_print_struct(ndr, name, "netr_LogonUasLogon");
9395 ndr->depth++;
9396 if (flags & NDR_SET_VALUES) {
9397 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9399 if (flags & NDR_IN) {
9400 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
9401 ndr->depth++;
9402 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9403 ndr->depth++;
9404 if (r->in.server_name) {
9405 ndr_print_string(ndr, "server_name", r->in.server_name);
9407 ndr->depth--;
9408 ndr_print_ptr(ndr, "account_name", r->in.account_name);
9409 ndr->depth++;
9410 ndr_print_string(ndr, "account_name", r->in.account_name);
9411 ndr->depth--;
9412 ndr_print_ptr(ndr, "workstation", r->in.workstation);
9413 ndr->depth++;
9414 ndr_print_string(ndr, "workstation", r->in.workstation);
9415 ndr->depth--;
9416 ndr->depth--;
9418 if (flags & NDR_OUT) {
9419 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
9420 ndr->depth++;
9421 ndr_print_ptr(ndr, "info", r->out.info);
9422 ndr->depth++;
9423 ndr_print_ptr(ndr, "info", *r->out.info);
9424 ndr->depth++;
9425 if (*r->out.info) {
9426 ndr_print_netr_UasInfo(ndr, "info", *r->out.info);
9428 ndr->depth--;
9429 ndr->depth--;
9430 ndr_print_WERROR(ndr, "result", r->out.result);
9431 ndr->depth--;
9433 ndr->depth--;
9436 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
9438 if (flags & NDR_IN) {
9439 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9440 if (r->in.server_name) {
9441 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9442 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9443 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9444 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));
9446 if (r->in.account_name == NULL) {
9447 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9449 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9450 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9451 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9452 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));
9453 if (r->in.workstation == NULL) {
9454 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9456 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
9457 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9458 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
9459 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9461 if (flags & NDR_OUT) {
9462 if (r->out.info == NULL) {
9463 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9465 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
9466 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9468 return NDR_ERR_SUCCESS;
9471 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
9473 uint32_t _ptr_server_name;
9474 TALLOC_CTX *_mem_save_server_name_0;
9475 TALLOC_CTX *_mem_save_info_0;
9476 if (flags & NDR_IN) {
9477 ZERO_STRUCT(r->out);
9479 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9480 if (_ptr_server_name) {
9481 NDR_PULL_ALLOC(ndr, r->in.server_name);
9482 } else {
9483 r->in.server_name = NULL;
9485 if (r->in.server_name) {
9486 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9487 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9488 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9489 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9490 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9491 return 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));
9493 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9494 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));
9495 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9497 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9498 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9499 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9500 return 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));
9502 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9503 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));
9504 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
9505 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
9506 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
9507 return 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));
9509 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
9510 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
9511 NDR_PULL_ALLOC(ndr, r->out.info);
9512 ZERO_STRUCTP(r->out.info);
9514 if (flags & NDR_OUT) {
9515 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9516 NDR_PULL_ALLOC(ndr, r->out.info);
9518 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9519 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9520 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
9521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9522 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9524 return NDR_ERR_SUCCESS;
9527 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
9529 ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
9530 ndr->depth++;
9531 if (flags & NDR_SET_VALUES) {
9532 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9534 if (flags & NDR_IN) {
9535 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
9536 ndr->depth++;
9537 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9538 ndr->depth++;
9539 if (r->in.server_name) {
9540 ndr_print_string(ndr, "server_name", r->in.server_name);
9542 ndr->depth--;
9543 ndr_print_ptr(ndr, "account_name", r->in.account_name);
9544 ndr->depth++;
9545 ndr_print_string(ndr, "account_name", r->in.account_name);
9546 ndr->depth--;
9547 ndr_print_ptr(ndr, "workstation", r->in.workstation);
9548 ndr->depth++;
9549 ndr_print_string(ndr, "workstation", r->in.workstation);
9550 ndr->depth--;
9551 ndr->depth--;
9553 if (flags & NDR_OUT) {
9554 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
9555 ndr->depth++;
9556 ndr_print_ptr(ndr, "info", r->out.info);
9557 ndr->depth++;
9558 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
9559 ndr->depth--;
9560 ndr_print_WERROR(ndr, "result", r->out.result);
9561 ndr->depth--;
9563 ndr->depth--;
9566 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
9568 if (flags & NDR_IN) {
9569 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9570 if (r->in.server_name) {
9571 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9572 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9573 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9574 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));
9576 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
9577 if (r->in.computer_name) {
9578 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9579 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9580 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9581 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));
9583 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
9584 if (r->in.credential) {
9585 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9587 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
9588 if (r->in.return_authenticator) {
9589 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9591 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
9592 if (r->in.logon == NULL) {
9593 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9595 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
9596 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
9597 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
9599 if (flags & NDR_OUT) {
9600 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
9601 if (r->out.return_authenticator) {
9602 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9604 if (r->out.validation == NULL) {
9605 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9607 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
9608 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
9609 if (r->out.authoritative == NULL) {
9610 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9612 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
9613 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9615 return NDR_ERR_SUCCESS;
9618 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
9620 uint32_t _ptr_server_name;
9621 uint32_t _ptr_computer_name;
9622 uint32_t _ptr_credential;
9623 uint32_t _ptr_return_authenticator;
9624 TALLOC_CTX *_mem_save_server_name_0;
9625 TALLOC_CTX *_mem_save_computer_name_0;
9626 TALLOC_CTX *_mem_save_credential_0;
9627 TALLOC_CTX *_mem_save_return_authenticator_0;
9628 TALLOC_CTX *_mem_save_logon_0;
9629 TALLOC_CTX *_mem_save_validation_0;
9630 TALLOC_CTX *_mem_save_authoritative_0;
9631 if (flags & NDR_IN) {
9632 ZERO_STRUCT(r->out);
9634 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9635 if (_ptr_server_name) {
9636 NDR_PULL_ALLOC(ndr, r->in.server_name);
9637 } else {
9638 r->in.server_name = NULL;
9640 if (r->in.server_name) {
9641 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9642 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9643 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9644 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9645 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9646 return 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));
9648 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9649 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));
9650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9652 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
9653 if (_ptr_computer_name) {
9654 NDR_PULL_ALLOC(ndr, r->in.computer_name);
9655 } else {
9656 r->in.computer_name = NULL;
9658 if (r->in.computer_name) {
9659 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9660 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
9661 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9662 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9663 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9664 return 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));
9666 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9667 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));
9668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
9670 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
9671 if (_ptr_credential) {
9672 NDR_PULL_ALLOC(ndr, r->in.credential);
9673 } else {
9674 r->in.credential = NULL;
9676 if (r->in.credential) {
9677 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9678 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
9679 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
9682 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9683 if (_ptr_return_authenticator) {
9684 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9685 } else {
9686 r->in.return_authenticator = NULL;
9688 if (r->in.return_authenticator) {
9689 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9690 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
9691 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9694 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
9695 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9696 NDR_PULL_ALLOC(ndr, r->in.logon);
9698 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
9699 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
9700 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
9701 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
9702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
9703 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
9704 NDR_PULL_ALLOC(ndr, r->out.validation);
9705 ZERO_STRUCTP(r->out.validation);
9706 NDR_PULL_ALLOC(ndr, r->out.authoritative);
9707 ZERO_STRUCTP(r->out.authoritative);
9709 if (flags & NDR_OUT) {
9710 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9711 if (_ptr_return_authenticator) {
9712 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9713 } else {
9714 r->out.return_authenticator = NULL;
9716 if (r->out.return_authenticator) {
9717 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9718 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
9719 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9722 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9723 NDR_PULL_ALLOC(ndr, r->out.validation);
9725 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
9726 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
9727 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
9728 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
9729 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
9730 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9731 NDR_PULL_ALLOC(ndr, r->out.authoritative);
9733 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
9734 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
9735 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
9736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
9737 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9739 return NDR_ERR_SUCCESS;
9742 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
9744 ndr_print_struct(ndr, name, "netr_LogonSamLogon");
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_LogonSamLogon");
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_ptr(ndr, "computer_name", r->in.computer_name);
9759 ndr->depth++;
9760 if (r->in.computer_name) {
9761 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9763 ndr->depth--;
9764 ndr_print_ptr(ndr, "credential", r->in.credential);
9765 ndr->depth++;
9766 if (r->in.credential) {
9767 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9769 ndr->depth--;
9770 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9771 ndr->depth++;
9772 if (r->in.return_authenticator) {
9773 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9775 ndr->depth--;
9776 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
9777 ndr_print_ptr(ndr, "logon", r->in.logon);
9778 ndr->depth++;
9779 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
9780 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
9781 ndr->depth--;
9782 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
9783 ndr->depth--;
9785 if (flags & NDR_OUT) {
9786 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
9787 ndr->depth++;
9788 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9789 ndr->depth++;
9790 if (r->out.return_authenticator) {
9791 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9793 ndr->depth--;
9794 ndr_print_ptr(ndr, "validation", r->out.validation);
9795 ndr->depth++;
9796 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
9797 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
9798 ndr->depth--;
9799 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
9800 ndr->depth++;
9801 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
9802 ndr->depth--;
9803 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9804 ndr->depth--;
9806 ndr->depth--;
9809 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
9811 if (flags & NDR_IN) {
9812 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9813 if (r->in.server_name) {
9814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9815 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9816 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9817 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));
9819 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
9820 if (r->in.computer_name) {
9821 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9822 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9823 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9824 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));
9826 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
9827 if (r->in.credential) {
9828 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9830 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
9831 if (r->in.return_authenticator) {
9832 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9834 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
9835 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
9836 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
9838 if (flags & NDR_OUT) {
9839 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
9840 if (r->out.return_authenticator) {
9841 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9843 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9845 return NDR_ERR_SUCCESS;
9848 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
9850 uint32_t _ptr_server_name;
9851 uint32_t _ptr_computer_name;
9852 uint32_t _ptr_credential;
9853 uint32_t _ptr_return_authenticator;
9854 TALLOC_CTX *_mem_save_server_name_0;
9855 TALLOC_CTX *_mem_save_computer_name_0;
9856 TALLOC_CTX *_mem_save_credential_0;
9857 TALLOC_CTX *_mem_save_return_authenticator_0;
9858 if (flags & NDR_IN) {
9859 ZERO_STRUCT(r->out);
9861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9862 if (_ptr_server_name) {
9863 NDR_PULL_ALLOC(ndr, r->in.server_name);
9864 } else {
9865 r->in.server_name = NULL;
9867 if (r->in.server_name) {
9868 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9869 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9870 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9871 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9872 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9873 return 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));
9875 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9876 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));
9877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
9880 if (_ptr_computer_name) {
9881 NDR_PULL_ALLOC(ndr, r->in.computer_name);
9882 } else {
9883 r->in.computer_name = NULL;
9885 if (r->in.computer_name) {
9886 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9887 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
9888 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9889 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9890 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9891 return 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));
9893 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9894 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));
9895 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
9897 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
9898 if (_ptr_credential) {
9899 NDR_PULL_ALLOC(ndr, r->in.credential);
9900 } else {
9901 r->in.credential = NULL;
9903 if (r->in.credential) {
9904 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9905 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
9906 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
9909 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9910 if (_ptr_return_authenticator) {
9911 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9912 } else {
9913 r->in.return_authenticator = NULL;
9915 if (r->in.return_authenticator) {
9916 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9917 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
9918 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9921 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
9922 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
9923 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
9925 if (flags & NDR_OUT) {
9926 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9927 if (_ptr_return_authenticator) {
9928 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9929 } else {
9930 r->out.return_authenticator = NULL;
9932 if (r->out.return_authenticator) {
9933 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9934 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
9935 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9938 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9940 return NDR_ERR_SUCCESS;
9943 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
9945 ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
9946 ndr->depth++;
9947 if (flags & NDR_SET_VALUES) {
9948 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9950 if (flags & NDR_IN) {
9951 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
9952 ndr->depth++;
9953 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9954 ndr->depth++;
9955 if (r->in.server_name) {
9956 ndr_print_string(ndr, "server_name", r->in.server_name);
9958 ndr->depth--;
9959 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
9960 ndr->depth++;
9961 if (r->in.computer_name) {
9962 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9964 ndr->depth--;
9965 ndr_print_ptr(ndr, "credential", r->in.credential);
9966 ndr->depth++;
9967 if (r->in.credential) {
9968 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9970 ndr->depth--;
9971 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9972 ndr->depth++;
9973 if (r->in.return_authenticator) {
9974 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9976 ndr->depth--;
9977 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
9978 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
9979 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
9980 ndr->depth--;
9982 if (flags & NDR_OUT) {
9983 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
9984 ndr->depth++;
9985 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9986 ndr->depth++;
9987 if (r->out.return_authenticator) {
9988 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9990 ndr->depth--;
9991 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9992 ndr->depth--;
9994 ndr->depth--;
9997 _PUBLIC_ enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
9999 if (flags & NDR_IN) {
10000 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10001 if (r->in.server_name) {
10002 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10003 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10004 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10005 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));
10007 if (r->in.computer_name == NULL) {
10008 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10010 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10011 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10012 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10013 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));
10014 if (r->in.credentials == NULL) {
10015 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10017 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10019 if (flags & NDR_OUT) {
10020 if (r->out.return_credentials == NULL) {
10021 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10023 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10024 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10026 return NDR_ERR_SUCCESS;
10029 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
10031 uint32_t _ptr_server_name;
10032 TALLOC_CTX *_mem_save_server_name_0;
10033 TALLOC_CTX *_mem_save_credentials_0;
10034 TALLOC_CTX *_mem_save_return_credentials_0;
10035 if (flags & NDR_IN) {
10036 ZERO_STRUCT(r->out);
10038 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10039 if (_ptr_server_name) {
10040 NDR_PULL_ALLOC(ndr, r->in.server_name);
10041 } else {
10042 r->in.server_name = NULL;
10044 if (r->in.server_name) {
10045 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10046 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10047 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10048 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10049 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10050 return 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));
10052 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10053 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));
10054 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10056 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10057 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10058 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10059 return 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));
10061 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10062 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));
10063 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10064 NDR_PULL_ALLOC(ndr, r->in.credentials);
10066 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10067 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10068 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10069 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10070 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10071 ZERO_STRUCTP(r->out.return_credentials);
10073 if (flags & NDR_OUT) {
10074 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10075 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10077 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10078 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
10079 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10081 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10083 return NDR_ERR_SUCCESS;
10086 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
10088 ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
10089 ndr->depth++;
10090 if (flags & NDR_SET_VALUES) {
10091 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10093 if (flags & NDR_IN) {
10094 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
10095 ndr->depth++;
10096 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10097 ndr->depth++;
10098 if (r->in.server_name) {
10099 ndr_print_string(ndr, "server_name", r->in.server_name);
10101 ndr->depth--;
10102 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
10103 ndr->depth++;
10104 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10105 ndr->depth--;
10106 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10107 ndr->depth++;
10108 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10109 ndr->depth--;
10110 ndr->depth--;
10112 if (flags & NDR_OUT) {
10113 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
10114 ndr->depth++;
10115 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
10116 ndr->depth++;
10117 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
10118 ndr->depth--;
10119 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10120 ndr->depth--;
10122 ndr->depth--;
10125 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
10127 if (flags & NDR_IN) {
10128 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10129 if (r->in.server_name) {
10130 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10131 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10132 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10133 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));
10135 if (r->in.account_name == NULL) {
10136 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10138 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10139 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10140 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10141 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));
10142 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10143 if (r->in.computer_name == NULL) {
10144 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10146 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10147 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10148 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10149 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));
10150 if (r->in.credentials == NULL) {
10151 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10153 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10155 if (flags & NDR_OUT) {
10156 if (r->out.return_credentials == NULL) {
10157 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10159 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10160 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10162 return NDR_ERR_SUCCESS;
10165 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
10167 uint32_t _ptr_server_name;
10168 TALLOC_CTX *_mem_save_server_name_0;
10169 TALLOC_CTX *_mem_save_credentials_0;
10170 TALLOC_CTX *_mem_save_return_credentials_0;
10171 if (flags & NDR_IN) {
10172 ZERO_STRUCT(r->out);
10174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10175 if (_ptr_server_name) {
10176 NDR_PULL_ALLOC(ndr, r->in.server_name);
10177 } else {
10178 r->in.server_name = NULL;
10180 if (r->in.server_name) {
10181 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10182 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10183 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10184 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10185 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10186 return 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));
10188 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10189 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));
10190 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10192 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10193 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10194 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10195 return 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));
10197 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10198 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));
10199 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10200 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10201 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10202 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10203 return 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));
10205 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10206 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));
10207 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10208 NDR_PULL_ALLOC(ndr, r->in.credentials);
10210 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10211 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10212 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10214 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10215 ZERO_STRUCTP(r->out.return_credentials);
10217 if (flags & NDR_OUT) {
10218 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10219 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10221 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10222 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
10223 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10225 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10227 return NDR_ERR_SUCCESS;
10230 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
10232 ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
10233 ndr->depth++;
10234 if (flags & NDR_SET_VALUES) {
10235 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10237 if (flags & NDR_IN) {
10238 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
10239 ndr->depth++;
10240 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10241 ndr->depth++;
10242 if (r->in.server_name) {
10243 ndr_print_string(ndr, "server_name", r->in.server_name);
10245 ndr->depth--;
10246 ndr_print_ptr(ndr, "account_name", r->in.account_name);
10247 ndr->depth++;
10248 ndr_print_string(ndr, "account_name", r->in.account_name);
10249 ndr->depth--;
10250 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10251 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
10252 ndr->depth++;
10253 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10254 ndr->depth--;
10255 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10256 ndr->depth++;
10257 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10258 ndr->depth--;
10259 ndr->depth--;
10261 if (flags & NDR_OUT) {
10262 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
10263 ndr->depth++;
10264 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
10265 ndr->depth++;
10266 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
10267 ndr->depth--;
10268 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10269 ndr->depth--;
10271 ndr->depth--;
10274 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
10276 if (flags & NDR_IN) {
10277 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10278 if (r->in.server_name) {
10279 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10280 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10281 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10282 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));
10284 if (r->in.account_name == NULL) {
10285 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10287 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10288 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10289 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10290 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));
10291 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10292 if (r->in.computer_name == NULL) {
10293 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10295 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10296 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10297 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10298 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));
10299 if (r->in.credential == NULL) {
10300 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10302 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10303 if (r->in.new_password == NULL) {
10304 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10306 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
10308 if (flags & NDR_OUT) {
10309 if (r->out.return_authenticator == NULL) {
10310 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10312 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10313 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10315 return NDR_ERR_SUCCESS;
10318 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
10320 uint32_t _ptr_server_name;
10321 TALLOC_CTX *_mem_save_server_name_0;
10322 TALLOC_CTX *_mem_save_credential_0;
10323 TALLOC_CTX *_mem_save_return_authenticator_0;
10324 TALLOC_CTX *_mem_save_new_password_0;
10325 if (flags & NDR_IN) {
10326 ZERO_STRUCT(r->out);
10328 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10329 if (_ptr_server_name) {
10330 NDR_PULL_ALLOC(ndr, r->in.server_name);
10331 } else {
10332 r->in.server_name = NULL;
10334 if (r->in.server_name) {
10335 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10336 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10337 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10338 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10339 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10340 return 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));
10342 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10343 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));
10344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10346 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10347 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10348 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10349 return 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));
10351 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10352 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));
10353 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10354 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10355 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10356 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10357 return 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));
10359 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10360 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));
10361 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10362 NDR_PULL_ALLOC(ndr, r->in.credential);
10364 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10365 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10366 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10368 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10369 NDR_PULL_ALLOC(ndr, r->in.new_password);
10371 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
10372 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
10373 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
10374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
10375 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10376 ZERO_STRUCTP(r->out.return_authenticator);
10378 if (flags & NDR_OUT) {
10379 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10380 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10382 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10383 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10384 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10386 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10388 return NDR_ERR_SUCCESS;
10391 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
10393 ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
10394 ndr->depth++;
10395 if (flags & NDR_SET_VALUES) {
10396 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10398 if (flags & NDR_IN) {
10399 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
10400 ndr->depth++;
10401 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10402 ndr->depth++;
10403 if (r->in.server_name) {
10404 ndr_print_string(ndr, "server_name", r->in.server_name);
10406 ndr->depth--;
10407 ndr_print_ptr(ndr, "account_name", r->in.account_name);
10408 ndr->depth++;
10409 ndr_print_string(ndr, "account_name", r->in.account_name);
10410 ndr->depth--;
10411 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10412 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
10413 ndr->depth++;
10414 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10415 ndr->depth--;
10416 ndr_print_ptr(ndr, "credential", r->in.credential);
10417 ndr->depth++;
10418 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10419 ndr->depth--;
10420 ndr_print_ptr(ndr, "new_password", r->in.new_password);
10421 ndr->depth++;
10422 ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
10423 ndr->depth--;
10424 ndr->depth--;
10426 if (flags & NDR_OUT) {
10427 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
10428 ndr->depth++;
10429 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10430 ndr->depth++;
10431 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10432 ndr->depth--;
10433 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10434 ndr->depth--;
10436 ndr->depth--;
10439 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
10441 if (flags & NDR_IN) {
10442 if (r->in.logon_server == NULL) {
10443 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10445 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10446 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10447 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10448 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));
10449 if (r->in.computername == NULL) {
10450 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10452 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10453 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10454 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10455 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10456 if (r->in.credential == NULL) {
10457 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10459 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10460 if (r->in.return_authenticator == NULL) {
10461 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10463 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10464 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10465 if (r->in.sequence_num == NULL) {
10466 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10468 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
10469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10471 if (flags & NDR_OUT) {
10472 if (r->out.return_authenticator == NULL) {
10473 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10475 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10476 if (r->out.sequence_num == NULL) {
10477 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10479 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
10480 if (r->out.delta_enum_array == NULL) {
10481 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10483 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10484 if (*r->out.delta_enum_array) {
10485 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10487 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10489 return NDR_ERR_SUCCESS;
10492 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
10494 uint32_t _ptr_delta_enum_array;
10495 TALLOC_CTX *_mem_save_credential_0;
10496 TALLOC_CTX *_mem_save_return_authenticator_0;
10497 TALLOC_CTX *_mem_save_sequence_num_0;
10498 TALLOC_CTX *_mem_save_delta_enum_array_0;
10499 TALLOC_CTX *_mem_save_delta_enum_array_1;
10500 if (flags & NDR_IN) {
10501 ZERO_STRUCT(r->out);
10503 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10504 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10505 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10506 return 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));
10508 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10509 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));
10510 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10511 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10512 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10513 return 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));
10515 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10516 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10517 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10518 NDR_PULL_ALLOC(ndr, r->in.credential);
10520 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10521 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10522 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10524 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10525 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10527 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10528 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10529 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10531 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10532 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10533 NDR_PULL_ALLOC(ndr, r->in.sequence_num);
10535 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
10536 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
10537 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
10538 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
10539 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10540 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10541 *r->out.return_authenticator = *r->in.return_authenticator;
10542 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
10543 *r->out.sequence_num = *r->in.sequence_num;
10544 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10545 ZERO_STRUCTP(r->out.delta_enum_array);
10547 if (flags & NDR_OUT) {
10548 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10549 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10551 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10552 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10553 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10555 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10556 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
10558 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
10559 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
10560 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
10561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
10562 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10563 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10565 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10566 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10567 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10568 if (_ptr_delta_enum_array) {
10569 NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10570 } else {
10571 *r->out.delta_enum_array = NULL;
10573 if (*r->out.delta_enum_array) {
10574 _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10575 NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10576 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10579 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10580 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10582 return NDR_ERR_SUCCESS;
10585 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
10587 ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
10588 ndr->depth++;
10589 if (flags & NDR_SET_VALUES) {
10590 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10592 if (flags & NDR_IN) {
10593 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
10594 ndr->depth++;
10595 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10596 ndr->depth++;
10597 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10598 ndr->depth--;
10599 ndr_print_ptr(ndr, "computername", r->in.computername);
10600 ndr->depth++;
10601 ndr_print_string(ndr, "computername", r->in.computername);
10602 ndr->depth--;
10603 ndr_print_ptr(ndr, "credential", r->in.credential);
10604 ndr->depth++;
10605 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10606 ndr->depth--;
10607 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10608 ndr->depth++;
10609 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10610 ndr->depth--;
10611 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10612 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
10613 ndr->depth++;
10614 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
10615 ndr->depth--;
10616 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10617 ndr->depth--;
10619 if (flags & NDR_OUT) {
10620 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
10621 ndr->depth++;
10622 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10623 ndr->depth++;
10624 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10625 ndr->depth--;
10626 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
10627 ndr->depth++;
10628 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
10629 ndr->depth--;
10630 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10631 ndr->depth++;
10632 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10633 ndr->depth++;
10634 if (*r->out.delta_enum_array) {
10635 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10637 ndr->depth--;
10638 ndr->depth--;
10639 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10640 ndr->depth--;
10642 ndr->depth--;
10645 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
10647 if (flags & NDR_IN) {
10648 if (r->in.logon_server == NULL) {
10649 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10651 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10652 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10653 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10654 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));
10655 if (r->in.computername == NULL) {
10656 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10658 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10659 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10660 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10661 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10662 if (r->in.credential == NULL) {
10663 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10665 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10666 if (r->in.return_authenticator == NULL) {
10667 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10669 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10670 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10671 if (r->in.sync_context == NULL) {
10672 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10677 if (flags & NDR_OUT) {
10678 if (r->out.return_authenticator == NULL) {
10679 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10681 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10682 if (r->out.sync_context == NULL) {
10683 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10686 if (r->out.delta_enum_array == NULL) {
10687 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10689 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10690 if (*r->out.delta_enum_array) {
10691 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10693 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10695 return NDR_ERR_SUCCESS;
10698 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
10700 uint32_t _ptr_delta_enum_array;
10701 TALLOC_CTX *_mem_save_credential_0;
10702 TALLOC_CTX *_mem_save_return_authenticator_0;
10703 TALLOC_CTX *_mem_save_sync_context_0;
10704 TALLOC_CTX *_mem_save_delta_enum_array_0;
10705 TALLOC_CTX *_mem_save_delta_enum_array_1;
10706 if (flags & NDR_IN) {
10707 ZERO_STRUCT(r->out);
10709 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10710 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10711 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10712 return 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));
10714 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10715 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));
10716 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10717 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10718 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10719 return 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));
10721 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10722 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10723 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10724 NDR_PULL_ALLOC(ndr, r->in.credential);
10726 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10727 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10728 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10729 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10730 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10731 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10733 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10734 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10735 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10737 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10738 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10739 NDR_PULL_ALLOC(ndr, r->in.sync_context);
10741 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10742 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10745 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10746 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10747 *r->out.return_authenticator = *r->in.return_authenticator;
10748 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10749 *r->out.sync_context = *r->in.sync_context;
10750 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10751 ZERO_STRUCTP(r->out.delta_enum_array);
10753 if (flags & NDR_OUT) {
10754 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10755 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10757 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10758 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10759 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10760 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10761 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10762 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10764 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10765 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10768 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10769 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10771 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10772 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10773 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10774 if (_ptr_delta_enum_array) {
10775 NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10776 } else {
10777 *r->out.delta_enum_array = NULL;
10779 if (*r->out.delta_enum_array) {
10780 _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10781 NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10782 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10783 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10786 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10788 return NDR_ERR_SUCCESS;
10791 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
10793 ndr_print_struct(ndr, name, "netr_DatabaseSync");
10794 ndr->depth++;
10795 if (flags & NDR_SET_VALUES) {
10796 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10798 if (flags & NDR_IN) {
10799 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
10800 ndr->depth++;
10801 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10802 ndr->depth++;
10803 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10804 ndr->depth--;
10805 ndr_print_ptr(ndr, "computername", r->in.computername);
10806 ndr->depth++;
10807 ndr_print_string(ndr, "computername", r->in.computername);
10808 ndr->depth--;
10809 ndr_print_ptr(ndr, "credential", r->in.credential);
10810 ndr->depth++;
10811 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10812 ndr->depth--;
10813 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10814 ndr->depth++;
10815 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10816 ndr->depth--;
10817 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10818 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10819 ndr->depth++;
10820 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10821 ndr->depth--;
10822 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10823 ndr->depth--;
10825 if (flags & NDR_OUT) {
10826 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
10827 ndr->depth++;
10828 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10829 ndr->depth++;
10830 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10831 ndr->depth--;
10832 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10833 ndr->depth++;
10834 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10835 ndr->depth--;
10836 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10837 ndr->depth++;
10838 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10839 ndr->depth++;
10840 if (*r->out.delta_enum_array) {
10841 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10843 ndr->depth--;
10844 ndr->depth--;
10845 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10846 ndr->depth--;
10848 ndr->depth--;
10851 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
10853 if (flags & NDR_IN) {
10854 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10855 if (r->in.logon_server) {
10856 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10857 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10858 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10859 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));
10861 if (r->in.computername == NULL) {
10862 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10864 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10865 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10866 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10867 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10868 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10869 if (r->in.return_authenticator == NULL) {
10870 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10872 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10873 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
10874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
10875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
10878 if (flags & NDR_OUT) {
10879 if (r->out.return_authenticator == NULL) {
10880 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10882 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10883 if (r->out.buffer == NULL) {
10884 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10887 struct ndr_push *_ndr_buffer;
10888 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10889 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10890 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
10892 if (r->out.count_returned == NULL) {
10893 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10895 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
10896 if (r->out.total_entries == NULL) {
10897 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
10900 if (r->out.recordid == NULL) {
10901 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10903 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10904 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10906 return NDR_ERR_SUCCESS;
10909 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
10911 uint32_t _ptr_logon_server;
10912 TALLOC_CTX *_mem_save_logon_server_0;
10913 TALLOC_CTX *_mem_save_return_authenticator_0;
10914 TALLOC_CTX *_mem_save_buffer_0;
10915 TALLOC_CTX *_mem_save_count_returned_0;
10916 TALLOC_CTX *_mem_save_total_entries_0;
10917 TALLOC_CTX *_mem_save_recordid_0;
10918 if (flags & NDR_IN) {
10919 ZERO_STRUCT(r->out);
10921 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10922 if (_ptr_logon_server) {
10923 NDR_PULL_ALLOC(ndr, r->in.logon_server);
10924 } else {
10925 r->in.logon_server = NULL;
10927 if (r->in.logon_server) {
10928 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10929 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10930 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10931 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10932 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10933 return 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));
10935 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10936 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));
10937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10939 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10940 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10941 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10942 return 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));
10944 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10945 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10946 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10947 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10948 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10950 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10951 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10952 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10954 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
10955 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
10956 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10957 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
10958 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10959 *r->out.return_authenticator = *r->in.return_authenticator;
10960 NDR_PULL_ALLOC(ndr, r->out.buffer);
10961 ZERO_STRUCTP(r->out.buffer);
10962 NDR_PULL_ALLOC(ndr, r->out.count_returned);
10963 ZERO_STRUCTP(r->out.count_returned);
10964 NDR_PULL_ALLOC(ndr, r->out.total_entries);
10965 ZERO_STRUCTP(r->out.total_entries);
10966 NDR_PULL_ALLOC(ndr, r->out.recordid);
10967 ZERO_STRUCTP(r->out.recordid);
10969 if (flags & NDR_OUT) {
10970 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10971 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10973 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10974 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10975 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10977 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10978 NDR_PULL_ALLOC(ndr, r->out.buffer);
10980 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
10981 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
10983 struct ndr_pull *_ndr_buffer;
10984 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10985 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10986 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
10988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
10989 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10990 NDR_PULL_ALLOC(ndr, r->out.count_returned);
10992 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
10993 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
10994 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
10995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
10996 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10997 NDR_PULL_ALLOC(ndr, r->out.total_entries);
10999 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
11000 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
11001 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
11002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
11003 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11004 NDR_PULL_ALLOC(ndr, r->out.recordid);
11006 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11007 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
11008 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
11009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
11010 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11012 return NDR_ERR_SUCCESS;
11015 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
11017 ndr_print_struct(ndr, name, "netr_AccountDeltas");
11018 ndr->depth++;
11019 if (flags & NDR_SET_VALUES) {
11020 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11022 if (flags & NDR_IN) {
11023 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
11024 ndr->depth++;
11025 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11026 ndr->depth++;
11027 if (r->in.logon_server) {
11028 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11030 ndr->depth--;
11031 ndr_print_ptr(ndr, "computername", r->in.computername);
11032 ndr->depth++;
11033 ndr_print_string(ndr, "computername", r->in.computername);
11034 ndr->depth--;
11035 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
11036 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11037 ndr->depth++;
11038 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11039 ndr->depth--;
11040 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
11041 ndr_print_uint32(ndr, "count", r->in.count);
11042 ndr_print_uint32(ndr, "level", r->in.level);
11043 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
11044 ndr->depth--;
11046 if (flags & NDR_OUT) {
11047 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
11048 ndr->depth++;
11049 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11050 ndr->depth++;
11051 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11052 ndr->depth--;
11053 ndr_print_ptr(ndr, "buffer", r->out.buffer);
11054 ndr->depth++;
11055 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
11056 ndr->depth--;
11057 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
11058 ndr->depth++;
11059 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
11060 ndr->depth--;
11061 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
11062 ndr->depth++;
11063 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
11064 ndr->depth--;
11065 ndr_print_ptr(ndr, "recordid", r->out.recordid);
11066 ndr->depth++;
11067 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
11068 ndr->depth--;
11069 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11070 ndr->depth--;
11072 ndr->depth--;
11075 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
11077 if (flags & NDR_IN) {
11078 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11079 if (r->in.logon_server) {
11080 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11081 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11082 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11083 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));
11085 if (r->in.computername == NULL) {
11086 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11088 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11089 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11090 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11091 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11092 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
11093 if (r->in.return_authenticator == NULL) {
11094 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11096 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
11098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
11100 if (r->in.recordid == NULL) {
11101 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11103 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
11105 if (flags & NDR_OUT) {
11106 if (r->out.return_authenticator == NULL) {
11107 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11109 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11110 if (r->out.buffer == NULL) {
11111 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11114 struct ndr_push *_ndr_buffer;
11115 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
11116 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
11117 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
11119 if (r->out.count_returned == NULL) {
11120 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
11123 if (r->out.total_entries == NULL) {
11124 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
11127 if (r->out.next_reference == NULL) {
11128 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
11131 if (r->out.recordid == NULL) {
11132 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11134 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
11135 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11137 return NDR_ERR_SUCCESS;
11140 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
11142 uint32_t _ptr_logon_server;
11143 TALLOC_CTX *_mem_save_logon_server_0;
11144 TALLOC_CTX *_mem_save_return_authenticator_0;
11145 TALLOC_CTX *_mem_save_buffer_0;
11146 TALLOC_CTX *_mem_save_count_returned_0;
11147 TALLOC_CTX *_mem_save_total_entries_0;
11148 TALLOC_CTX *_mem_save_next_reference_0;
11149 TALLOC_CTX *_mem_save_recordid_0;
11150 if (flags & NDR_IN) {
11151 ZERO_STRUCT(r->out);
11153 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11154 if (_ptr_logon_server) {
11155 NDR_PULL_ALLOC(ndr, r->in.logon_server);
11156 } else {
11157 r->in.logon_server = NULL;
11159 if (r->in.logon_server) {
11160 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11161 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11162 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11163 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11164 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11165 return 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));
11167 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11168 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));
11169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11171 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
11172 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
11173 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
11174 return 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));
11176 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
11177 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
11178 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
11179 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11180 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11182 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11183 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11184 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11185 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11186 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
11187 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
11189 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11190 NDR_PULL_ALLOC(ndr, r->in.recordid);
11192 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11193 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
11194 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
11195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
11196 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11197 *r->out.return_authenticator = *r->in.return_authenticator;
11198 NDR_PULL_ALLOC(ndr, r->out.buffer);
11199 ZERO_STRUCTP(r->out.buffer);
11200 NDR_PULL_ALLOC(ndr, r->out.count_returned);
11201 ZERO_STRUCTP(r->out.count_returned);
11202 NDR_PULL_ALLOC(ndr, r->out.total_entries);
11203 ZERO_STRUCTP(r->out.total_entries);
11204 NDR_PULL_ALLOC(ndr, r->out.next_reference);
11205 ZERO_STRUCTP(r->out.next_reference);
11206 NDR_PULL_ALLOC(ndr, r->out.recordid);
11207 *r->out.recordid = *r->in.recordid;
11209 if (flags & NDR_OUT) {
11210 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11211 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11213 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11214 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11215 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11217 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11218 NDR_PULL_ALLOC(ndr, r->out.buffer);
11220 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
11221 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
11223 struct ndr_pull *_ndr_buffer;
11224 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
11225 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
11226 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
11228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
11229 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11230 NDR_PULL_ALLOC(ndr, r->out.count_returned);
11232 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
11233 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
11234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
11235 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
11236 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11237 NDR_PULL_ALLOC(ndr, r->out.total_entries);
11239 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
11240 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
11241 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
11242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
11243 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11244 NDR_PULL_ALLOC(ndr, r->out.next_reference);
11246 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
11247 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
11248 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
11249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
11250 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11251 NDR_PULL_ALLOC(ndr, r->out.recordid);
11253 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11254 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
11255 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
11256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
11257 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11259 return NDR_ERR_SUCCESS;
11262 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
11264 ndr_print_struct(ndr, name, "netr_AccountSync");
11265 ndr->depth++;
11266 if (flags & NDR_SET_VALUES) {
11267 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11269 if (flags & NDR_IN) {
11270 ndr_print_struct(ndr, "in", "netr_AccountSync");
11271 ndr->depth++;
11272 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11273 ndr->depth++;
11274 if (r->in.logon_server) {
11275 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11277 ndr->depth--;
11278 ndr_print_ptr(ndr, "computername", r->in.computername);
11279 ndr->depth++;
11280 ndr_print_string(ndr, "computername", r->in.computername);
11281 ndr->depth--;
11282 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
11283 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11284 ndr->depth++;
11285 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11286 ndr->depth--;
11287 ndr_print_uint32(ndr, "reference", r->in.reference);
11288 ndr_print_uint32(ndr, "level", r->in.level);
11289 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
11290 ndr_print_ptr(ndr, "recordid", r->in.recordid);
11291 ndr->depth++;
11292 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
11293 ndr->depth--;
11294 ndr->depth--;
11296 if (flags & NDR_OUT) {
11297 ndr_print_struct(ndr, "out", "netr_AccountSync");
11298 ndr->depth++;
11299 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11300 ndr->depth++;
11301 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11302 ndr->depth--;
11303 ndr_print_ptr(ndr, "buffer", r->out.buffer);
11304 ndr->depth++;
11305 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
11306 ndr->depth--;
11307 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
11308 ndr->depth++;
11309 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
11310 ndr->depth--;
11311 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
11312 ndr->depth++;
11313 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
11314 ndr->depth--;
11315 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
11316 ndr->depth++;
11317 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
11318 ndr->depth--;
11319 ndr_print_ptr(ndr, "recordid", r->out.recordid);
11320 ndr->depth++;
11321 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
11322 ndr->depth--;
11323 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11324 ndr->depth--;
11326 ndr->depth--;
11329 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
11331 if (flags & NDR_IN) {
11332 if (r->in.logon_server == NULL) {
11333 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11335 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11336 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11337 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11338 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));
11339 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
11340 if (r->in.domainname) {
11341 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
11342 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11343 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
11344 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11347 if (flags & NDR_OUT) {
11348 if (r->out.dcname == NULL) {
11349 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11351 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
11352 if (*r->out.dcname) {
11353 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
11354 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11355 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
11356 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11358 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11360 return NDR_ERR_SUCCESS;
11363 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
11365 uint32_t _ptr_domainname;
11366 uint32_t _ptr_dcname;
11367 TALLOC_CTX *_mem_save_domainname_0;
11368 TALLOC_CTX *_mem_save_dcname_0;
11369 TALLOC_CTX *_mem_save_dcname_1;
11370 if (flags & NDR_IN) {
11371 ZERO_STRUCT(r->out);
11373 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11374 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11375 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11376 return 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));
11378 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11379 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));
11380 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
11381 if (_ptr_domainname) {
11382 NDR_PULL_ALLOC(ndr, r->in.domainname);
11383 } else {
11384 r->in.domainname = NULL;
11386 if (r->in.domainname) {
11387 _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11388 NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
11389 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
11390 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
11391 if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
11392 return 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));
11394 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
11395 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
11396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
11398 NDR_PULL_ALLOC(ndr, r->out.dcname);
11399 ZERO_STRUCTP(r->out.dcname);
11401 if (flags & NDR_OUT) {
11402 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11403 NDR_PULL_ALLOC(ndr, r->out.dcname);
11405 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11406 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
11407 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
11408 if (_ptr_dcname) {
11409 NDR_PULL_ALLOC(ndr, *r->out.dcname);
11410 } else {
11411 *r->out.dcname = NULL;
11413 if (*r->out.dcname) {
11414 _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
11415 NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
11416 NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
11417 NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
11418 if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
11419 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));
11421 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
11422 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
11423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
11425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
11426 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11428 return NDR_ERR_SUCCESS;
11431 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
11433 ndr_print_struct(ndr, name, "netr_GetDcName");
11434 ndr->depth++;
11435 if (flags & NDR_SET_VALUES) {
11436 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11438 if (flags & NDR_IN) {
11439 ndr_print_struct(ndr, "in", "netr_GetDcName");
11440 ndr->depth++;
11441 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11442 ndr->depth++;
11443 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11444 ndr->depth--;
11445 ndr_print_ptr(ndr, "domainname", r->in.domainname);
11446 ndr->depth++;
11447 if (r->in.domainname) {
11448 ndr_print_string(ndr, "domainname", r->in.domainname);
11450 ndr->depth--;
11451 ndr->depth--;
11453 if (flags & NDR_OUT) {
11454 ndr_print_struct(ndr, "out", "netr_GetDcName");
11455 ndr->depth++;
11456 ndr_print_ptr(ndr, "dcname", r->out.dcname);
11457 ndr->depth++;
11458 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
11459 ndr->depth++;
11460 if (*r->out.dcname) {
11461 ndr_print_string(ndr, "dcname", *r->out.dcname);
11463 ndr->depth--;
11464 ndr->depth--;
11465 ndr_print_WERROR(ndr, "result", r->out.result);
11466 ndr->depth--;
11468 ndr->depth--;
11471 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
11473 if (flags & NDR_IN) {
11474 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11475 if (r->in.logon_server) {
11476 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11477 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11478 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11479 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));
11481 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
11482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11484 if (flags & NDR_OUT) {
11485 if (r->out.query == NULL) {
11486 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11488 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
11489 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11490 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11492 return NDR_ERR_SUCCESS;
11495 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
11497 uint32_t _ptr_logon_server;
11498 TALLOC_CTX *_mem_save_logon_server_0;
11499 TALLOC_CTX *_mem_save_query_0;
11500 if (flags & NDR_IN) {
11501 ZERO_STRUCT(r->out);
11503 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11504 if (_ptr_logon_server) {
11505 NDR_PULL_ALLOC(ndr, r->in.logon_server);
11506 } else {
11507 r->in.logon_server = NULL;
11509 if (r->in.logon_server) {
11510 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11511 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11512 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11513 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11514 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11515 return 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));
11517 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11518 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));
11519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11521 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
11522 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11523 NDR_PULL_ALLOC(ndr, r->out.query);
11524 ZERO_STRUCTP(r->out.query);
11526 if (flags & NDR_OUT) {
11527 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11528 NDR_PULL_ALLOC(ndr, r->out.query);
11530 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
11531 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
11532 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
11533 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11534 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
11535 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11537 return NDR_ERR_SUCCESS;
11540 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
11542 ndr_print_struct(ndr, name, "netr_LogonControl");
11543 ndr->depth++;
11544 if (flags & NDR_SET_VALUES) {
11545 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11547 if (flags & NDR_IN) {
11548 ndr_print_struct(ndr, "in", "netr_LogonControl");
11549 ndr->depth++;
11550 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11551 ndr->depth++;
11552 if (r->in.logon_server) {
11553 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11555 ndr->depth--;
11556 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
11557 ndr_print_uint32(ndr, "level", r->in.level);
11558 ndr->depth--;
11560 if (flags & NDR_OUT) {
11561 ndr_print_struct(ndr, "out", "netr_LogonControl");
11562 ndr->depth++;
11563 ndr_print_ptr(ndr, "query", r->out.query);
11564 ndr->depth++;
11565 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
11566 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
11567 ndr->depth--;
11568 ndr_print_WERROR(ndr, "result", r->out.result);
11569 ndr->depth--;
11571 ndr->depth--;
11574 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
11576 if (flags & NDR_IN) {
11577 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11578 if (r->in.logon_server) {
11579 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11580 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11581 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11582 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));
11584 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
11585 if (r->in.domainname) {
11586 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
11587 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11588 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
11589 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11592 if (flags & NDR_OUT) {
11593 if (r->out.dcname == NULL) {
11594 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11596 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
11597 if (*r->out.dcname) {
11598 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
11599 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11600 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
11601 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11603 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11605 return NDR_ERR_SUCCESS;
11608 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
11610 uint32_t _ptr_logon_server;
11611 uint32_t _ptr_domainname;
11612 uint32_t _ptr_dcname;
11613 TALLOC_CTX *_mem_save_logon_server_0;
11614 TALLOC_CTX *_mem_save_domainname_0;
11615 TALLOC_CTX *_mem_save_dcname_0;
11616 TALLOC_CTX *_mem_save_dcname_1;
11617 if (flags & NDR_IN) {
11618 ZERO_STRUCT(r->out);
11620 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11621 if (_ptr_logon_server) {
11622 NDR_PULL_ALLOC(ndr, r->in.logon_server);
11623 } else {
11624 r->in.logon_server = NULL;
11626 if (r->in.logon_server) {
11627 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11628 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11629 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11630 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11631 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11632 return 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));
11634 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11635 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));
11636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11638 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
11639 if (_ptr_domainname) {
11640 NDR_PULL_ALLOC(ndr, r->in.domainname);
11641 } else {
11642 r->in.domainname = NULL;
11644 if (r->in.domainname) {
11645 _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11646 NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
11647 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
11648 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
11649 if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
11650 return 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));
11652 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
11653 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
11654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
11656 NDR_PULL_ALLOC(ndr, r->out.dcname);
11657 ZERO_STRUCTP(r->out.dcname);
11659 if (flags & NDR_OUT) {
11660 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11661 NDR_PULL_ALLOC(ndr, r->out.dcname);
11663 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11664 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
11665 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
11666 if (_ptr_dcname) {
11667 NDR_PULL_ALLOC(ndr, *r->out.dcname);
11668 } else {
11669 *r->out.dcname = NULL;
11671 if (*r->out.dcname) {
11672 _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
11673 NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
11674 NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
11675 NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
11676 if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
11677 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));
11679 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
11680 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
11681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
11683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
11684 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11686 return NDR_ERR_SUCCESS;
11689 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
11691 ndr_print_struct(ndr, name, "netr_GetAnyDCName");
11692 ndr->depth++;
11693 if (flags & NDR_SET_VALUES) {
11694 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11696 if (flags & NDR_IN) {
11697 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
11698 ndr->depth++;
11699 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11700 ndr->depth++;
11701 if (r->in.logon_server) {
11702 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11704 ndr->depth--;
11705 ndr_print_ptr(ndr, "domainname", r->in.domainname);
11706 ndr->depth++;
11707 if (r->in.domainname) {
11708 ndr_print_string(ndr, "domainname", r->in.domainname);
11710 ndr->depth--;
11711 ndr->depth--;
11713 if (flags & NDR_OUT) {
11714 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
11715 ndr->depth++;
11716 ndr_print_ptr(ndr, "dcname", r->out.dcname);
11717 ndr->depth++;
11718 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
11719 ndr->depth++;
11720 if (*r->out.dcname) {
11721 ndr_print_string(ndr, "dcname", *r->out.dcname);
11723 ndr->depth--;
11724 ndr->depth--;
11725 ndr_print_WERROR(ndr, "result", r->out.result);
11726 ndr->depth--;
11728 ndr->depth--;
11731 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
11733 if (flags & NDR_IN) {
11734 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11735 if (r->in.logon_server) {
11736 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11737 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11738 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11739 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));
11741 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
11742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11743 if (r->in.data == NULL) {
11744 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11746 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
11747 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
11749 if (flags & NDR_OUT) {
11750 if (r->out.query == NULL) {
11751 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11753 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
11754 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11755 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11757 return NDR_ERR_SUCCESS;
11760 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
11762 uint32_t _ptr_logon_server;
11763 TALLOC_CTX *_mem_save_logon_server_0;
11764 TALLOC_CTX *_mem_save_data_0;
11765 TALLOC_CTX *_mem_save_query_0;
11766 if (flags & NDR_IN) {
11767 ZERO_STRUCT(r->out);
11769 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11770 if (_ptr_logon_server) {
11771 NDR_PULL_ALLOC(ndr, r->in.logon_server);
11772 } else {
11773 r->in.logon_server = NULL;
11775 if (r->in.logon_server) {
11776 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11777 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11778 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11779 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11780 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11781 return 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));
11783 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11784 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));
11785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11787 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
11788 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11789 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11790 NDR_PULL_ALLOC(ndr, r->in.data);
11792 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
11793 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
11794 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
11795 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
11796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
11797 NDR_PULL_ALLOC(ndr, r->out.query);
11798 ZERO_STRUCTP(r->out.query);
11800 if (flags & NDR_OUT) {
11801 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11802 NDR_PULL_ALLOC(ndr, r->out.query);
11804 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
11805 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
11806 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
11807 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11808 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
11809 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11811 return NDR_ERR_SUCCESS;
11814 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
11816 ndr_print_struct(ndr, name, "netr_LogonControl2");
11817 ndr->depth++;
11818 if (flags & NDR_SET_VALUES) {
11819 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11821 if (flags & NDR_IN) {
11822 ndr_print_struct(ndr, "in", "netr_LogonControl2");
11823 ndr->depth++;
11824 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11825 ndr->depth++;
11826 if (r->in.logon_server) {
11827 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11829 ndr->depth--;
11830 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
11831 ndr_print_uint32(ndr, "level", r->in.level);
11832 ndr_print_ptr(ndr, "data", r->in.data);
11833 ndr->depth++;
11834 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
11835 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
11836 ndr->depth--;
11837 ndr->depth--;
11839 if (flags & NDR_OUT) {
11840 ndr_print_struct(ndr, "out", "netr_LogonControl2");
11841 ndr->depth++;
11842 ndr_print_ptr(ndr, "query", r->out.query);
11843 ndr->depth++;
11844 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
11845 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
11846 ndr->depth--;
11847 ndr_print_WERROR(ndr, "result", r->out.result);
11848 ndr->depth--;
11850 ndr->depth--;
11853 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
11855 if (flags & NDR_IN) {
11856 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11857 if (r->in.server_name) {
11858 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11859 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11860 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11861 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));
11863 if (r->in.account_name == NULL) {
11864 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11866 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11867 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11868 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11869 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));
11870 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11871 if (r->in.computer_name == NULL) {
11872 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11874 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11875 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11876 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11877 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));
11878 if (r->in.credentials == NULL) {
11879 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11881 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11882 if (r->in.negotiate_flags == NULL) {
11883 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11885 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11887 if (flags & NDR_OUT) {
11888 if (r->out.return_credentials == NULL) {
11889 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11891 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
11892 if (r->out.negotiate_flags == NULL) {
11893 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11895 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11896 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11898 return NDR_ERR_SUCCESS;
11901 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
11903 uint32_t _ptr_server_name;
11904 TALLOC_CTX *_mem_save_server_name_0;
11905 TALLOC_CTX *_mem_save_credentials_0;
11906 TALLOC_CTX *_mem_save_return_credentials_0;
11907 TALLOC_CTX *_mem_save_negotiate_flags_0;
11908 if (flags & NDR_IN) {
11909 ZERO_STRUCT(r->out);
11911 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11912 if (_ptr_server_name) {
11913 NDR_PULL_ALLOC(ndr, r->in.server_name);
11914 } else {
11915 r->in.server_name = NULL;
11917 if (r->in.server_name) {
11918 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11919 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11920 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11921 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11922 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11923 return 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));
11925 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11926 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));
11927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11929 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11930 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11931 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11932 return 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));
11934 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11935 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));
11936 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11937 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11938 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11939 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11940 return 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));
11942 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11943 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));
11944 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11945 NDR_PULL_ALLOC(ndr, r->in.credentials);
11947 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11948 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11949 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11950 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11951 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11952 NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11954 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11955 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11956 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
11957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11958 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
11959 ZERO_STRUCTP(r->out.return_credentials);
11960 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11961 *r->out.negotiate_flags = *r->in.negotiate_flags;
11963 if (flags & NDR_OUT) {
11964 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11965 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
11967 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11968 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
11969 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
11970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11971 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11972 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11974 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11975 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11976 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
11977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11978 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11980 return NDR_ERR_SUCCESS;
11983 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
11985 ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
11986 ndr->depth++;
11987 if (flags & NDR_SET_VALUES) {
11988 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11990 if (flags & NDR_IN) {
11991 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
11992 ndr->depth++;
11993 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11994 ndr->depth++;
11995 if (r->in.server_name) {
11996 ndr_print_string(ndr, "server_name", r->in.server_name);
11998 ndr->depth--;
11999 ndr_print_ptr(ndr, "account_name", r->in.account_name);
12000 ndr->depth++;
12001 ndr_print_string(ndr, "account_name", r->in.account_name);
12002 ndr->depth--;
12003 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12004 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12005 ndr->depth++;
12006 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12007 ndr->depth--;
12008 ndr_print_ptr(ndr, "credentials", r->in.credentials);
12009 ndr->depth++;
12010 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
12011 ndr->depth--;
12012 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
12013 ndr->depth++;
12014 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
12015 ndr->depth--;
12016 ndr->depth--;
12018 if (flags & NDR_OUT) {
12019 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
12020 ndr->depth++;
12021 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
12022 ndr->depth++;
12023 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
12024 ndr->depth--;
12025 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
12026 ndr->depth++;
12027 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
12028 ndr->depth--;
12029 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12030 ndr->depth--;
12032 ndr->depth--;
12035 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
12037 if (flags & NDR_IN) {
12038 if (r->in.logon_server == NULL) {
12039 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12041 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
12042 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12043 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
12044 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));
12045 if (r->in.computername == NULL) {
12046 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12048 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
12049 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12050 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
12051 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12052 if (r->in.credential == NULL) {
12053 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12055 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12056 if (r->in.return_authenticator == NULL) {
12057 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12059 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12060 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
12061 NDR_CHECK(ndr_push_SyncStateEnum(ndr, NDR_SCALARS, r->in.restart_state));
12062 if (r->in.sync_context == NULL) {
12063 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
12066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
12068 if (flags & NDR_OUT) {
12069 if (r->out.return_authenticator == NULL) {
12070 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12072 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12073 if (r->out.sync_context == NULL) {
12074 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
12077 if (r->out.delta_enum_array == NULL) {
12078 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12080 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
12081 if (*r->out.delta_enum_array) {
12082 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
12084 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12086 return NDR_ERR_SUCCESS;
12089 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
12091 uint32_t _ptr_delta_enum_array;
12092 TALLOC_CTX *_mem_save_credential_0;
12093 TALLOC_CTX *_mem_save_return_authenticator_0;
12094 TALLOC_CTX *_mem_save_sync_context_0;
12095 TALLOC_CTX *_mem_save_delta_enum_array_0;
12096 TALLOC_CTX *_mem_save_delta_enum_array_1;
12097 if (flags & NDR_IN) {
12098 ZERO_STRUCT(r->out);
12100 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
12101 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
12102 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
12103 return 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));
12105 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
12106 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));
12107 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
12108 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
12109 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
12110 return 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));
12112 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
12113 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
12114 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12115 NDR_PULL_ALLOC(ndr, r->in.credential);
12117 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12118 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12119 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12121 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12122 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12124 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12125 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12126 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12127 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12128 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
12129 NDR_CHECK(ndr_pull_SyncStateEnum(ndr, NDR_SCALARS, &r->in.restart_state));
12130 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12131 NDR_PULL_ALLOC(ndr, r->in.sync_context);
12133 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
12134 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
12135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
12136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
12137 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
12138 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12139 *r->out.return_authenticator = *r->in.return_authenticator;
12140 NDR_PULL_ALLOC(ndr, r->out.sync_context);
12141 *r->out.sync_context = *r->in.sync_context;
12142 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
12143 ZERO_STRUCTP(r->out.delta_enum_array);
12145 if (flags & NDR_OUT) {
12146 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12147 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12149 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12150 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12151 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12153 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12154 NDR_PULL_ALLOC(ndr, r->out.sync_context);
12156 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
12157 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
12158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
12159 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
12160 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12161 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
12163 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12164 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
12165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
12166 if (_ptr_delta_enum_array) {
12167 NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
12168 } else {
12169 *r->out.delta_enum_array = NULL;
12171 if (*r->out.delta_enum_array) {
12172 _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
12173 NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
12174 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
12175 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
12177 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
12178 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12180 return NDR_ERR_SUCCESS;
12183 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
12185 ndr_print_struct(ndr, name, "netr_DatabaseSync2");
12186 ndr->depth++;
12187 if (flags & NDR_SET_VALUES) {
12188 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12190 if (flags & NDR_IN) {
12191 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
12192 ndr->depth++;
12193 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
12194 ndr->depth++;
12195 ndr_print_string(ndr, "logon_server", r->in.logon_server);
12196 ndr->depth--;
12197 ndr_print_ptr(ndr, "computername", r->in.computername);
12198 ndr->depth++;
12199 ndr_print_string(ndr, "computername", r->in.computername);
12200 ndr->depth--;
12201 ndr_print_ptr(ndr, "credential", r->in.credential);
12202 ndr->depth++;
12203 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12204 ndr->depth--;
12205 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12206 ndr->depth++;
12207 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12208 ndr->depth--;
12209 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
12210 ndr_print_SyncStateEnum(ndr, "restart_state", r->in.restart_state);
12211 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
12212 ndr->depth++;
12213 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
12214 ndr->depth--;
12215 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
12216 ndr->depth--;
12218 if (flags & NDR_OUT) {
12219 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
12220 ndr->depth++;
12221 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12222 ndr->depth++;
12223 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12224 ndr->depth--;
12225 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
12226 ndr->depth++;
12227 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
12228 ndr->depth--;
12229 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
12230 ndr->depth++;
12231 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
12232 ndr->depth++;
12233 if (*r->out.delta_enum_array) {
12234 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
12236 ndr->depth--;
12237 ndr->depth--;
12238 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12239 ndr->depth--;
12241 ndr->depth--;
12244 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
12246 if (flags & NDR_IN) {
12247 if (r->in.logon_server == NULL) {
12248 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12250 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
12251 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12252 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
12253 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));
12254 if (r->in.computername == NULL) {
12255 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12257 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
12258 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12259 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
12260 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12261 if (r->in.credential == NULL) {
12262 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12264 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12265 if (r->in.return_authenticator == NULL) {
12266 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12268 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12270 struct ndr_push *_ndr_change_log_entry;
12271 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
12272 NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
12273 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
12275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
12277 if (flags & NDR_OUT) {
12278 if (r->out.return_authenticator == NULL) {
12279 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12281 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12282 if (r->out.delta_enum_array == NULL) {
12283 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12285 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
12286 if (*r->out.delta_enum_array) {
12287 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
12289 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12291 return NDR_ERR_SUCCESS;
12294 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
12296 uint32_t _ptr_delta_enum_array;
12297 TALLOC_CTX *_mem_save_credential_0;
12298 TALLOC_CTX *_mem_save_return_authenticator_0;
12299 TALLOC_CTX *_mem_save_delta_enum_array_0;
12300 TALLOC_CTX *_mem_save_delta_enum_array_1;
12301 if (flags & NDR_IN) {
12302 ZERO_STRUCT(r->out);
12304 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
12305 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
12306 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
12307 return 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));
12309 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
12310 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));
12311 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
12312 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
12313 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
12314 return 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));
12316 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
12317 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
12318 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12319 NDR_PULL_ALLOC(ndr, r->in.credential);
12321 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12322 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12323 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12325 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12326 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12328 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12329 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12330 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12333 struct ndr_pull *_ndr_change_log_entry;
12334 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_change_log_entry, 4, r->in.change_log_entry_size));
12335 NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
12336 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_change_log_entry, 4, r->in.change_log_entry_size));
12338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
12339 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12340 *r->out.return_authenticator = *r->in.return_authenticator;
12341 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
12342 ZERO_STRUCTP(r->out.delta_enum_array);
12344 if (flags & NDR_OUT) {
12345 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12346 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12348 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12349 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12350 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12352 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12353 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
12355 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12356 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
12357 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
12358 if (_ptr_delta_enum_array) {
12359 NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
12360 } else {
12361 *r->out.delta_enum_array = NULL;
12363 if (*r->out.delta_enum_array) {
12364 _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
12365 NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
12366 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
12367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
12369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
12370 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12372 return NDR_ERR_SUCCESS;
12375 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
12377 ndr_print_struct(ndr, name, "netr_DatabaseRedo");
12378 ndr->depth++;
12379 if (flags & NDR_SET_VALUES) {
12380 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12382 if (flags & NDR_IN) {
12383 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
12384 ndr->depth++;
12385 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
12386 ndr->depth++;
12387 ndr_print_string(ndr, "logon_server", r->in.logon_server);
12388 ndr->depth--;
12389 ndr_print_ptr(ndr, "computername", r->in.computername);
12390 ndr->depth++;
12391 ndr_print_string(ndr, "computername", r->in.computername);
12392 ndr->depth--;
12393 ndr_print_ptr(ndr, "credential", r->in.credential);
12394 ndr->depth++;
12395 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12396 ndr->depth--;
12397 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12398 ndr->depth++;
12399 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12400 ndr->depth--;
12401 ndr_print_netr_ChangeLogEntry(ndr, "change_log_entry", &r->in.change_log_entry);
12402 ndr_print_uint32(ndr, "change_log_entry_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags):r->in.change_log_entry_size);
12403 ndr->depth--;
12405 if (flags & NDR_OUT) {
12406 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
12407 ndr->depth++;
12408 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12409 ndr->depth++;
12410 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12411 ndr->depth--;
12412 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
12413 ndr->depth++;
12414 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
12415 ndr->depth++;
12416 if (*r->out.delta_enum_array) {
12417 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
12419 ndr->depth--;
12420 ndr->depth--;
12421 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12422 ndr->depth--;
12424 ndr->depth--;
12427 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
12429 if (flags & NDR_IN) {
12430 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
12431 if (r->in.logon_server) {
12432 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
12433 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12434 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
12435 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));
12437 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
12438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12439 if (r->in.data == NULL) {
12440 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12442 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
12443 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
12445 if (flags & NDR_OUT) {
12446 if (r->out.query == NULL) {
12447 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12449 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
12450 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
12451 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12453 return NDR_ERR_SUCCESS;
12456 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
12458 uint32_t _ptr_logon_server;
12459 TALLOC_CTX *_mem_save_logon_server_0;
12460 TALLOC_CTX *_mem_save_data_0;
12461 TALLOC_CTX *_mem_save_query_0;
12462 if (flags & NDR_IN) {
12463 ZERO_STRUCT(r->out);
12465 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
12466 if (_ptr_logon_server) {
12467 NDR_PULL_ALLOC(ndr, r->in.logon_server);
12468 } else {
12469 r->in.logon_server = NULL;
12471 if (r->in.logon_server) {
12472 _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
12473 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
12474 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
12475 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
12476 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
12477 return 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));
12479 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
12480 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));
12481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
12483 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
12484 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12485 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12486 NDR_PULL_ALLOC(ndr, r->in.data);
12488 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
12489 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
12490 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
12491 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
12492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
12493 NDR_PULL_ALLOC(ndr, r->out.query);
12494 ZERO_STRUCTP(r->out.query);
12496 if (flags & NDR_OUT) {
12497 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12498 NDR_PULL_ALLOC(ndr, r->out.query);
12500 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
12501 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
12502 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
12503 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
12504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
12505 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12507 return NDR_ERR_SUCCESS;
12510 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
12512 ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
12513 ndr->depth++;
12514 if (flags & NDR_SET_VALUES) {
12515 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12517 if (flags & NDR_IN) {
12518 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
12519 ndr->depth++;
12520 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
12521 ndr->depth++;
12522 if (r->in.logon_server) {
12523 ndr_print_string(ndr, "logon_server", r->in.logon_server);
12525 ndr->depth--;
12526 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
12527 ndr_print_uint32(ndr, "level", r->in.level);
12528 ndr_print_ptr(ndr, "data", r->in.data);
12529 ndr->depth++;
12530 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
12531 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
12532 ndr->depth--;
12533 ndr->depth--;
12535 if (flags & NDR_OUT) {
12536 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
12537 ndr->depth++;
12538 ndr_print_ptr(ndr, "query", r->out.query);
12539 ndr->depth++;
12540 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
12541 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
12542 ndr->depth--;
12543 ndr_print_WERROR(ndr, "result", r->out.result);
12544 ndr->depth--;
12546 ndr->depth--;
12549 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
12551 if (flags & NDR_IN) {
12552 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12553 if (r->in.server_name) {
12554 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12555 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12556 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12557 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));
12560 if (flags & NDR_OUT) {
12561 if (r->out.trusted_domains_blob == NULL) {
12562 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12564 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
12565 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12567 return NDR_ERR_SUCCESS;
12570 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
12572 uint32_t _ptr_server_name;
12573 TALLOC_CTX *_mem_save_server_name_0;
12574 TALLOC_CTX *_mem_save_trusted_domains_blob_0;
12575 if (flags & NDR_IN) {
12576 ZERO_STRUCT(r->out);
12578 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12579 if (_ptr_server_name) {
12580 NDR_PULL_ALLOC(ndr, r->in.server_name);
12581 } else {
12582 r->in.server_name = NULL;
12584 if (r->in.server_name) {
12585 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12586 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12587 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12588 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12589 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12590 return 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));
12592 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12593 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));
12594 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12596 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
12597 ZERO_STRUCTP(r->out.trusted_domains_blob);
12599 if (flags & NDR_OUT) {
12600 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12601 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
12603 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
12604 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
12605 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
12606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
12607 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12609 return NDR_ERR_SUCCESS;
12612 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
12614 ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
12615 ndr->depth++;
12616 if (flags & NDR_SET_VALUES) {
12617 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12619 if (flags & NDR_IN) {
12620 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
12621 ndr->depth++;
12622 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12623 ndr->depth++;
12624 if (r->in.server_name) {
12625 ndr_print_string(ndr, "server_name", r->in.server_name);
12627 ndr->depth--;
12628 ndr->depth--;
12630 if (flags & NDR_OUT) {
12631 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
12632 ndr->depth++;
12633 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
12634 ndr->depth++;
12635 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
12636 ndr->depth--;
12637 ndr_print_WERROR(ndr, "result", r->out.result);
12638 ndr->depth--;
12640 ndr->depth--;
12643 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
12645 if (flags & NDR_IN) {
12646 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12647 if (r->in.server_unc) {
12648 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12649 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12650 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12651 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));
12653 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12654 if (r->in.domain_name) {
12655 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12656 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12657 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12658 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));
12660 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12661 if (r->in.domain_guid) {
12662 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12664 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
12665 if (r->in.site_guid) {
12666 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.site_guid));
12668 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12670 if (flags & NDR_OUT) {
12671 if (r->out.info == NULL) {
12672 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12674 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12675 if (*r->out.info) {
12676 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12678 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12680 return NDR_ERR_SUCCESS;
12683 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
12685 uint32_t _ptr_server_unc;
12686 uint32_t _ptr_domain_name;
12687 uint32_t _ptr_domain_guid;
12688 uint32_t _ptr_site_guid;
12689 uint32_t _ptr_info;
12690 TALLOC_CTX *_mem_save_server_unc_0;
12691 TALLOC_CTX *_mem_save_domain_name_0;
12692 TALLOC_CTX *_mem_save_domain_guid_0;
12693 TALLOC_CTX *_mem_save_site_guid_0;
12694 TALLOC_CTX *_mem_save_info_0;
12695 TALLOC_CTX *_mem_save_info_1;
12696 if (flags & NDR_IN) {
12697 ZERO_STRUCT(r->out);
12699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12700 if (_ptr_server_unc) {
12701 NDR_PULL_ALLOC(ndr, r->in.server_unc);
12702 } else {
12703 r->in.server_unc = NULL;
12705 if (r->in.server_unc) {
12706 _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12707 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12708 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12709 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12710 if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12711 return 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));
12713 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12714 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));
12715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12718 if (_ptr_domain_name) {
12719 NDR_PULL_ALLOC(ndr, r->in.domain_name);
12720 } else {
12721 r->in.domain_name = NULL;
12723 if (r->in.domain_name) {
12724 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12725 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12726 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12727 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12728 if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12729 return 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));
12731 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12732 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));
12733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12735 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12736 if (_ptr_domain_guid) {
12737 NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12738 } else {
12739 r->in.domain_guid = NULL;
12741 if (r->in.domain_guid) {
12742 _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12743 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12744 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12745 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12747 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
12748 if (_ptr_site_guid) {
12749 NDR_PULL_ALLOC(ndr, r->in.site_guid);
12750 } else {
12751 r->in.site_guid = NULL;
12753 if (r->in.site_guid) {
12754 _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12755 NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
12756 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.site_guid));
12757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
12759 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12760 NDR_PULL_ALLOC(ndr, r->out.info);
12761 ZERO_STRUCTP(r->out.info);
12763 if (flags & NDR_OUT) {
12764 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12765 NDR_PULL_ALLOC(ndr, r->out.info);
12767 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12768 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12769 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12770 if (_ptr_info) {
12771 NDR_PULL_ALLOC(ndr, *r->out.info);
12772 } else {
12773 *r->out.info = NULL;
12775 if (*r->out.info) {
12776 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12777 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12778 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12782 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12784 return NDR_ERR_SUCCESS;
12787 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
12789 ndr_print_struct(ndr, name, "netr_DsRGetDCName");
12790 ndr->depth++;
12791 if (flags & NDR_SET_VALUES) {
12792 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12794 if (flags & NDR_IN) {
12795 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
12796 ndr->depth++;
12797 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12798 ndr->depth++;
12799 if (r->in.server_unc) {
12800 ndr_print_string(ndr, "server_unc", r->in.server_unc);
12802 ndr->depth--;
12803 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12804 ndr->depth++;
12805 if (r->in.domain_name) {
12806 ndr_print_string(ndr, "domain_name", r->in.domain_name);
12808 ndr->depth--;
12809 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12810 ndr->depth++;
12811 if (r->in.domain_guid) {
12812 ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12814 ndr->depth--;
12815 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
12816 ndr->depth++;
12817 if (r->in.site_guid) {
12818 ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
12820 ndr->depth--;
12821 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
12822 ndr->depth--;
12824 if (flags & NDR_OUT) {
12825 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
12826 ndr->depth++;
12827 ndr_print_ptr(ndr, "info", r->out.info);
12828 ndr->depth++;
12829 ndr_print_ptr(ndr, "info", *r->out.info);
12830 ndr->depth++;
12831 if (*r->out.info) {
12832 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
12834 ndr->depth--;
12835 ndr->depth--;
12836 ndr_print_WERROR(ndr, "result", r->out.result);
12837 ndr->depth--;
12839 ndr->depth--;
12842 static enum ndr_err_code ndr_push_netr_LogonGetCapabilities(struct ndr_push *ndr, int flags, const struct netr_LogonGetCapabilities *r)
12844 if (flags & NDR_IN) {
12845 if (r->in.server_name == NULL) {
12846 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12848 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12849 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12850 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12851 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));
12852 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12853 if (r->in.computer_name) {
12854 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12855 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12856 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12857 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));
12859 if (r->in.credential == NULL) {
12860 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12862 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12863 if (r->in.return_authenticator == NULL) {
12864 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12866 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.query_level));
12869 if (flags & NDR_OUT) {
12870 if (r->out.return_authenticator == NULL) {
12871 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12873 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12874 if (r->out.capabilities == NULL) {
12875 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12877 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.capabilities, r->in.query_level));
12878 NDR_CHECK(ndr_push_netr_Capabilities(ndr, NDR_SCALARS, r->out.capabilities));
12879 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12881 return NDR_ERR_SUCCESS;
12884 static enum ndr_err_code ndr_pull_netr_LogonGetCapabilities(struct ndr_pull *ndr, int flags, struct netr_LogonGetCapabilities *r)
12886 uint32_t _ptr_computer_name;
12887 TALLOC_CTX *_mem_save_computer_name_0;
12888 TALLOC_CTX *_mem_save_credential_0;
12889 TALLOC_CTX *_mem_save_return_authenticator_0;
12890 TALLOC_CTX *_mem_save_capabilities_0;
12891 if (flags & NDR_IN) {
12892 ZERO_STRUCT(r->out);
12894 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12895 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12896 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12897 return 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));
12899 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12900 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));
12901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12902 if (_ptr_computer_name) {
12903 NDR_PULL_ALLOC(ndr, r->in.computer_name);
12904 } else {
12905 r->in.computer_name = NULL;
12907 if (r->in.computer_name) {
12908 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12909 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12910 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12911 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12912 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12913 return 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));
12915 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12916 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));
12917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12919 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12920 NDR_PULL_ALLOC(ndr, r->in.credential);
12922 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12923 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12924 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12926 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12927 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12929 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12930 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12931 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12932 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.query_level));
12934 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12935 *r->out.return_authenticator = *r->in.return_authenticator;
12936 NDR_PULL_ALLOC(ndr, r->out.capabilities);
12937 ZERO_STRUCTP(r->out.capabilities);
12939 if (flags & NDR_OUT) {
12940 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12941 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12943 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12944 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12945 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12947 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12948 NDR_PULL_ALLOC(ndr, r->out.capabilities);
12950 _mem_save_capabilities_0 = NDR_PULL_GET_MEM_CTX(ndr);
12951 NDR_PULL_SET_MEM_CTX(ndr, r->out.capabilities, LIBNDR_FLAG_REF_ALLOC);
12952 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.capabilities, r->in.query_level));
12953 NDR_CHECK(ndr_pull_netr_Capabilities(ndr, NDR_SCALARS, r->out.capabilities));
12954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_capabilities_0, LIBNDR_FLAG_REF_ALLOC);
12955 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12957 return NDR_ERR_SUCCESS;
12960 _PUBLIC_ void ndr_print_netr_LogonGetCapabilities(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetCapabilities *r)
12962 ndr_print_struct(ndr, name, "netr_LogonGetCapabilities");
12963 ndr->depth++;
12964 if (flags & NDR_SET_VALUES) {
12965 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12967 if (flags & NDR_IN) {
12968 ndr_print_struct(ndr, "in", "netr_LogonGetCapabilities");
12969 ndr->depth++;
12970 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12971 ndr->depth++;
12972 ndr_print_string(ndr, "server_name", r->in.server_name);
12973 ndr->depth--;
12974 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12975 ndr->depth++;
12976 if (r->in.computer_name) {
12977 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12979 ndr->depth--;
12980 ndr_print_ptr(ndr, "credential", r->in.credential);
12981 ndr->depth++;
12982 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12983 ndr->depth--;
12984 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12985 ndr->depth++;
12986 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12987 ndr->depth--;
12988 ndr_print_uint32(ndr, "query_level", r->in.query_level);
12989 ndr->depth--;
12991 if (flags & NDR_OUT) {
12992 ndr_print_struct(ndr, "out", "netr_LogonGetCapabilities");
12993 ndr->depth++;
12994 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12995 ndr->depth++;
12996 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12997 ndr->depth--;
12998 ndr_print_ptr(ndr, "capabilities", r->out.capabilities);
12999 ndr->depth++;
13000 ndr_print_set_switch_value(ndr, r->out.capabilities, r->in.query_level);
13001 ndr_print_netr_Capabilities(ndr, "capabilities", r->out.capabilities);
13002 ndr->depth--;
13003 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13004 ndr->depth--;
13006 ndr->depth--;
13009 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
13011 if (flags & NDR_IN) {
13013 if (flags & NDR_OUT) {
13014 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13016 return NDR_ERR_SUCCESS;
13019 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
13021 if (flags & NDR_IN) {
13023 if (flags & NDR_OUT) {
13024 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13026 return NDR_ERR_SUCCESS;
13029 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
13031 ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
13032 ndr->depth++;
13033 if (flags & NDR_SET_VALUES) {
13034 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13036 if (flags & NDR_IN) {
13037 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
13038 ndr->depth++;
13039 ndr->depth--;
13041 if (flags & NDR_OUT) {
13042 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
13043 ndr->depth++;
13044 ndr_print_WERROR(ndr, "result", r->out.result);
13045 ndr->depth--;
13047 ndr->depth--;
13050 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
13052 if (flags & NDR_IN) {
13053 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13054 if (r->in.server_name) {
13055 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13056 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13057 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13058 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));
13060 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
13061 if (r->in.domain_name) {
13062 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13063 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13064 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13065 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));
13068 if (flags & NDR_OUT) {
13069 if (r->out.rid == NULL) {
13070 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
13073 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13075 return NDR_ERR_SUCCESS;
13078 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
13080 uint32_t _ptr_server_name;
13081 uint32_t _ptr_domain_name;
13082 TALLOC_CTX *_mem_save_server_name_0;
13083 TALLOC_CTX *_mem_save_domain_name_0;
13084 TALLOC_CTX *_mem_save_rid_0;
13085 if (flags & NDR_IN) {
13086 ZERO_STRUCT(r->out);
13088 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13089 if (_ptr_server_name) {
13090 NDR_PULL_ALLOC(ndr, r->in.server_name);
13091 } else {
13092 r->in.server_name = NULL;
13094 if (r->in.server_name) {
13095 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13096 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13097 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13098 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13099 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13100 return 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));
13102 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13103 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));
13104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
13107 if (_ptr_domain_name) {
13108 NDR_PULL_ALLOC(ndr, r->in.domain_name);
13109 } else {
13110 r->in.domain_name = NULL;
13112 if (r->in.domain_name) {
13113 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13114 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
13115 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
13116 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
13117 if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
13118 return 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));
13120 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
13121 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));
13122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
13124 NDR_PULL_ALLOC(ndr, r->out.rid);
13125 ZERO_STRUCTP(r->out.rid);
13127 if (flags & NDR_OUT) {
13128 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13129 NDR_PULL_ALLOC(ndr, r->out.rid);
13131 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13132 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
13133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
13134 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
13135 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13137 return NDR_ERR_SUCCESS;
13140 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
13142 ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
13143 ndr->depth++;
13144 if (flags & NDR_SET_VALUES) {
13145 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13147 if (flags & NDR_IN) {
13148 ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
13149 ndr->depth++;
13150 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13151 ndr->depth++;
13152 if (r->in.server_name) {
13153 ndr_print_string(ndr, "server_name", r->in.server_name);
13155 ndr->depth--;
13156 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
13157 ndr->depth++;
13158 if (r->in.domain_name) {
13159 ndr_print_string(ndr, "domain_name", r->in.domain_name);
13161 ndr->depth--;
13162 ndr->depth--;
13164 if (flags & NDR_OUT) {
13165 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
13166 ndr->depth++;
13167 ndr_print_ptr(ndr, "rid", r->out.rid);
13168 ndr->depth++;
13169 ndr_print_uint32(ndr, "rid", *r->out.rid);
13170 ndr->depth--;
13171 ndr_print_WERROR(ndr, "result", r->out.result);
13172 ndr->depth--;
13174 ndr->depth--;
13177 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
13179 if (flags & NDR_IN) {
13181 if (flags & NDR_OUT) {
13182 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13184 return NDR_ERR_SUCCESS;
13187 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
13189 if (flags & NDR_IN) {
13191 if (flags & NDR_OUT) {
13192 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13194 return NDR_ERR_SUCCESS;
13197 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
13199 ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
13200 ndr->depth++;
13201 if (flags & NDR_SET_VALUES) {
13202 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13204 if (flags & NDR_IN) {
13205 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
13206 ndr->depth++;
13207 ndr->depth--;
13209 if (flags & NDR_OUT) {
13210 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
13211 ndr->depth++;
13212 ndr_print_WERROR(ndr, "result", r->out.result);
13213 ndr->depth--;
13215 ndr->depth--;
13218 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
13220 if (flags & NDR_IN) {
13222 if (flags & NDR_OUT) {
13223 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13225 return NDR_ERR_SUCCESS;
13228 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
13230 if (flags & NDR_IN) {
13232 if (flags & NDR_OUT) {
13233 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13235 return NDR_ERR_SUCCESS;
13238 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
13240 ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13241 ndr->depth++;
13242 if (flags & NDR_SET_VALUES) {
13243 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13245 if (flags & NDR_IN) {
13246 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13247 ndr->depth++;
13248 ndr->depth--;
13250 if (flags & NDR_OUT) {
13251 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
13252 ndr->depth++;
13253 ndr_print_WERROR(ndr, "result", r->out.result);
13254 ndr->depth--;
13256 ndr->depth--;
13259 _PUBLIC_ enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
13261 if (flags & NDR_IN) {
13262 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13263 if (r->in.server_name) {
13264 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13265 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13266 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13267 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));
13269 if (r->in.account_name == NULL) {
13270 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13272 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13273 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13274 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13275 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));
13276 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13277 if (r->in.computer_name == NULL) {
13278 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13280 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13281 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13282 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13283 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));
13284 if (r->in.credentials == NULL) {
13285 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13287 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
13288 if (r->in.negotiate_flags == NULL) {
13289 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13291 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
13293 if (flags & NDR_OUT) {
13294 if (r->out.return_credentials == NULL) {
13295 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13297 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
13298 if (r->out.negotiate_flags == NULL) {
13299 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13301 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
13302 if (r->out.rid == NULL) {
13303 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
13306 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13308 return NDR_ERR_SUCCESS;
13311 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
13313 uint32_t _ptr_server_name;
13314 TALLOC_CTX *_mem_save_server_name_0;
13315 TALLOC_CTX *_mem_save_credentials_0;
13316 TALLOC_CTX *_mem_save_return_credentials_0;
13317 TALLOC_CTX *_mem_save_negotiate_flags_0;
13318 TALLOC_CTX *_mem_save_rid_0;
13319 if (flags & NDR_IN) {
13320 ZERO_STRUCT(r->out);
13322 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13323 if (_ptr_server_name) {
13324 NDR_PULL_ALLOC(ndr, r->in.server_name);
13325 } else {
13326 r->in.server_name = NULL;
13328 if (r->in.server_name) {
13329 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13330 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13331 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13332 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13333 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13334 return 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));
13336 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13337 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));
13338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13340 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13341 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13342 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13343 return 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));
13345 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13346 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));
13347 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13348 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13349 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13350 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13351 return 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));
13353 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13354 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));
13355 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13356 NDR_PULL_ALLOC(ndr, r->in.credentials);
13358 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
13359 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
13360 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
13361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
13362 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13363 NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
13365 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13366 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
13367 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
13368 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
13369 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
13370 ZERO_STRUCTP(r->out.return_credentials);
13371 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
13372 *r->out.negotiate_flags = *r->in.negotiate_flags;
13373 NDR_PULL_ALLOC(ndr, r->out.rid);
13374 ZERO_STRUCTP(r->out.rid);
13376 if (flags & NDR_OUT) {
13377 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13378 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
13380 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
13381 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
13382 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
13383 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
13384 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13385 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
13387 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13388 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
13389 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
13390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
13391 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13392 NDR_PULL_ALLOC(ndr, r->out.rid);
13394 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13395 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
13396 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
13397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
13398 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13400 return NDR_ERR_SUCCESS;
13403 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
13405 ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
13406 ndr->depth++;
13407 if (flags & NDR_SET_VALUES) {
13408 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13410 if (flags & NDR_IN) {
13411 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
13412 ndr->depth++;
13413 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13414 ndr->depth++;
13415 if (r->in.server_name) {
13416 ndr_print_string(ndr, "server_name", r->in.server_name);
13418 ndr->depth--;
13419 ndr_print_ptr(ndr, "account_name", r->in.account_name);
13420 ndr->depth++;
13421 ndr_print_string(ndr, "account_name", r->in.account_name);
13422 ndr->depth--;
13423 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13424 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13425 ndr->depth++;
13426 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13427 ndr->depth--;
13428 ndr_print_ptr(ndr, "credentials", r->in.credentials);
13429 ndr->depth++;
13430 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
13431 ndr->depth--;
13432 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
13433 ndr->depth++;
13434 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
13435 ndr->depth--;
13436 ndr->depth--;
13438 if (flags & NDR_OUT) {
13439 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
13440 ndr->depth++;
13441 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
13442 ndr->depth++;
13443 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
13444 ndr->depth--;
13445 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
13446 ndr->depth++;
13447 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
13448 ndr->depth--;
13449 ndr_print_ptr(ndr, "rid", r->out.rid);
13450 ndr->depth++;
13451 ndr_print_uint32(ndr, "rid", *r->out.rid);
13452 ndr->depth--;
13453 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13454 ndr->depth--;
13456 ndr->depth--;
13459 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
13461 if (flags & NDR_IN) {
13462 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
13463 if (r->in.server_unc) {
13464 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
13465 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13466 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
13467 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));
13469 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
13470 if (r->in.domain_name) {
13471 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13472 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13473 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13474 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));
13476 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13477 if (r->in.domain_guid) {
13478 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13480 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
13481 if (r->in.site_name) {
13482 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
13483 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
13485 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));
13487 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
13489 if (flags & NDR_OUT) {
13490 if (r->out.info == NULL) {
13491 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13493 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
13494 if (*r->out.info) {
13495 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
13497 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13499 return NDR_ERR_SUCCESS;
13502 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
13504 uint32_t _ptr_server_unc;
13505 uint32_t _ptr_domain_name;
13506 uint32_t _ptr_domain_guid;
13507 uint32_t _ptr_site_name;
13508 uint32_t _ptr_info;
13509 TALLOC_CTX *_mem_save_server_unc_0;
13510 TALLOC_CTX *_mem_save_domain_name_0;
13511 TALLOC_CTX *_mem_save_domain_guid_0;
13512 TALLOC_CTX *_mem_save_site_name_0;
13513 TALLOC_CTX *_mem_save_info_0;
13514 TALLOC_CTX *_mem_save_info_1;
13515 if (flags & NDR_IN) {
13516 ZERO_STRUCT(r->out);
13518 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
13519 if (_ptr_server_unc) {
13520 NDR_PULL_ALLOC(ndr, r->in.server_unc);
13521 } else {
13522 r->in.server_unc = NULL;
13524 if (r->in.server_unc) {
13525 _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
13526 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
13527 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
13528 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
13529 if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
13530 return 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));
13532 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
13533 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));
13534 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
13536 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
13537 if (_ptr_domain_name) {
13538 NDR_PULL_ALLOC(ndr, r->in.domain_name);
13539 } else {
13540 r->in.domain_name = NULL;
13542 if (r->in.domain_name) {
13543 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13544 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
13545 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
13546 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
13547 if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
13548 return 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));
13550 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
13551 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));
13552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
13554 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
13555 if (_ptr_domain_guid) {
13556 NDR_PULL_ALLOC(ndr, r->in.domain_guid);
13557 } else {
13558 r->in.domain_guid = NULL;
13560 if (r->in.domain_guid) {
13561 _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13562 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
13563 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
13566 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
13567 if (_ptr_site_name) {
13568 NDR_PULL_ALLOC(ndr, r->in.site_name);
13569 } else {
13570 r->in.site_name = NULL;
13572 if (r->in.site_name) {
13573 _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13574 NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
13575 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
13576 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
13577 if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
13578 return 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));
13580 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
13581 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));
13582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
13584 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
13585 NDR_PULL_ALLOC(ndr, r->out.info);
13586 ZERO_STRUCTP(r->out.info);
13588 if (flags & NDR_OUT) {
13589 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13590 NDR_PULL_ALLOC(ndr, r->out.info);
13592 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13593 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
13594 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
13595 if (_ptr_info) {
13596 NDR_PULL_ALLOC(ndr, *r->out.info);
13597 } else {
13598 *r->out.info = NULL;
13600 if (*r->out.info) {
13601 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
13602 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
13603 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
13604 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
13606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
13607 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13609 return NDR_ERR_SUCCESS;
13612 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
13614 ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
13615 ndr->depth++;
13616 if (flags & NDR_SET_VALUES) {
13617 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13619 if (flags & NDR_IN) {
13620 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
13621 ndr->depth++;
13622 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
13623 ndr->depth++;
13624 if (r->in.server_unc) {
13625 ndr_print_string(ndr, "server_unc", r->in.server_unc);
13627 ndr->depth--;
13628 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
13629 ndr->depth++;
13630 if (r->in.domain_name) {
13631 ndr_print_string(ndr, "domain_name", r->in.domain_name);
13633 ndr->depth--;
13634 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13635 ndr->depth++;
13636 if (r->in.domain_guid) {
13637 ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13639 ndr->depth--;
13640 ndr_print_ptr(ndr, "site_name", r->in.site_name);
13641 ndr->depth++;
13642 if (r->in.site_name) {
13643 ndr_print_string(ndr, "site_name", r->in.site_name);
13645 ndr->depth--;
13646 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
13647 ndr->depth--;
13649 if (flags & NDR_OUT) {
13650 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
13651 ndr->depth++;
13652 ndr_print_ptr(ndr, "info", r->out.info);
13653 ndr->depth++;
13654 ndr_print_ptr(ndr, "info", *r->out.info);
13655 ndr->depth++;
13656 if (*r->out.info) {
13657 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
13659 ndr->depth--;
13660 ndr->depth--;
13661 ndr_print_WERROR(ndr, "result", r->out.result);
13662 ndr->depth--;
13664 ndr->depth--;
13667 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
13669 if (flags & NDR_IN) {
13670 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13671 if (r->in.computer_name) {
13672 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13673 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13674 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13675 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));
13678 if (flags & NDR_OUT) {
13679 if (r->out.site == NULL) {
13680 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13682 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
13683 if (*r->out.site) {
13684 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
13685 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13686 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
13687 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13689 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13691 return NDR_ERR_SUCCESS;
13694 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
13696 uint32_t _ptr_computer_name;
13697 uint32_t _ptr_site;
13698 TALLOC_CTX *_mem_save_computer_name_0;
13699 TALLOC_CTX *_mem_save_site_0;
13700 TALLOC_CTX *_mem_save_site_1;
13701 if (flags & NDR_IN) {
13702 ZERO_STRUCT(r->out);
13704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13705 if (_ptr_computer_name) {
13706 NDR_PULL_ALLOC(ndr, r->in.computer_name);
13707 } else {
13708 r->in.computer_name = NULL;
13710 if (r->in.computer_name) {
13711 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13712 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13713 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13714 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13715 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13716 return 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));
13718 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13719 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));
13720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13722 NDR_PULL_ALLOC(ndr, r->out.site);
13723 ZERO_STRUCTP(r->out.site);
13725 if (flags & NDR_OUT) {
13726 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13727 NDR_PULL_ALLOC(ndr, r->out.site);
13729 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
13730 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
13731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
13732 if (_ptr_site) {
13733 NDR_PULL_ALLOC(ndr, *r->out.site);
13734 } else {
13735 *r->out.site = NULL;
13737 if (*r->out.site) {
13738 _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
13739 NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
13740 NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
13741 NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
13742 if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
13743 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));
13745 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
13746 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
13747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
13749 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
13750 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13752 return NDR_ERR_SUCCESS;
13755 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
13757 ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
13758 ndr->depth++;
13759 if (flags & NDR_SET_VALUES) {
13760 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13762 if (flags & NDR_IN) {
13763 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
13764 ndr->depth++;
13765 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13766 ndr->depth++;
13767 if (r->in.computer_name) {
13768 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13770 ndr->depth--;
13771 ndr->depth--;
13773 if (flags & NDR_OUT) {
13774 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
13775 ndr->depth++;
13776 ndr_print_ptr(ndr, "site", r->out.site);
13777 ndr->depth++;
13778 ndr_print_ptr(ndr, "site", *r->out.site);
13779 ndr->depth++;
13780 if (*r->out.site) {
13781 ndr_print_string(ndr, "site", *r->out.site);
13783 ndr->depth--;
13784 ndr->depth--;
13785 ndr_print_WERROR(ndr, "result", r->out.result);
13786 ndr->depth--;
13788 ndr->depth--;
13791 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
13793 if (flags & NDR_IN) {
13794 if (r->in.server_name == NULL) {
13795 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13797 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13798 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13799 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13800 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));
13801 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13802 if (r->in.computer_name) {
13803 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13804 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13805 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13806 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));
13808 if (r->in.credential == NULL) {
13809 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13811 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13812 if (r->in.return_authenticator == NULL) {
13813 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13815 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
13816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13817 if (r->in.query == NULL) {
13818 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13820 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.query, r->in.level));
13821 NDR_CHECK(ndr_push_netr_WorkstationInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.query));
13823 if (flags & NDR_OUT) {
13824 if (r->out.return_authenticator == NULL) {
13825 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13827 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13828 if (r->out.info == NULL) {
13829 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13831 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
13832 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13833 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13835 return NDR_ERR_SUCCESS;
13838 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
13840 uint32_t _ptr_computer_name;
13841 TALLOC_CTX *_mem_save_computer_name_0;
13842 TALLOC_CTX *_mem_save_credential_0;
13843 TALLOC_CTX *_mem_save_return_authenticator_0;
13844 TALLOC_CTX *_mem_save_query_0;
13845 TALLOC_CTX *_mem_save_info_0;
13846 if (flags & NDR_IN) {
13847 ZERO_STRUCT(r->out);
13849 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13850 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13851 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13852 return 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));
13854 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13855 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));
13856 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13857 if (_ptr_computer_name) {
13858 NDR_PULL_ALLOC(ndr, r->in.computer_name);
13859 } else {
13860 r->in.computer_name = NULL;
13862 if (r->in.computer_name) {
13863 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13864 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13865 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13866 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13867 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13868 return 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));
13870 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13871 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));
13872 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13874 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13875 NDR_PULL_ALLOC(ndr, r->in.credential);
13877 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13878 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13879 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13881 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13882 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
13884 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13885 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13886 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
13887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13889 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13890 NDR_PULL_ALLOC(ndr, r->in.query);
13892 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
13893 NDR_PULL_SET_MEM_CTX(ndr, r->in.query, LIBNDR_FLAG_REF_ALLOC);
13894 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.query, r->in.level));
13895 NDR_CHECK(ndr_pull_netr_WorkstationInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.query));
13896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
13897 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13898 *r->out.return_authenticator = *r->in.return_authenticator;
13899 NDR_PULL_ALLOC(ndr, r->out.info);
13900 ZERO_STRUCTP(r->out.info);
13902 if (flags & NDR_OUT) {
13903 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13904 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13906 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13907 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13908 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13910 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13911 NDR_PULL_ALLOC(ndr, r->out.info);
13913 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13914 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
13915 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
13916 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
13918 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13920 return NDR_ERR_SUCCESS;
13923 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
13925 ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
13926 ndr->depth++;
13927 if (flags & NDR_SET_VALUES) {
13928 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13930 if (flags & NDR_IN) {
13931 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
13932 ndr->depth++;
13933 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13934 ndr->depth++;
13935 ndr_print_string(ndr, "server_name", r->in.server_name);
13936 ndr->depth--;
13937 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13938 ndr->depth++;
13939 if (r->in.computer_name) {
13940 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13942 ndr->depth--;
13943 ndr_print_ptr(ndr, "credential", r->in.credential);
13944 ndr->depth++;
13945 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13946 ndr->depth--;
13947 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
13948 ndr->depth++;
13949 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
13950 ndr->depth--;
13951 ndr_print_uint32(ndr, "level", r->in.level);
13952 ndr_print_ptr(ndr, "query", r->in.query);
13953 ndr->depth++;
13954 ndr_print_set_switch_value(ndr, r->in.query, r->in.level);
13955 ndr_print_netr_WorkstationInfo(ndr, "query", r->in.query);
13956 ndr->depth--;
13957 ndr->depth--;
13959 if (flags & NDR_OUT) {
13960 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
13961 ndr->depth++;
13962 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13963 ndr->depth++;
13964 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13965 ndr->depth--;
13966 ndr_print_ptr(ndr, "info", r->out.info);
13967 ndr->depth++;
13968 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
13969 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
13970 ndr->depth--;
13971 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13972 ndr->depth--;
13974 ndr->depth--;
13977 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
13979 if (flags & NDR_IN) {
13980 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13981 if (r->in.server_name) {
13982 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13983 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13984 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13985 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));
13987 if (r->in.account_name == NULL) {
13988 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13990 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13991 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13992 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13993 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));
13994 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13995 if (r->in.computer_name == NULL) {
13996 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13998 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13999 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14000 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14001 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));
14002 if (r->in.credential == NULL) {
14003 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14005 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14006 if (r->in.new_password == NULL) {
14007 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14009 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
14011 if (flags & NDR_OUT) {
14012 if (r->out.return_authenticator == NULL) {
14013 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14015 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14016 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14018 return NDR_ERR_SUCCESS;
14021 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
14023 uint32_t _ptr_server_name;
14024 TALLOC_CTX *_mem_save_server_name_0;
14025 TALLOC_CTX *_mem_save_credential_0;
14026 TALLOC_CTX *_mem_save_return_authenticator_0;
14027 TALLOC_CTX *_mem_save_new_password_0;
14028 if (flags & NDR_IN) {
14029 ZERO_STRUCT(r->out);
14031 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14032 if (_ptr_server_name) {
14033 NDR_PULL_ALLOC(ndr, r->in.server_name);
14034 } else {
14035 r->in.server_name = NULL;
14037 if (r->in.server_name) {
14038 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14039 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14040 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14041 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14042 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14043 return 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));
14045 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14046 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));
14047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14049 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
14050 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
14051 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
14052 return 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));
14054 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
14055 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));
14056 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
14057 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14058 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14059 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14060 return 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));
14062 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14063 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));
14064 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14065 NDR_PULL_ALLOC(ndr, r->in.credential);
14067 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14068 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14069 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14071 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14072 NDR_PULL_ALLOC(ndr, r->in.new_password);
14074 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
14075 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
14076 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
14077 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
14078 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14079 ZERO_STRUCTP(r->out.return_authenticator);
14081 if (flags & NDR_OUT) {
14082 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14083 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14085 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14086 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14087 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14089 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14091 return NDR_ERR_SUCCESS;
14094 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
14096 ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
14097 ndr->depth++;
14098 if (flags & NDR_SET_VALUES) {
14099 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14101 if (flags & NDR_IN) {
14102 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
14103 ndr->depth++;
14104 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14105 ndr->depth++;
14106 if (r->in.server_name) {
14107 ndr_print_string(ndr, "server_name", r->in.server_name);
14109 ndr->depth--;
14110 ndr_print_ptr(ndr, "account_name", r->in.account_name);
14111 ndr->depth++;
14112 ndr_print_string(ndr, "account_name", r->in.account_name);
14113 ndr->depth--;
14114 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
14115 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14116 ndr->depth++;
14117 ndr_print_string(ndr, "computer_name", r->in.computer_name);
14118 ndr->depth--;
14119 ndr_print_ptr(ndr, "credential", r->in.credential);
14120 ndr->depth++;
14121 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14122 ndr->depth--;
14123 ndr_print_ptr(ndr, "new_password", r->in.new_password);
14124 ndr->depth++;
14125 ndr_print_netr_CryptPassword(ndr, "new_password", r->in.new_password);
14126 ndr->depth--;
14127 ndr->depth--;
14129 if (flags & NDR_OUT) {
14130 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
14131 ndr->depth++;
14132 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14133 ndr->depth++;
14134 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14135 ndr->depth--;
14136 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14137 ndr->depth--;
14139 ndr->depth--;
14142 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
14144 if (flags & NDR_IN) {
14145 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14146 if (r->in.server_name) {
14147 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14148 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14149 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14150 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));
14152 if (r->in.account_name == NULL) {
14153 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
14156 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14157 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
14158 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));
14159 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
14160 if (r->in.computer_name == NULL) {
14161 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14163 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14164 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14165 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14166 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));
14167 if (r->in.credential == NULL) {
14168 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14170 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14172 if (flags & NDR_OUT) {
14173 if (r->out.return_authenticator == NULL) {
14174 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14176 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14177 if (r->out.password == NULL) {
14178 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14180 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
14181 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14183 return NDR_ERR_SUCCESS;
14186 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
14188 uint32_t _ptr_server_name;
14189 TALLOC_CTX *_mem_save_server_name_0;
14190 TALLOC_CTX *_mem_save_credential_0;
14191 TALLOC_CTX *_mem_save_return_authenticator_0;
14192 TALLOC_CTX *_mem_save_password_0;
14193 if (flags & NDR_IN) {
14194 ZERO_STRUCT(r->out);
14196 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14197 if (_ptr_server_name) {
14198 NDR_PULL_ALLOC(ndr, r->in.server_name);
14199 } else {
14200 r->in.server_name = NULL;
14202 if (r->in.server_name) {
14203 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14204 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14205 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14206 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14207 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14208 return 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));
14210 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14211 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));
14212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14214 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
14215 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
14216 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
14217 return 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));
14219 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
14220 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));
14221 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
14222 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14223 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14224 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14225 return 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));
14227 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14228 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));
14229 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14230 NDR_PULL_ALLOC(ndr, r->in.credential);
14232 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14233 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14234 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14235 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14236 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14237 ZERO_STRUCTP(r->out.return_authenticator);
14238 NDR_PULL_ALLOC(ndr, r->out.password);
14239 ZERO_STRUCTP(r->out.password);
14241 if (flags & NDR_OUT) {
14242 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14243 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14245 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14246 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14247 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14248 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14249 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14250 NDR_PULL_ALLOC(ndr, r->out.password);
14252 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
14253 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
14254 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
14255 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
14256 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14258 return NDR_ERR_SUCCESS;
14261 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
14263 ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
14264 ndr->depth++;
14265 if (flags & NDR_SET_VALUES) {
14266 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14268 if (flags & NDR_IN) {
14269 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
14270 ndr->depth++;
14271 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14272 ndr->depth++;
14273 if (r->in.server_name) {
14274 ndr_print_string(ndr, "server_name", r->in.server_name);
14276 ndr->depth--;
14277 ndr_print_ptr(ndr, "account_name", r->in.account_name);
14278 ndr->depth++;
14279 ndr_print_string(ndr, "account_name", r->in.account_name);
14280 ndr->depth--;
14281 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
14282 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14283 ndr->depth++;
14284 ndr_print_string(ndr, "computer_name", r->in.computer_name);
14285 ndr->depth--;
14286 ndr_print_ptr(ndr, "credential", r->in.credential);
14287 ndr->depth++;
14288 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14289 ndr->depth--;
14290 ndr->depth--;
14292 if (flags & NDR_OUT) {
14293 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
14294 ndr->depth++;
14295 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14296 ndr->depth++;
14297 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14298 ndr->depth--;
14299 ndr_print_ptr(ndr, "password", r->out.password);
14300 ndr->depth++;
14301 ndr_print_samr_Password(ndr, "password", r->out.password);
14302 ndr->depth--;
14303 ndr_print_WERROR(ndr, "result", r->out.result);
14304 ndr->depth--;
14306 ndr->depth--;
14309 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
14311 if (flags & NDR_IN) {
14313 if (flags & NDR_OUT) {
14314 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14316 return NDR_ERR_SUCCESS;
14319 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
14321 if (flags & NDR_IN) {
14323 if (flags & NDR_OUT) {
14324 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14326 return NDR_ERR_SUCCESS;
14329 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
14331 ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
14332 ndr->depth++;
14333 if (flags & NDR_SET_VALUES) {
14334 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14336 if (flags & NDR_IN) {
14337 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
14338 ndr->depth++;
14339 ndr->depth--;
14341 if (flags & NDR_OUT) {
14342 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
14343 ndr->depth++;
14344 ndr_print_WERROR(ndr, "result", r->out.result);
14345 ndr->depth--;
14347 ndr->depth--;
14350 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
14352 uint32_t cntr_addresses_1;
14353 if (flags & NDR_IN) {
14354 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14355 if (r->in.server_name) {
14356 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14357 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14358 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14359 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));
14361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14362 if (r->in.addresses == NULL) {
14363 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14365 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.count));
14366 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14367 NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14369 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14370 NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14373 if (flags & NDR_OUT) {
14374 if (r->out.ctr == NULL) {
14375 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14377 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
14378 if (*r->out.ctr) {
14379 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14381 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14383 return NDR_ERR_SUCCESS;
14386 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
14388 uint32_t _ptr_server_name;
14389 uint32_t cntr_addresses_1;
14390 uint32_t _ptr_ctr;
14391 TALLOC_CTX *_mem_save_server_name_0;
14392 TALLOC_CTX *_mem_save_addresses_1;
14393 TALLOC_CTX *_mem_save_ctr_0;
14394 TALLOC_CTX *_mem_save_ctr_1;
14395 if (flags & NDR_IN) {
14396 ZERO_STRUCT(r->out);
14398 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14399 if (_ptr_server_name) {
14400 NDR_PULL_ALLOC(ndr, r->in.server_name);
14401 } else {
14402 r->in.server_name = NULL;
14404 if (r->in.server_name) {
14405 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14406 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14407 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14408 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14409 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14410 return 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));
14412 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14413 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));
14414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14417 if (r->in.count > 32000) {
14418 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
14420 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
14421 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14422 NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
14424 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
14425 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
14426 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14427 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14429 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14430 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
14433 NDR_PULL_ALLOC(ndr, r->out.ctr);
14434 ZERO_STRUCTP(r->out.ctr);
14435 if (r->in.addresses) {
14436 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
14439 if (flags & NDR_OUT) {
14440 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14441 NDR_PULL_ALLOC(ndr, r->out.ctr);
14443 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14444 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14445 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14446 if (_ptr_ctr) {
14447 NDR_PULL_ALLOC(ndr, *r->out.ctr);
14448 } else {
14449 *r->out.ctr = NULL;
14451 if (*r->out.ctr) {
14452 _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
14453 NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
14454 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
14457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14458 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14460 return NDR_ERR_SUCCESS;
14463 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
14465 uint32_t cntr_addresses_1;
14466 ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
14467 ndr->depth++;
14468 if (flags & NDR_SET_VALUES) {
14469 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14471 if (flags & NDR_IN) {
14472 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
14473 ndr->depth++;
14474 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14475 ndr->depth++;
14476 if (r->in.server_name) {
14477 ndr_print_string(ndr, "server_name", r->in.server_name);
14479 ndr->depth--;
14480 ndr_print_uint32(ndr, "count", r->in.count);
14481 ndr_print_ptr(ndr, "addresses", r->in.addresses);
14482 ndr->depth++;
14483 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
14484 ndr->depth++;
14485 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
14486 char *idx_1=NULL;
14487 if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
14488 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
14489 free(idx_1);
14492 ndr->depth--;
14493 ndr->depth--;
14494 ndr->depth--;
14496 if (flags & NDR_OUT) {
14497 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
14498 ndr->depth++;
14499 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14500 ndr->depth++;
14501 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
14502 ndr->depth++;
14503 if (*r->out.ctr) {
14504 ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
14506 ndr->depth--;
14507 ndr->depth--;
14508 ndr_print_WERROR(ndr, "result", r->out.result);
14509 ndr->depth--;
14511 ndr->depth--;
14514 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
14516 if (flags & NDR_IN) {
14517 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
14518 if (r->in.server_unc) {
14519 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
14520 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14521 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
14522 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));
14524 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
14525 if (r->in.client_account) {
14526 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
14527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14528 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
14529 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));
14531 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
14532 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
14533 if (r->in.domain_name) {
14534 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
14535 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14536 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
14537 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));
14539 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
14540 if (r->in.domain_guid) {
14541 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
14543 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
14544 if (r->in.site_name) {
14545 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
14546 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14547 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
14548 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));
14550 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
14552 if (flags & NDR_OUT) {
14553 if (r->out.info == NULL) {
14554 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14556 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
14557 if (*r->out.info) {
14558 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
14560 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14562 return NDR_ERR_SUCCESS;
14565 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
14567 uint32_t _ptr_server_unc;
14568 uint32_t _ptr_client_account;
14569 uint32_t _ptr_domain_name;
14570 uint32_t _ptr_domain_guid;
14571 uint32_t _ptr_site_name;
14572 uint32_t _ptr_info;
14573 TALLOC_CTX *_mem_save_server_unc_0;
14574 TALLOC_CTX *_mem_save_client_account_0;
14575 TALLOC_CTX *_mem_save_domain_name_0;
14576 TALLOC_CTX *_mem_save_domain_guid_0;
14577 TALLOC_CTX *_mem_save_site_name_0;
14578 TALLOC_CTX *_mem_save_info_0;
14579 TALLOC_CTX *_mem_save_info_1;
14580 if (flags & NDR_IN) {
14581 ZERO_STRUCT(r->out);
14583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
14584 if (_ptr_server_unc) {
14585 NDR_PULL_ALLOC(ndr, r->in.server_unc);
14586 } else {
14587 r->in.server_unc = NULL;
14589 if (r->in.server_unc) {
14590 _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
14591 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
14592 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
14593 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
14594 if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
14595 return 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));
14597 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
14598 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));
14599 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
14601 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
14602 if (_ptr_client_account) {
14603 NDR_PULL_ALLOC(ndr, r->in.client_account);
14604 } else {
14605 r->in.client_account = NULL;
14607 if (r->in.client_account) {
14608 _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
14609 NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
14610 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
14611 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
14612 if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
14613 return 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));
14615 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
14616 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));
14617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
14619 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
14620 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
14621 if (_ptr_domain_name) {
14622 NDR_PULL_ALLOC(ndr, r->in.domain_name);
14623 } else {
14624 r->in.domain_name = NULL;
14626 if (r->in.domain_name) {
14627 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14628 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
14629 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
14630 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
14631 if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
14632 return 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));
14634 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
14635 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));
14636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
14638 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
14639 if (_ptr_domain_guid) {
14640 NDR_PULL_ALLOC(ndr, r->in.domain_guid);
14641 } else {
14642 r->in.domain_guid = NULL;
14644 if (r->in.domain_guid) {
14645 _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
14646 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
14647 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
14648 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
14650 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
14651 if (_ptr_site_name) {
14652 NDR_PULL_ALLOC(ndr, r->in.site_name);
14653 } else {
14654 r->in.site_name = NULL;
14656 if (r->in.site_name) {
14657 _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14658 NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
14659 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
14660 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
14661 if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
14662 return 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));
14664 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
14665 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));
14666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
14668 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
14669 NDR_PULL_ALLOC(ndr, r->out.info);
14670 ZERO_STRUCTP(r->out.info);
14672 if (flags & NDR_OUT) {
14673 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14674 NDR_PULL_ALLOC(ndr, r->out.info);
14676 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14677 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
14678 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14679 if (_ptr_info) {
14680 NDR_PULL_ALLOC(ndr, *r->out.info);
14681 } else {
14682 *r->out.info = NULL;
14684 if (*r->out.info) {
14685 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14686 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
14687 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
14688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
14690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
14691 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14693 return NDR_ERR_SUCCESS;
14696 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
14698 ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
14699 ndr->depth++;
14700 if (flags & NDR_SET_VALUES) {
14701 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14703 if (flags & NDR_IN) {
14704 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
14705 ndr->depth++;
14706 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
14707 ndr->depth++;
14708 if (r->in.server_unc) {
14709 ndr_print_string(ndr, "server_unc", r->in.server_unc);
14711 ndr->depth--;
14712 ndr_print_ptr(ndr, "client_account", r->in.client_account);
14713 ndr->depth++;
14714 if (r->in.client_account) {
14715 ndr_print_string(ndr, "client_account", r->in.client_account);
14717 ndr->depth--;
14718 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
14719 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
14720 ndr->depth++;
14721 if (r->in.domain_name) {
14722 ndr_print_string(ndr, "domain_name", r->in.domain_name);
14724 ndr->depth--;
14725 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
14726 ndr->depth++;
14727 if (r->in.domain_guid) {
14728 ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
14730 ndr->depth--;
14731 ndr_print_ptr(ndr, "site_name", r->in.site_name);
14732 ndr->depth++;
14733 if (r->in.site_name) {
14734 ndr_print_string(ndr, "site_name", r->in.site_name);
14736 ndr->depth--;
14737 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
14738 ndr->depth--;
14740 if (flags & NDR_OUT) {
14741 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
14742 ndr->depth++;
14743 ndr_print_ptr(ndr, "info", r->out.info);
14744 ndr->depth++;
14745 ndr_print_ptr(ndr, "info", *r->out.info);
14746 ndr->depth++;
14747 if (*r->out.info) {
14748 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
14750 ndr->depth--;
14751 ndr->depth--;
14752 ndr_print_WERROR(ndr, "result", r->out.result);
14753 ndr->depth--;
14755 ndr->depth--;
14758 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
14760 if (flags & NDR_IN) {
14762 if (flags & NDR_OUT) {
14763 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14765 return NDR_ERR_SUCCESS;
14768 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
14770 if (flags & NDR_IN) {
14772 if (flags & NDR_OUT) {
14773 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14775 return NDR_ERR_SUCCESS;
14778 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
14780 ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14781 ndr->depth++;
14782 if (flags & NDR_SET_VALUES) {
14783 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14785 if (flags & NDR_IN) {
14786 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14787 ndr->depth++;
14788 ndr->depth--;
14790 if (flags & NDR_OUT) {
14791 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14792 ndr->depth++;
14793 ndr_print_WERROR(ndr, "result", r->out.result);
14794 ndr->depth--;
14796 ndr->depth--;
14799 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
14801 if (flags & NDR_IN) {
14802 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14803 if (r->in.server_name) {
14804 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14805 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14806 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14807 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));
14810 if (flags & NDR_OUT) {
14811 if (r->out.dom_trust_list == NULL) {
14812 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14814 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
14815 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14817 return NDR_ERR_SUCCESS;
14820 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
14822 uint32_t _ptr_server_name;
14823 TALLOC_CTX *_mem_save_server_name_0;
14824 TALLOC_CTX *_mem_save_dom_trust_list_0;
14825 if (flags & NDR_IN) {
14826 ZERO_STRUCT(r->out);
14828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14829 if (_ptr_server_name) {
14830 NDR_PULL_ALLOC(ndr, r->in.server_name);
14831 } else {
14832 r->in.server_name = NULL;
14834 if (r->in.server_name) {
14835 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14836 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14837 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14838 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14839 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14840 return 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));
14842 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14843 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));
14844 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14846 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
14847 ZERO_STRUCTP(r->out.dom_trust_list);
14849 if (flags & NDR_OUT) {
14850 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14851 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
14853 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
14854 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
14855 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
14856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
14857 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14859 return NDR_ERR_SUCCESS;
14862 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
14864 ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
14865 ndr->depth++;
14866 if (flags & NDR_SET_VALUES) {
14867 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14869 if (flags & NDR_IN) {
14870 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
14871 ndr->depth++;
14872 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14873 ndr->depth++;
14874 if (r->in.server_name) {
14875 ndr_print_string(ndr, "server_name", r->in.server_name);
14877 ndr->depth--;
14878 ndr->depth--;
14880 if (flags & NDR_OUT) {
14881 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
14882 ndr->depth++;
14883 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
14884 ndr->depth++;
14885 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
14886 ndr->depth--;
14887 ndr_print_WERROR(ndr, "result", r->out.result);
14888 ndr->depth--;
14890 ndr->depth--;
14893 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
14895 uint32_t cntr_addresses_1;
14896 if (flags & NDR_IN) {
14897 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14898 if (r->in.server_name) {
14899 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14900 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14901 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14902 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));
14904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14905 if (r->in.addresses == NULL) {
14906 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14908 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.count));
14909 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14910 NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14912 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14913 NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14916 if (flags & NDR_OUT) {
14917 if (r->out.ctr == NULL) {
14918 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14920 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
14921 if (*r->out.ctr) {
14922 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14924 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14926 return NDR_ERR_SUCCESS;
14929 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
14931 uint32_t _ptr_server_name;
14932 uint32_t cntr_addresses_1;
14933 uint32_t _ptr_ctr;
14934 TALLOC_CTX *_mem_save_server_name_0;
14935 TALLOC_CTX *_mem_save_addresses_1;
14936 TALLOC_CTX *_mem_save_ctr_0;
14937 TALLOC_CTX *_mem_save_ctr_1;
14938 if (flags & NDR_IN) {
14939 ZERO_STRUCT(r->out);
14941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14942 if (_ptr_server_name) {
14943 NDR_PULL_ALLOC(ndr, r->in.server_name);
14944 } else {
14945 r->in.server_name = NULL;
14947 if (r->in.server_name) {
14948 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14949 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14950 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14951 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14952 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14953 return 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));
14955 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14956 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));
14957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14959 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14960 if (r->in.count > 32000) {
14961 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
14963 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
14964 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14965 NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
14967 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
14968 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
14969 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14970 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14972 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14973 NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
14976 NDR_PULL_ALLOC(ndr, r->out.ctr);
14977 ZERO_STRUCTP(r->out.ctr);
14978 if (r->in.addresses) {
14979 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
14982 if (flags & NDR_OUT) {
14983 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14984 NDR_PULL_ALLOC(ndr, r->out.ctr);
14986 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14987 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14988 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14989 if (_ptr_ctr) {
14990 NDR_PULL_ALLOC(ndr, *r->out.ctr);
14991 } else {
14992 *r->out.ctr = NULL;
14994 if (*r->out.ctr) {
14995 _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
14996 NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
14997 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
15000 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15001 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15003 return NDR_ERR_SUCCESS;
15006 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
15008 uint32_t cntr_addresses_1;
15009 ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
15010 ndr->depth++;
15011 if (flags & NDR_SET_VALUES) {
15012 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15014 if (flags & NDR_IN) {
15015 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
15016 ndr->depth++;
15017 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15018 ndr->depth++;
15019 if (r->in.server_name) {
15020 ndr_print_string(ndr, "server_name", r->in.server_name);
15022 ndr->depth--;
15023 ndr_print_uint32(ndr, "count", r->in.count);
15024 ndr_print_ptr(ndr, "addresses", r->in.addresses);
15025 ndr->depth++;
15026 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
15027 ndr->depth++;
15028 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
15029 char *idx_1=NULL;
15030 if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
15031 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
15032 free(idx_1);
15035 ndr->depth--;
15036 ndr->depth--;
15037 ndr->depth--;
15039 if (flags & NDR_OUT) {
15040 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
15041 ndr->depth++;
15042 ndr_print_ptr(ndr, "ctr", r->out.ctr);
15043 ndr->depth++;
15044 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
15045 ndr->depth++;
15046 if (*r->out.ctr) {
15047 ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
15049 ndr->depth--;
15050 ndr->depth--;
15051 ndr_print_WERROR(ndr, "result", r->out.result);
15052 ndr->depth--;
15054 ndr->depth--;
15057 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
15059 if (flags & NDR_IN) {
15060 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15061 if (r->in.server_name) {
15062 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15063 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15064 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15065 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));
15068 if (flags & NDR_OUT) {
15069 if (r->out.ctr == NULL) {
15070 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15072 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
15073 if (*r->out.ctr) {
15074 NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
15076 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15078 return NDR_ERR_SUCCESS;
15081 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
15083 uint32_t _ptr_server_name;
15084 uint32_t _ptr_ctr;
15085 TALLOC_CTX *_mem_save_server_name_0;
15086 TALLOC_CTX *_mem_save_ctr_0;
15087 TALLOC_CTX *_mem_save_ctr_1;
15088 if (flags & NDR_IN) {
15089 ZERO_STRUCT(r->out);
15091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15092 if (_ptr_server_name) {
15093 NDR_PULL_ALLOC(ndr, r->in.server_name);
15094 } else {
15095 r->in.server_name = NULL;
15097 if (r->in.server_name) {
15098 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15099 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15100 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15101 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15102 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15103 return 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));
15105 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15106 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));
15107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15109 NDR_PULL_ALLOC(ndr, r->out.ctr);
15110 ZERO_STRUCTP(r->out.ctr);
15112 if (flags & NDR_OUT) {
15113 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15114 NDR_PULL_ALLOC(ndr, r->out.ctr);
15116 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15117 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
15118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
15119 if (_ptr_ctr) {
15120 NDR_PULL_ALLOC(ndr, *r->out.ctr);
15121 } else {
15122 *r->out.ctr = NULL;
15124 if (*r->out.ctr) {
15125 _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
15126 NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
15127 NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
15128 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
15130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15131 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15133 return NDR_ERR_SUCCESS;
15136 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
15138 ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
15139 ndr->depth++;
15140 if (flags & NDR_SET_VALUES) {
15141 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15143 if (flags & NDR_IN) {
15144 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
15145 ndr->depth++;
15146 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15147 ndr->depth++;
15148 if (r->in.server_name) {
15149 ndr_print_string(ndr, "server_name", r->in.server_name);
15151 ndr->depth--;
15152 ndr->depth--;
15154 if (flags & NDR_OUT) {
15155 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
15156 ndr->depth++;
15157 ndr_print_ptr(ndr, "ctr", r->out.ctr);
15158 ndr->depth++;
15159 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
15160 ndr->depth++;
15161 if (*r->out.ctr) {
15162 ndr_print_DcSitesCtr(ndr, "ctr", *r->out.ctr);
15164 ndr->depth--;
15165 ndr->depth--;
15166 ndr_print_WERROR(ndr, "result", r->out.result);
15167 ndr->depth--;
15169 ndr->depth--;
15172 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
15174 if (flags & NDR_IN) {
15175 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15176 if (r->in.server_name) {
15177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15178 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15179 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15180 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));
15182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
15183 if (r->in.computer_name) {
15184 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15185 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15186 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15187 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));
15189 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
15190 if (r->in.logon == NULL) {
15191 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15193 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
15194 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
15195 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
15196 if (r->in.flags == NULL) {
15197 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
15201 if (flags & NDR_OUT) {
15202 if (r->out.validation == NULL) {
15203 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15205 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
15206 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
15207 if (r->out.authoritative == NULL) {
15208 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15210 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
15211 if (r->out.flags == NULL) {
15212 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
15215 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
15217 return NDR_ERR_SUCCESS;
15220 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
15222 uint32_t _ptr_server_name;
15223 uint32_t _ptr_computer_name;
15224 TALLOC_CTX *_mem_save_server_name_0;
15225 TALLOC_CTX *_mem_save_computer_name_0;
15226 TALLOC_CTX *_mem_save_logon_0;
15227 TALLOC_CTX *_mem_save_validation_0;
15228 TALLOC_CTX *_mem_save_authoritative_0;
15229 TALLOC_CTX *_mem_save_flags_0;
15230 if (flags & NDR_IN) {
15231 ZERO_STRUCT(r->out);
15233 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15234 if (_ptr_server_name) {
15235 NDR_PULL_ALLOC(ndr, r->in.server_name);
15236 } else {
15237 r->in.server_name = NULL;
15239 if (r->in.server_name) {
15240 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15241 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15242 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15243 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15244 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15245 return 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));
15247 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15248 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));
15249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15251 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
15252 if (_ptr_computer_name) {
15253 NDR_PULL_ALLOC(ndr, r->in.computer_name);
15254 } else {
15255 r->in.computer_name = NULL;
15257 if (r->in.computer_name) {
15258 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15259 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
15260 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
15261 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
15262 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
15263 return 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));
15265 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
15266 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));
15267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
15269 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
15270 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15271 NDR_PULL_ALLOC(ndr, r->in.logon);
15273 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
15274 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
15275 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
15276 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
15277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
15278 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
15279 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15280 NDR_PULL_ALLOC(ndr, r->in.flags);
15282 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
15283 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
15284 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
15285 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
15286 NDR_PULL_ALLOC(ndr, r->out.validation);
15287 ZERO_STRUCTP(r->out.validation);
15288 NDR_PULL_ALLOC(ndr, r->out.authoritative);
15289 ZERO_STRUCTP(r->out.authoritative);
15290 NDR_PULL_ALLOC(ndr, r->out.flags);
15291 *r->out.flags = *r->in.flags;
15293 if (flags & NDR_OUT) {
15294 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15295 NDR_PULL_ALLOC(ndr, r->out.validation);
15297 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
15298 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
15299 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
15300 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
15301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
15302 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15303 NDR_PULL_ALLOC(ndr, r->out.authoritative);
15305 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
15306 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
15307 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
15308 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
15309 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15310 NDR_PULL_ALLOC(ndr, r->out.flags);
15312 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
15313 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
15314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
15315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
15316 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
15318 return NDR_ERR_SUCCESS;
15321 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
15323 ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
15324 ndr->depth++;
15325 if (flags & NDR_SET_VALUES) {
15326 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15328 if (flags & NDR_IN) {
15329 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
15330 ndr->depth++;
15331 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15332 ndr->depth++;
15333 if (r->in.server_name) {
15334 ndr_print_string(ndr, "server_name", r->in.server_name);
15336 ndr->depth--;
15337 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
15338 ndr->depth++;
15339 if (r->in.computer_name) {
15340 ndr_print_string(ndr, "computer_name", r->in.computer_name);
15342 ndr->depth--;
15343 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
15344 ndr_print_ptr(ndr, "logon", r->in.logon);
15345 ndr->depth++;
15346 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
15347 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
15348 ndr->depth--;
15349 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
15350 ndr_print_ptr(ndr, "flags", r->in.flags);
15351 ndr->depth++;
15352 ndr_print_uint32(ndr, "flags", *r->in.flags);
15353 ndr->depth--;
15354 ndr->depth--;
15356 if (flags & NDR_OUT) {
15357 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
15358 ndr->depth++;
15359 ndr_print_ptr(ndr, "validation", r->out.validation);
15360 ndr->depth++;
15361 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
15362 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
15363 ndr->depth--;
15364 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
15365 ndr->depth++;
15366 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
15367 ndr->depth--;
15368 ndr_print_ptr(ndr, "flags", r->out.flags);
15369 ndr->depth++;
15370 ndr_print_uint32(ndr, "flags", *r->out.flags);
15371 ndr->depth--;
15372 ndr_print_NTSTATUS(ndr, "result", r->out.result);
15373 ndr->depth--;
15375 ndr->depth--;
15378 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
15380 if (flags & NDR_IN) {
15381 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15382 if (r->in.server_name) {
15383 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15384 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15385 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15386 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));
15388 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
15390 if (flags & NDR_OUT) {
15391 if (r->out.trusts == NULL) {
15392 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15394 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
15395 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15397 return NDR_ERR_SUCCESS;
15400 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
15402 uint32_t _ptr_server_name;
15403 TALLOC_CTX *_mem_save_server_name_0;
15404 TALLOC_CTX *_mem_save_trusts_0;
15405 if (flags & NDR_IN) {
15406 ZERO_STRUCT(r->out);
15408 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15409 if (_ptr_server_name) {
15410 NDR_PULL_ALLOC(ndr, r->in.server_name);
15411 } else {
15412 r->in.server_name = NULL;
15414 if (r->in.server_name) {
15415 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15416 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15417 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15418 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15419 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15420 return 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));
15422 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15423 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));
15424 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15426 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
15427 NDR_PULL_ALLOC(ndr, r->out.trusts);
15428 ZERO_STRUCTP(r->out.trusts);
15430 if (flags & NDR_OUT) {
15431 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15432 NDR_PULL_ALLOC(ndr, r->out.trusts);
15434 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
15435 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
15436 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
15437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
15438 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15440 return NDR_ERR_SUCCESS;
15443 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
15445 ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
15446 ndr->depth++;
15447 if (flags & NDR_SET_VALUES) {
15448 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15450 if (flags & NDR_IN) {
15451 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
15452 ndr->depth++;
15453 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15454 ndr->depth++;
15455 if (r->in.server_name) {
15456 ndr_print_string(ndr, "server_name", r->in.server_name);
15458 ndr->depth--;
15459 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
15460 ndr->depth--;
15462 if (flags & NDR_OUT) {
15463 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
15464 ndr->depth++;
15465 ndr_print_ptr(ndr, "trusts", r->out.trusts);
15466 ndr->depth++;
15467 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
15468 ndr->depth--;
15469 ndr_print_WERROR(ndr, "result", r->out.result);
15470 ndr->depth--;
15472 ndr->depth--;
15475 static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
15477 if (flags & NDR_IN) {
15478 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15479 if (r->in.server_name) {
15480 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15481 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15482 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15483 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));
15485 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
15486 if (r->in.domain) {
15487 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
15488 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15489 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
15490 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15492 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
15493 if (r->in.domain_guid) {
15494 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
15496 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
15497 if (r->in.dsa_guid) {
15498 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
15500 if (r->in.dns_host == NULL) {
15501 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15503 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
15504 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15505 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
15506 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.dns_host, ndr_charset_length(r->in.dns_host, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15508 if (flags & NDR_OUT) {
15509 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15511 return NDR_ERR_SUCCESS;
15514 static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
15516 uint32_t _ptr_server_name;
15517 uint32_t _ptr_domain;
15518 uint32_t _ptr_domain_guid;
15519 uint32_t _ptr_dsa_guid;
15520 TALLOC_CTX *_mem_save_server_name_0;
15521 TALLOC_CTX *_mem_save_domain_0;
15522 TALLOC_CTX *_mem_save_domain_guid_0;
15523 TALLOC_CTX *_mem_save_dsa_guid_0;
15524 if (flags & NDR_IN) {
15525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15526 if (_ptr_server_name) {
15527 NDR_PULL_ALLOC(ndr, r->in.server_name);
15528 } else {
15529 r->in.server_name = NULL;
15531 if (r->in.server_name) {
15532 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15533 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15534 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15535 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15536 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15537 return 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));
15539 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15540 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));
15541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15543 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
15544 if (_ptr_domain) {
15545 NDR_PULL_ALLOC(ndr, r->in.domain);
15546 } else {
15547 r->in.domain = NULL;
15549 if (r->in.domain) {
15550 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
15551 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
15552 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
15553 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
15554 if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
15555 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain), ndr_get_array_length(ndr, &r->in.domain));
15557 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
15558 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
15559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
15561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
15562 if (_ptr_domain_guid) {
15563 NDR_PULL_ALLOC(ndr, r->in.domain_guid);
15564 } else {
15565 r->in.domain_guid = NULL;
15567 if (r->in.domain_guid) {
15568 _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
15569 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
15570 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
15571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
15573 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
15574 if (_ptr_dsa_guid) {
15575 NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
15576 } else {
15577 r->in.dsa_guid = NULL;
15579 if (r->in.dsa_guid) {
15580 _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
15581 NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
15582 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
15583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
15585 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
15586 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
15587 if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
15588 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dns_host), ndr_get_array_length(ndr, &r->in.dns_host));
15590 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
15591 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dns_host, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t), CH_UTF16));
15593 if (flags & NDR_OUT) {
15594 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15596 return NDR_ERR_SUCCESS;
15599 _PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
15601 ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
15602 ndr->depth++;
15603 if (flags & NDR_SET_VALUES) {
15604 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15606 if (flags & NDR_IN) {
15607 ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
15608 ndr->depth++;
15609 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15610 ndr->depth++;
15611 if (r->in.server_name) {
15612 ndr_print_string(ndr, "server_name", r->in.server_name);
15614 ndr->depth--;
15615 ndr_print_ptr(ndr, "domain", r->in.domain);
15616 ndr->depth++;
15617 if (r->in.domain) {
15618 ndr_print_string(ndr, "domain", r->in.domain);
15620 ndr->depth--;
15621 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
15622 ndr->depth++;
15623 if (r->in.domain_guid) {
15624 ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
15626 ndr->depth--;
15627 ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
15628 ndr->depth++;
15629 if (r->in.dsa_guid) {
15630 ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
15632 ndr->depth--;
15633 ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
15634 ndr->depth++;
15635 ndr_print_string(ndr, "dns_host", r->in.dns_host);
15636 ndr->depth--;
15637 ndr->depth--;
15639 if (flags & NDR_OUT) {
15640 ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
15641 ndr->depth++;
15642 ndr_print_WERROR(ndr, "result", r->out.result);
15643 ndr->depth--;
15645 ndr->depth--;
15648 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
15650 if (flags & NDR_IN) {
15651 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15652 if (r->in.server_name) {
15653 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15654 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15655 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15656 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));
15658 if (r->in.account_name == NULL) {
15659 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15661 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
15662 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15663 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
15664 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));
15665 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
15666 if (r->in.computer_name == NULL) {
15667 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15669 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15670 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15671 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15672 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));
15673 if (r->in.credential == NULL) {
15674 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15676 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15678 if (flags & NDR_OUT) {
15679 if (r->out.return_authenticator == NULL) {
15680 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15682 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15683 if (r->out.password == NULL) {
15684 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15686 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
15687 if (r->out.password2 == NULL) {
15688 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15690 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password2));
15691 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
15693 return NDR_ERR_SUCCESS;
15696 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
15698 uint32_t _ptr_server_name;
15699 TALLOC_CTX *_mem_save_server_name_0;
15700 TALLOC_CTX *_mem_save_credential_0;
15701 TALLOC_CTX *_mem_save_return_authenticator_0;
15702 TALLOC_CTX *_mem_save_password_0;
15703 TALLOC_CTX *_mem_save_password2_0;
15704 if (flags & NDR_IN) {
15705 ZERO_STRUCT(r->out);
15707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15708 if (_ptr_server_name) {
15709 NDR_PULL_ALLOC(ndr, r->in.server_name);
15710 } else {
15711 r->in.server_name = NULL;
15713 if (r->in.server_name) {
15714 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15715 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15716 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15717 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15718 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15719 return 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));
15721 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15722 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));
15723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15725 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
15726 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
15727 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
15728 return 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));
15730 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
15731 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));
15732 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
15733 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
15734 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
15735 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
15736 return 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));
15738 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
15739 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));
15740 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15741 NDR_PULL_ALLOC(ndr, r->in.credential);
15743 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15744 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
15745 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
15747 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15748 ZERO_STRUCTP(r->out.return_authenticator);
15749 NDR_PULL_ALLOC(ndr, r->out.password);
15750 ZERO_STRUCTP(r->out.password);
15751 NDR_PULL_ALLOC(ndr, r->out.password2);
15752 ZERO_STRUCTP(r->out.password2);
15754 if (flags & NDR_OUT) {
15755 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15756 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15758 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15759 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
15760 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
15762 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15763 NDR_PULL_ALLOC(ndr, r->out.password);
15765 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
15766 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
15767 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
15768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
15769 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15770 NDR_PULL_ALLOC(ndr, r->out.password2);
15772 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
15773 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
15774 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password2));
15775 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
15776 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
15778 return NDR_ERR_SUCCESS;
15781 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
15783 ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
15784 ndr->depth++;
15785 if (flags & NDR_SET_VALUES) {
15786 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15788 if (flags & NDR_IN) {
15789 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
15790 ndr->depth++;
15791 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15792 ndr->depth++;
15793 if (r->in.server_name) {
15794 ndr_print_string(ndr, "server_name", r->in.server_name);
15796 ndr->depth--;
15797 ndr_print_ptr(ndr, "account_name", r->in.account_name);
15798 ndr->depth++;
15799 ndr_print_string(ndr, "account_name", r->in.account_name);
15800 ndr->depth--;
15801 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
15802 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
15803 ndr->depth++;
15804 ndr_print_string(ndr, "computer_name", r->in.computer_name);
15805 ndr->depth--;
15806 ndr_print_ptr(ndr, "credential", r->in.credential);
15807 ndr->depth++;
15808 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15809 ndr->depth--;
15810 ndr->depth--;
15812 if (flags & NDR_OUT) {
15813 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
15814 ndr->depth++;
15815 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15816 ndr->depth++;
15817 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15818 ndr->depth--;
15819 ndr_print_ptr(ndr, "password", r->out.password);
15820 ndr->depth++;
15821 ndr_print_samr_Password(ndr, "password", r->out.password);
15822 ndr->depth--;
15823 ndr_print_ptr(ndr, "password2", r->out.password2);
15824 ndr->depth++;
15825 ndr_print_samr_Password(ndr, "password2", r->out.password2);
15826 ndr->depth--;
15827 ndr_print_NTSTATUS(ndr, "result", r->out.result);
15828 ndr->depth--;
15830 ndr->depth--;
15833 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
15835 if (flags & NDR_IN) {
15836 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15837 if (r->in.server_name) {
15838 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15839 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15840 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15841 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));
15843 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
15844 if (r->in.trusted_domain_name) {
15845 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15846 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15847 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15848 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.trusted_domain_name, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
15852 if (flags & NDR_OUT) {
15853 if (r->out.forest_trust_info == NULL) {
15854 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15856 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
15857 if (*r->out.forest_trust_info) {
15858 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15860 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15862 return NDR_ERR_SUCCESS;
15865 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
15867 uint32_t _ptr_server_name;
15868 uint32_t _ptr_trusted_domain_name;
15869 uint32_t _ptr_forest_trust_info;
15870 TALLOC_CTX *_mem_save_server_name_0;
15871 TALLOC_CTX *_mem_save_trusted_domain_name_0;
15872 TALLOC_CTX *_mem_save_forest_trust_info_0;
15873 TALLOC_CTX *_mem_save_forest_trust_info_1;
15874 if (flags & NDR_IN) {
15875 ZERO_STRUCT(r->out);
15877 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15878 if (_ptr_server_name) {
15879 NDR_PULL_ALLOC(ndr, r->in.server_name);
15880 } else {
15881 r->in.server_name = NULL;
15883 if (r->in.server_name) {
15884 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15885 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15886 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15887 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15888 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15889 return 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));
15891 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15892 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));
15893 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
15896 if (_ptr_trusted_domain_name) {
15897 NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
15898 } else {
15899 r->in.trusted_domain_name = NULL;
15901 if (r->in.trusted_domain_name) {
15902 _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15903 NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
15904 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
15905 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
15906 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
15907 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.trusted_domain_name), ndr_get_array_length(ndr, &r->in.trusted_domain_name));
15909 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
15910 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.trusted_domain_name, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t), CH_UTF16));
15911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
15913 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
15914 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15915 ZERO_STRUCTP(r->out.forest_trust_info);
15917 if (flags & NDR_OUT) {
15918 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15919 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15921 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15922 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
15923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
15924 if (_ptr_forest_trust_info) {
15925 NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
15926 } else {
15927 *r->out.forest_trust_info = NULL;
15929 if (*r->out.forest_trust_info) {
15930 _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
15931 NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
15932 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
15935 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
15936 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15938 return NDR_ERR_SUCCESS;
15941 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
15943 ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
15944 ndr->depth++;
15945 if (flags & NDR_SET_VALUES) {
15946 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15948 if (flags & NDR_IN) {
15949 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
15950 ndr->depth++;
15951 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15952 ndr->depth++;
15953 if (r->in.server_name) {
15954 ndr_print_string(ndr, "server_name", r->in.server_name);
15956 ndr->depth--;
15957 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15958 ndr->depth++;
15959 if (r->in.trusted_domain_name) {
15960 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15962 ndr->depth--;
15963 ndr_print_uint32(ndr, "flags", r->in.flags);
15964 ndr->depth--;
15966 if (flags & NDR_OUT) {
15967 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
15968 ndr->depth++;
15969 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
15970 ndr->depth++;
15971 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
15972 ndr->depth++;
15973 if (*r->out.forest_trust_info) {
15974 ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
15976 ndr->depth--;
15977 ndr->depth--;
15978 ndr_print_WERROR(ndr, "result", r->out.result);
15979 ndr->depth--;
15981 ndr->depth--;
15984 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
15986 if (flags & NDR_IN) {
15987 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15988 if (r->in.server_name) {
15989 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15990 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15991 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15992 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));
15994 if (r->in.trusted_domain_name == NULL) {
15995 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15997 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15998 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15999 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
16000 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.trusted_domain_name, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16001 if (r->in.credential == NULL) {
16002 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16004 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
16005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
16007 if (flags & NDR_OUT) {
16008 if (r->out.return_authenticator == NULL) {
16009 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16011 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
16012 if (r->out.forest_trust_info == NULL) {
16013 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16015 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
16016 if (*r->out.forest_trust_info) {
16017 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
16019 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16021 return NDR_ERR_SUCCESS;
16024 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
16026 uint32_t _ptr_server_name;
16027 uint32_t _ptr_forest_trust_info;
16028 TALLOC_CTX *_mem_save_server_name_0;
16029 TALLOC_CTX *_mem_save_credential_0;
16030 TALLOC_CTX *_mem_save_return_authenticator_0;
16031 TALLOC_CTX *_mem_save_forest_trust_info_0;
16032 TALLOC_CTX *_mem_save_forest_trust_info_1;
16033 if (flags & NDR_IN) {
16034 ZERO_STRUCT(r->out);
16036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
16037 if (_ptr_server_name) {
16038 NDR_PULL_ALLOC(ndr, r->in.server_name);
16039 } else {
16040 r->in.server_name = NULL;
16042 if (r->in.server_name) {
16043 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16044 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
16045 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
16046 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
16047 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
16048 return 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));
16050 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
16051 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));
16052 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
16054 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
16055 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
16056 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
16057 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.trusted_domain_name), ndr_get_array_length(ndr, &r->in.trusted_domain_name));
16059 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
16060 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.trusted_domain_name, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t), CH_UTF16));
16061 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16062 NDR_PULL_ALLOC(ndr, r->in.credential);
16064 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
16065 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
16066 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
16067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
16068 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
16069 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
16070 ZERO_STRUCTP(r->out.return_authenticator);
16071 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
16072 ZERO_STRUCTP(r->out.forest_trust_info);
16074 if (flags & NDR_OUT) {
16075 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16076 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
16078 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
16079 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
16080 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
16081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
16082 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16083 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
16085 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16086 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
16087 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
16088 if (_ptr_forest_trust_info) {
16089 NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
16090 } else {
16091 *r->out.forest_trust_info = NULL;
16093 if (*r->out.forest_trust_info) {
16094 _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
16095 NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
16096 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
16097 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
16099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
16100 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16102 return NDR_ERR_SUCCESS;
16105 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
16107 ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
16108 ndr->depth++;
16109 if (flags & NDR_SET_VALUES) {
16110 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16112 if (flags & NDR_IN) {
16113 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
16114 ndr->depth++;
16115 ndr_print_ptr(ndr, "server_name", r->in.server_name);
16116 ndr->depth++;
16117 if (r->in.server_name) {
16118 ndr_print_string(ndr, "server_name", r->in.server_name);
16120 ndr->depth--;
16121 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
16122 ndr->depth++;
16123 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
16124 ndr->depth--;
16125 ndr_print_ptr(ndr, "credential", r->in.credential);
16126 ndr->depth++;
16127 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
16128 ndr->depth--;
16129 ndr_print_uint32(ndr, "flags", r->in.flags);
16130 ndr->depth--;
16132 if (flags & NDR_OUT) {
16133 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
16134 ndr->depth++;
16135 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
16136 ndr->depth++;
16137 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
16138 ndr->depth--;
16139 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
16140 ndr->depth++;
16141 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
16142 ndr->depth++;
16143 if (*r->out.forest_trust_info) {
16144 ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
16146 ndr->depth--;
16147 ndr->depth--;
16148 ndr_print_WERROR(ndr, "result", r->out.result);
16149 ndr->depth--;
16151 ndr->depth--;
16154 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
16156 if (flags & NDR_IN) {
16157 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
16158 if (r->in.server_name) {
16159 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
16160 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16161 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
16162 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));
16164 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
16165 if (r->in.computer_name) {
16166 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
16167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
16169 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));
16171 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
16172 if (r->in.credential) {
16173 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
16175 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
16176 if (r->in.return_authenticator) {
16177 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
16179 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
16180 if (r->in.logon == NULL) {
16181 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16183 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
16184 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
16185 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
16186 if (r->in.flags == NULL) {
16187 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16189 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
16191 if (flags & NDR_OUT) {
16192 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
16193 if (r->out.return_authenticator) {
16194 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
16196 if (r->out.validation == NULL) {
16197 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16199 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
16200 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
16201 if (r->out.authoritative == NULL) {
16202 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16204 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
16205 if (r->out.flags == NULL) {
16206 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
16209 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
16211 return NDR_ERR_SUCCESS;
16214 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
16216 uint32_t _ptr_server_name;
16217 uint32_t _ptr_computer_name;
16218 uint32_t _ptr_credential;
16219 uint32_t _ptr_return_authenticator;
16220 TALLOC_CTX *_mem_save_server_name_0;
16221 TALLOC_CTX *_mem_save_computer_name_0;
16222 TALLOC_CTX *_mem_save_credential_0;
16223 TALLOC_CTX *_mem_save_return_authenticator_0;
16224 TALLOC_CTX *_mem_save_logon_0;
16225 TALLOC_CTX *_mem_save_validation_0;
16226 TALLOC_CTX *_mem_save_authoritative_0;
16227 TALLOC_CTX *_mem_save_flags_0;
16228 if (flags & NDR_IN) {
16229 ZERO_STRUCT(r->out);
16231 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
16232 if (_ptr_server_name) {
16233 NDR_PULL_ALLOC(ndr, r->in.server_name);
16234 } else {
16235 r->in.server_name = NULL;
16237 if (r->in.server_name) {
16238 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16239 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
16240 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
16241 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
16242 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
16243 return 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));
16245 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
16246 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));
16247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
16249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
16250 if (_ptr_computer_name) {
16251 NDR_PULL_ALLOC(ndr, r->in.computer_name);
16252 } else {
16253 r->in.computer_name = NULL;
16255 if (r->in.computer_name) {
16256 _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16257 NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
16258 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
16259 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
16260 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
16261 return 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));
16263 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
16264 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));
16265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
16267 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
16268 if (_ptr_credential) {
16269 NDR_PULL_ALLOC(ndr, r->in.credential);
16270 } else {
16271 r->in.credential = NULL;
16273 if (r->in.credential) {
16274 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
16275 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
16276 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
16277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
16279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
16280 if (_ptr_return_authenticator) {
16281 NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
16282 } else {
16283 r->in.return_authenticator = NULL;
16285 if (r->in.return_authenticator) {
16286 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
16287 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
16288 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
16289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
16291 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
16292 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16293 NDR_PULL_ALLOC(ndr, r->in.logon);
16295 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
16296 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
16297 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
16298 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
16299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
16300 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
16301 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16302 NDR_PULL_ALLOC(ndr, r->in.flags);
16304 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
16305 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
16306 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
16307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
16308 NDR_PULL_ALLOC(ndr, r->out.validation);
16309 ZERO_STRUCTP(r->out.validation);
16310 NDR_PULL_ALLOC(ndr, r->out.authoritative);
16311 ZERO_STRUCTP(r->out.authoritative);
16312 NDR_PULL_ALLOC(ndr, r->out.flags);
16313 *r->out.flags = *r->in.flags;
16315 if (flags & NDR_OUT) {
16316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
16317 if (_ptr_return_authenticator) {
16318 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
16319 } else {
16320 r->out.return_authenticator = NULL;
16322 if (r->out.return_authenticator) {
16323 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
16324 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
16325 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
16326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
16328 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16329 NDR_PULL_ALLOC(ndr, r->out.validation);
16331 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
16332 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
16333 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
16334 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
16335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
16336 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16337 NDR_PULL_ALLOC(ndr, r->out.authoritative);
16339 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
16340 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
16341 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
16342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
16343 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16344 NDR_PULL_ALLOC(ndr, r->out.flags);
16346 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
16347 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
16348 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
16349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
16350 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
16352 return NDR_ERR_SUCCESS;
16355 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
16357 ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
16358 ndr->depth++;
16359 if (flags & NDR_SET_VALUES) {
16360 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16362 if (flags & NDR_IN) {
16363 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
16364 ndr->depth++;
16365 ndr_print_ptr(ndr, "server_name", r->in.server_name);
16366 ndr->depth++;
16367 if (r->in.server_name) {
16368 ndr_print_string(ndr, "server_name", r->in.server_name);
16370 ndr->depth--;
16371 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
16372 ndr->depth++;
16373 if (r->in.computer_name) {
16374 ndr_print_string(ndr, "computer_name", r->in.computer_name);
16376 ndr->depth--;
16377 ndr_print_ptr(ndr, "credential", r->in.credential);
16378 ndr->depth++;
16379 if (r->in.credential) {
16380 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
16382 ndr->depth--;
16383 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
16384 ndr->depth++;
16385 if (r->in.return_authenticator) {
16386 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
16388 ndr->depth--;
16389 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
16390 ndr_print_ptr(ndr, "logon", r->in.logon);
16391 ndr->depth++;
16392 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
16393 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
16394 ndr->depth--;
16395 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
16396 ndr_print_ptr(ndr, "flags", r->in.flags);
16397 ndr->depth++;
16398 ndr_print_uint32(ndr, "flags", *r->in.flags);
16399 ndr->depth--;
16400 ndr->depth--;
16402 if (flags & NDR_OUT) {
16403 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
16404 ndr->depth++;
16405 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
16406 ndr->depth++;
16407 if (r->out.return_authenticator) {
16408 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
16410 ndr->depth--;
16411 ndr_print_ptr(ndr, "validation", r->out.validation);
16412 ndr->depth++;
16413 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
16414 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
16415 ndr->depth--;
16416 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
16417 ndr->depth++;
16418 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
16419 ndr->depth--;
16420 ndr_print_ptr(ndr, "flags", r->out.flags);
16421 ndr->depth++;
16422 ndr_print_uint32(ndr, "flags", *r->out.flags);
16423 ndr->depth--;
16424 ndr_print_NTSTATUS(ndr, "result", r->out.result);
16425 ndr->depth--;
16427 ndr->depth--;
16430 static enum ndr_err_code ndr_push_netr_ServerGetTrustInfo(struct ndr_push *ndr, int flags, const struct netr_ServerGetTrustInfo *r)
16432 if (flags & NDR_IN) {
16433 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
16434 if (r->in.server_name) {
16435 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
16436 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16437 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
16438 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));
16440 if (r->in.account_name == NULL) {
16441 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16443 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
16444 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16445 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
16446 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));
16447 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
16448 if (r->in.computer_name == NULL) {
16449 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16451 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
16452 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16453 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
16454 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));
16455 if (r->in.credential == NULL) {
16456 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16458 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
16460 if (flags & NDR_OUT) {
16461 if (r->out.return_authenticator == NULL) {
16462 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16464 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
16465 if (r->out.new_owf_password == NULL) {
16466 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16468 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
16469 if (r->out.old_owf_password == NULL) {
16470 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16472 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
16473 if (r->out.trust_info == NULL) {
16474 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16476 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.trust_info));
16477 if (*r->out.trust_info) {
16478 NDR_CHECK(ndr_push_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
16480 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
16482 return NDR_ERR_SUCCESS;
16485 static enum ndr_err_code ndr_pull_netr_ServerGetTrustInfo(struct ndr_pull *ndr, int flags, struct netr_ServerGetTrustInfo *r)
16487 uint32_t _ptr_server_name;
16488 uint32_t _ptr_trust_info;
16489 TALLOC_CTX *_mem_save_server_name_0;
16490 TALLOC_CTX *_mem_save_credential_0;
16491 TALLOC_CTX *_mem_save_return_authenticator_0;
16492 TALLOC_CTX *_mem_save_new_owf_password_0;
16493 TALLOC_CTX *_mem_save_old_owf_password_0;
16494 TALLOC_CTX *_mem_save_trust_info_0;
16495 TALLOC_CTX *_mem_save_trust_info_1;
16496 if (flags & NDR_IN) {
16497 ZERO_STRUCT(r->out);
16499 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
16500 if (_ptr_server_name) {
16501 NDR_PULL_ALLOC(ndr, r->in.server_name);
16502 } else {
16503 r->in.server_name = NULL;
16505 if (r->in.server_name) {
16506 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16507 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
16508 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
16509 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
16510 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
16511 return 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));
16513 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
16514 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));
16515 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
16517 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
16518 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
16519 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
16520 return 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));
16522 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
16523 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));
16524 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
16525 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
16526 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
16527 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
16528 return 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));
16530 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
16531 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));
16532 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16533 NDR_PULL_ALLOC(ndr, r->in.credential);
16535 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
16536 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
16537 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
16538 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
16539 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
16540 ZERO_STRUCTP(r->out.return_authenticator);
16541 NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
16542 ZERO_STRUCTP(r->out.new_owf_password);
16543 NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
16544 ZERO_STRUCTP(r->out.old_owf_password);
16545 NDR_PULL_ALLOC(ndr, r->out.trust_info);
16546 ZERO_STRUCTP(r->out.trust_info);
16548 if (flags & NDR_OUT) {
16549 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16550 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
16552 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
16553 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
16554 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
16555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
16556 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16557 NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
16559 _mem_save_new_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
16560 NDR_PULL_SET_MEM_CTX(ndr, r->out.new_owf_password, LIBNDR_FLAG_REF_ALLOC);
16561 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
16562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
16563 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16564 NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
16566 _mem_save_old_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
16567 NDR_PULL_SET_MEM_CTX(ndr, r->out.old_owf_password, LIBNDR_FLAG_REF_ALLOC);
16568 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
16569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
16570 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16571 NDR_PULL_ALLOC(ndr, r->out.trust_info);
16573 _mem_save_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16574 NDR_PULL_SET_MEM_CTX(ndr, r->out.trust_info, LIBNDR_FLAG_REF_ALLOC);
16575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trust_info));
16576 if (_ptr_trust_info) {
16577 NDR_PULL_ALLOC(ndr, *r->out.trust_info);
16578 } else {
16579 *r->out.trust_info = NULL;
16581 if (*r->out.trust_info) {
16582 _mem_save_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
16583 NDR_PULL_SET_MEM_CTX(ndr, *r->out.trust_info, 0);
16584 NDR_CHECK(ndr_pull_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
16585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_1, 0);
16587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
16588 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
16590 return NDR_ERR_SUCCESS;
16593 _PUBLIC_ void ndr_print_netr_ServerGetTrustInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerGetTrustInfo *r)
16595 ndr_print_struct(ndr, name, "netr_ServerGetTrustInfo");
16596 ndr->depth++;
16597 if (flags & NDR_SET_VALUES) {
16598 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16600 if (flags & NDR_IN) {
16601 ndr_print_struct(ndr, "in", "netr_ServerGetTrustInfo");
16602 ndr->depth++;
16603 ndr_print_ptr(ndr, "server_name", r->in.server_name);
16604 ndr->depth++;
16605 if (r->in.server_name) {
16606 ndr_print_string(ndr, "server_name", r->in.server_name);
16608 ndr->depth--;
16609 ndr_print_ptr(ndr, "account_name", r->in.account_name);
16610 ndr->depth++;
16611 ndr_print_string(ndr, "account_name", r->in.account_name);
16612 ndr->depth--;
16613 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
16614 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
16615 ndr->depth++;
16616 ndr_print_string(ndr, "computer_name", r->in.computer_name);
16617 ndr->depth--;
16618 ndr_print_ptr(ndr, "credential", r->in.credential);
16619 ndr->depth++;
16620 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
16621 ndr->depth--;
16622 ndr->depth--;
16624 if (flags & NDR_OUT) {
16625 ndr_print_struct(ndr, "out", "netr_ServerGetTrustInfo");
16626 ndr->depth++;
16627 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
16628 ndr->depth++;
16629 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
16630 ndr->depth--;
16631 ndr_print_ptr(ndr, "new_owf_password", r->out.new_owf_password);
16632 ndr->depth++;
16633 ndr_print_samr_Password(ndr, "new_owf_password", r->out.new_owf_password);
16634 ndr->depth--;
16635 ndr_print_ptr(ndr, "old_owf_password", r->out.old_owf_password);
16636 ndr->depth++;
16637 ndr_print_samr_Password(ndr, "old_owf_password", r->out.old_owf_password);
16638 ndr->depth--;
16639 ndr_print_ptr(ndr, "trust_info", r->out.trust_info);
16640 ndr->depth++;
16641 ndr_print_ptr(ndr, "trust_info", *r->out.trust_info);
16642 ndr->depth++;
16643 if (*r->out.trust_info) {
16644 ndr_print_netr_TrustInfo(ndr, "trust_info", *r->out.trust_info);
16646 ndr->depth--;
16647 ndr->depth--;
16648 ndr_print_NTSTATUS(ndr, "result", r->out.result);
16649 ndr->depth--;
16651 ndr->depth--;
16654 static const struct ndr_interface_call netlogon_calls[] = {
16656 "netr_LogonUasLogon",
16657 sizeof(struct netr_LogonUasLogon),
16658 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
16659 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
16660 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
16661 false,
16664 "netr_LogonUasLogoff",
16665 sizeof(struct netr_LogonUasLogoff),
16666 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
16667 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
16668 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
16669 false,
16672 "netr_LogonSamLogon",
16673 sizeof(struct netr_LogonSamLogon),
16674 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
16675 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
16676 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
16677 false,
16680 "netr_LogonSamLogoff",
16681 sizeof(struct netr_LogonSamLogoff),
16682 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
16683 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
16684 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
16685 false,
16688 "netr_ServerReqChallenge",
16689 sizeof(struct netr_ServerReqChallenge),
16690 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
16691 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
16692 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
16693 false,
16696 "netr_ServerAuthenticate",
16697 sizeof(struct netr_ServerAuthenticate),
16698 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
16699 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
16700 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
16701 false,
16704 "netr_ServerPasswordSet",
16705 sizeof(struct netr_ServerPasswordSet),
16706 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
16707 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
16708 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
16709 false,
16712 "netr_DatabaseDeltas",
16713 sizeof(struct netr_DatabaseDeltas),
16714 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
16715 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
16716 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
16717 false,
16720 "netr_DatabaseSync",
16721 sizeof(struct netr_DatabaseSync),
16722 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
16723 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
16724 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
16725 false,
16728 "netr_AccountDeltas",
16729 sizeof(struct netr_AccountDeltas),
16730 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
16731 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
16732 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
16733 false,
16736 "netr_AccountSync",
16737 sizeof(struct netr_AccountSync),
16738 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
16739 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
16740 (ndr_print_function_t) ndr_print_netr_AccountSync,
16741 false,
16744 "netr_GetDcName",
16745 sizeof(struct netr_GetDcName),
16746 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
16747 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
16748 (ndr_print_function_t) ndr_print_netr_GetDcName,
16749 false,
16752 "netr_LogonControl",
16753 sizeof(struct netr_LogonControl),
16754 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
16755 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
16756 (ndr_print_function_t) ndr_print_netr_LogonControl,
16757 false,
16760 "netr_GetAnyDCName",
16761 sizeof(struct netr_GetAnyDCName),
16762 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
16763 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
16764 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
16765 false,
16768 "netr_LogonControl2",
16769 sizeof(struct netr_LogonControl2),
16770 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
16771 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
16772 (ndr_print_function_t) ndr_print_netr_LogonControl2,
16773 false,
16776 "netr_ServerAuthenticate2",
16777 sizeof(struct netr_ServerAuthenticate2),
16778 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
16779 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
16780 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
16781 false,
16784 "netr_DatabaseSync2",
16785 sizeof(struct netr_DatabaseSync2),
16786 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
16787 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
16788 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
16789 false,
16792 "netr_DatabaseRedo",
16793 sizeof(struct netr_DatabaseRedo),
16794 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
16795 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
16796 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
16797 false,
16800 "netr_LogonControl2Ex",
16801 sizeof(struct netr_LogonControl2Ex),
16802 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
16803 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
16804 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
16805 false,
16808 "netr_NetrEnumerateTrustedDomains",
16809 sizeof(struct netr_NetrEnumerateTrustedDomains),
16810 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
16811 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
16812 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
16813 false,
16816 "netr_DsRGetDCName",
16817 sizeof(struct netr_DsRGetDCName),
16818 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
16819 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
16820 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
16821 false,
16824 "netr_LogonGetCapabilities",
16825 sizeof(struct netr_LogonGetCapabilities),
16826 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetCapabilities,
16827 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetCapabilities,
16828 (ndr_print_function_t) ndr_print_netr_LogonGetCapabilities,
16829 false,
16832 "netr_NETRLOGONSETSERVICEBITS",
16833 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
16834 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
16835 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
16836 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
16837 false,
16840 "netr_LogonGetTrustRid",
16841 sizeof(struct netr_LogonGetTrustRid),
16842 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
16843 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
16844 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
16845 false,
16848 "netr_NETRLOGONCOMPUTESERVERDIGEST",
16849 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
16850 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
16851 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
16852 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
16853 false,
16856 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
16857 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
16858 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
16859 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
16860 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
16861 false,
16864 "netr_ServerAuthenticate3",
16865 sizeof(struct netr_ServerAuthenticate3),
16866 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
16867 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
16868 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
16869 false,
16872 "netr_DsRGetDCNameEx",
16873 sizeof(struct netr_DsRGetDCNameEx),
16874 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
16875 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
16876 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
16877 false,
16880 "netr_DsRGetSiteName",
16881 sizeof(struct netr_DsRGetSiteName),
16882 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
16883 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
16884 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
16885 false,
16888 "netr_LogonGetDomainInfo",
16889 sizeof(struct netr_LogonGetDomainInfo),
16890 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
16891 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
16892 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
16893 false,
16896 "netr_ServerPasswordSet2",
16897 sizeof(struct netr_ServerPasswordSet2),
16898 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
16899 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
16900 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
16901 false,
16904 "netr_ServerPasswordGet",
16905 sizeof(struct netr_ServerPasswordGet),
16906 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
16907 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
16908 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
16909 false,
16912 "netr_NETRLOGONSENDTOSAM",
16913 sizeof(struct netr_NETRLOGONSENDTOSAM),
16914 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
16915 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
16916 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
16917 false,
16920 "netr_DsRAddressToSitenamesW",
16921 sizeof(struct netr_DsRAddressToSitenamesW),
16922 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
16923 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
16924 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
16925 false,
16928 "netr_DsRGetDCNameEx2",
16929 sizeof(struct netr_DsRGetDCNameEx2),
16930 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
16931 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
16932 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
16933 false,
16936 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
16937 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
16938 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16939 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16940 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16941 false,
16944 "netr_NetrEnumerateTrustedDomainsEx",
16945 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
16946 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
16947 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
16948 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
16949 false,
16952 "netr_DsRAddressToSitenamesExW",
16953 sizeof(struct netr_DsRAddressToSitenamesExW),
16954 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
16955 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
16956 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
16957 false,
16960 "netr_DsrGetDcSiteCoverageW",
16961 sizeof(struct netr_DsrGetDcSiteCoverageW),
16962 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
16963 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
16964 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
16965 false,
16968 "netr_LogonSamLogonEx",
16969 sizeof(struct netr_LogonSamLogonEx),
16970 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
16971 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
16972 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
16973 false,
16976 "netr_DsrEnumerateDomainTrusts",
16977 sizeof(struct netr_DsrEnumerateDomainTrusts),
16978 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
16979 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
16980 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
16981 false,
16984 "netr_DsrDeregisterDNSHostRecords",
16985 sizeof(struct netr_DsrDeregisterDNSHostRecords),
16986 (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
16987 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
16988 (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
16989 false,
16992 "netr_ServerTrustPasswordsGet",
16993 sizeof(struct netr_ServerTrustPasswordsGet),
16994 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
16995 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
16996 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
16997 false,
17000 "netr_DsRGetForestTrustInformation",
17001 sizeof(struct netr_DsRGetForestTrustInformation),
17002 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
17003 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
17004 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
17005 false,
17008 "netr_GetForestTrustInformation",
17009 sizeof(struct netr_GetForestTrustInformation),
17010 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
17011 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
17012 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
17013 false,
17016 "netr_LogonSamLogonWithFlags",
17017 sizeof(struct netr_LogonSamLogonWithFlags),
17018 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
17019 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
17020 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
17021 false,
17024 "netr_ServerGetTrustInfo",
17025 sizeof(struct netr_ServerGetTrustInfo),
17026 (ndr_push_flags_fn_t) ndr_push_netr_ServerGetTrustInfo,
17027 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerGetTrustInfo,
17028 (ndr_print_function_t) ndr_print_netr_ServerGetTrustInfo,
17029 false,
17031 { NULL, 0, NULL, NULL, NULL, false }
17034 static const char * const netlogon_endpoint_strings[] = {
17035 "ncacn_np:[\\pipe\\netlogon]",
17036 "ncacn_ip_tcp:",
17037 "ncalrpc:",
17040 static const struct ndr_interface_string_array netlogon_endpoints = {
17041 .count = 3,
17042 .names = netlogon_endpoint_strings
17045 static const char * const netlogon_authservice_strings[] = {
17046 "host",
17049 static const struct ndr_interface_string_array netlogon_authservices = {
17050 .count = 1,
17051 .names = netlogon_authservice_strings
17055 const struct ndr_interface_table ndr_table_netlogon = {
17056 .name = "netlogon",
17057 .syntax_id = {
17058 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
17059 NDR_NETLOGON_VERSION
17061 .helpstring = NDR_NETLOGON_HELPSTRING,
17062 .num_calls = 47,
17063 .calls = netlogon_calls,
17064 .endpoints = &netlogon_endpoints,
17065 .authservices = &netlogon_authservices