1 /* parser auto-generated by pidl */
4 #include "librpc/gen_ndr/ndr_netlogon.h"
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 #include "librpc/gen_ndr/ndr_samr.h"
8 #include "librpc/gen_ndr/ndr_security.h"
9 NTSTATUS
ndr_push_netr_UasInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UasInfo
*r
)
11 if (ndr_flags
& NDR_SCALARS
) {
12 NDR_CHECK(ndr_push_align(ndr
, 4));
13 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account_name
));
14 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priv
));
15 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_flags
));
16 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_count
));
17 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bad_pw_count
));
18 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->last_logon
));
19 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->last_logoff
));
20 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->logoff_time
));
21 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->kickoff_time
));
22 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->password_age
));
23 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->pw_can_change
));
24 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->pw_must_change
));
25 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->computer
));
26 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
27 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->script_path
));
28 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
));
30 if (ndr_flags
& NDR_BUFFERS
) {
31 if (r
->account_name
) {
32 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
33 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
34 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
35 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, ndr_charset_length(r
->account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
38 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer
, CH_UTF16
)));
39 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
40 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer
, CH_UTF16
)));
41 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->computer
, ndr_charset_length(r
->computer
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
44 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
45 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
46 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
47 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
50 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->script_path
, CH_UTF16
)));
51 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
52 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->script_path
, CH_UTF16
)));
53 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->script_path
, ndr_charset_length(r
->script_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
59 NTSTATUS
ndr_pull_netr_UasInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UasInfo
*r
)
61 uint32_t _ptr_account_name
;
62 TALLOC_CTX
*_mem_save_account_name_0
;
63 uint32_t _ptr_computer
;
64 TALLOC_CTX
*_mem_save_computer_0
;
66 TALLOC_CTX
*_mem_save_domain_0
;
67 uint32_t _ptr_script_path
;
68 TALLOC_CTX
*_mem_save_script_path_0
;
69 if (ndr_flags
& NDR_SCALARS
) {
70 NDR_CHECK(ndr_pull_align(ndr
, 4));
71 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account_name
));
72 if (_ptr_account_name
) {
73 NDR_PULL_ALLOC(ndr
, r
->account_name
);
75 r
->account_name
= NULL
;
77 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priv
));
78 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->auth_flags
));
79 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_count
));
80 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bad_pw_count
));
81 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->last_logon
));
82 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->last_logoff
));
83 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->logoff_time
));
84 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->kickoff_time
));
85 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->password_age
));
86 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->pw_can_change
));
87 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->pw_must_change
));
88 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer
));
90 NDR_PULL_ALLOC(ndr
, r
->computer
);
94 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
96 NDR_PULL_ALLOC(ndr
, r
->domain
);
100 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_script_path
));
101 if (_ptr_script_path
) {
102 NDR_PULL_ALLOC(ndr
, r
->script_path
);
104 r
->script_path
= NULL
;
106 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
));
108 if (ndr_flags
& NDR_BUFFERS
) {
109 if (r
->account_name
) {
110 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
111 NDR_PULL_SET_MEM_CTX(ndr
, r
->account_name
, 0);
112 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->account_name
));
113 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->account_name
));
114 if (ndr_get_array_length(ndr
, &r
->account_name
) > ndr_get_array_size(ndr
, &r
->account_name
)) {
115 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->account_name
), ndr_get_array_length(ndr
, &r
->account_name
));
117 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t)));
118 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t), CH_UTF16
));
119 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, 0);
122 _mem_save_computer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
123 NDR_PULL_SET_MEM_CTX(ndr
, r
->computer
, 0);
124 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->computer
));
125 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->computer
));
126 if (ndr_get_array_length(ndr
, &r
->computer
) > ndr_get_array_size(ndr
, &r
->computer
)) {
127 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->computer
), ndr_get_array_length(ndr
, &r
->computer
));
129 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->computer
), sizeof(uint16_t)));
130 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->computer
, ndr_get_array_length(ndr
, &r
->computer
), sizeof(uint16_t), CH_UTF16
));
131 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_0
, 0);
134 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
135 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
136 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
137 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
138 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
139 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
141 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
142 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
143 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
145 if (r
->script_path
) {
146 _mem_save_script_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
147 NDR_PULL_SET_MEM_CTX(ndr
, r
->script_path
, 0);
148 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->script_path
));
149 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->script_path
));
150 if (ndr_get_array_length(ndr
, &r
->script_path
) > ndr_get_array_size(ndr
, &r
->script_path
)) {
151 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->script_path
), ndr_get_array_length(ndr
, &r
->script_path
));
153 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->script_path
), sizeof(uint16_t)));
154 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->script_path
, ndr_get_array_length(ndr
, &r
->script_path
), sizeof(uint16_t), CH_UTF16
));
155 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_script_path_0
, 0);
161 _PUBLIC_
void ndr_print_netr_UasInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_UasInfo
*r
)
163 ndr_print_struct(ndr
, name
, "netr_UasInfo");
165 ndr_print_ptr(ndr
, "account_name", r
->account_name
);
167 if (r
->account_name
) {
168 ndr_print_string(ndr
, "account_name", r
->account_name
);
171 ndr_print_uint32(ndr
, "priv", r
->priv
);
172 ndr_print_uint32(ndr
, "auth_flags", r
->auth_flags
);
173 ndr_print_uint32(ndr
, "logon_count", r
->logon_count
);
174 ndr_print_uint32(ndr
, "bad_pw_count", r
->bad_pw_count
);
175 ndr_print_time_t(ndr
, "last_logon", r
->last_logon
);
176 ndr_print_time_t(ndr
, "last_logoff", r
->last_logoff
);
177 ndr_print_time_t(ndr
, "logoff_time", r
->logoff_time
);
178 ndr_print_time_t(ndr
, "kickoff_time", r
->kickoff_time
);
179 ndr_print_uint32(ndr
, "password_age", r
->password_age
);
180 ndr_print_time_t(ndr
, "pw_can_change", r
->pw_can_change
);
181 ndr_print_time_t(ndr
, "pw_must_change", r
->pw_must_change
);
182 ndr_print_ptr(ndr
, "computer", r
->computer
);
185 ndr_print_string(ndr
, "computer", r
->computer
);
188 ndr_print_ptr(ndr
, "domain", r
->domain
);
191 ndr_print_string(ndr
, "domain", r
->domain
);
194 ndr_print_ptr(ndr
, "script_path", r
->script_path
);
196 if (r
->script_path
) {
197 ndr_print_string(ndr
, "script_path", r
->script_path
);
200 ndr_print_uint32(ndr
, "unknown", r
->unknown
);
204 NTSTATUS
ndr_push_netr_UasLogoffInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UasLogoffInfo
*r
)
206 if (ndr_flags
& NDR_SCALARS
) {
207 NDR_CHECK(ndr_push_align(ndr
, 4));
208 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->duration
));
209 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
211 if (ndr_flags
& NDR_BUFFERS
) {
216 NTSTATUS
ndr_pull_netr_UasLogoffInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UasLogoffInfo
*r
)
218 if (ndr_flags
& NDR_SCALARS
) {
219 NDR_CHECK(ndr_pull_align(ndr
, 4));
220 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->duration
));
221 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
223 if (ndr_flags
& NDR_BUFFERS
) {
228 _PUBLIC_
void ndr_print_netr_UasLogoffInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_UasLogoffInfo
*r
)
230 ndr_print_struct(ndr
, name
, "netr_UasLogoffInfo");
232 ndr_print_uint32(ndr
, "duration", r
->duration
);
233 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
237 NTSTATUS
ndr_push_netr_AcctLockStr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_AcctLockStr
*r
)
239 uint32_t cntr_bindata_1
;
240 if (ndr_flags
& NDR_SCALARS
) {
241 NDR_CHECK(ndr_push_align(ndr
, 4));
242 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
243 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
244 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->bindata
));
246 if (ndr_flags
& NDR_BUFFERS
) {
248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
/2));
249 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
/2));
251 for (cntr_bindata_1
= 0; cntr_bindata_1
< r
->length
/2; cntr_bindata_1
++) {
252 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bindata
[cntr_bindata_1
]));
259 NTSTATUS
ndr_pull_netr_AcctLockStr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_AcctLockStr
*r
)
261 uint32_t _ptr_bindata
;
262 uint32_t cntr_bindata_1
;
263 TALLOC_CTX
*_mem_save_bindata_0
;
264 TALLOC_CTX
*_mem_save_bindata_1
;
265 if (ndr_flags
& NDR_SCALARS
) {
266 NDR_CHECK(ndr_pull_align(ndr
, 4));
267 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
268 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
269 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_bindata
));
271 NDR_PULL_ALLOC(ndr
, r
->bindata
);
276 if (ndr_flags
& NDR_BUFFERS
) {
278 _mem_save_bindata_0
= NDR_PULL_GET_MEM_CTX(ndr
);
279 NDR_PULL_SET_MEM_CTX(ndr
, r
->bindata
, 0);
280 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->bindata
));
281 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->bindata
));
282 if (ndr_get_array_length(ndr
, &r
->bindata
) > ndr_get_array_size(ndr
, &r
->bindata
)) {
283 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->bindata
), ndr_get_array_length(ndr
, &r
->bindata
));
285 NDR_PULL_ALLOC_N(ndr
, r
->bindata
, ndr_get_array_size(ndr
, &r
->bindata
));
286 _mem_save_bindata_1
= NDR_PULL_GET_MEM_CTX(ndr
);
287 NDR_PULL_SET_MEM_CTX(ndr
, r
->bindata
, 0);
288 for (cntr_bindata_1
= 0; cntr_bindata_1
< r
->length
/2; cntr_bindata_1
++) {
289 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bindata
[cntr_bindata_1
]));
291 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bindata_1
, 0);
292 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bindata_0
, 0);
295 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->bindata
, r
->size
/2));
298 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->bindata
, r
->length
/2));
304 _PUBLIC_
void ndr_print_netr_AcctLockStr(struct ndr_print
*ndr
, const char *name
, const struct netr_AcctLockStr
*r
)
306 uint32_t cntr_bindata_1
;
307 ndr_print_struct(ndr
, name
, "netr_AcctLockStr");
309 ndr_print_uint16(ndr
, "size", r
->size
);
310 ndr_print_uint16(ndr
, "length", r
->length
);
311 ndr_print_ptr(ndr
, "bindata", r
->bindata
);
314 ndr
->print(ndr
, "%s: ARRAY(%d)", "bindata", r
->length
/2);
316 for (cntr_bindata_1
=0;cntr_bindata_1
<r
->length
/2;cntr_bindata_1
++) {
318 asprintf(&idx_1
, "[%d]", cntr_bindata_1
);
320 ndr_print_uint16(ndr
, "bindata", r
->bindata
[cntr_bindata_1
]);
330 NTSTATUS
ndr_push_netr_IdentityInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_IdentityInfo
*r
)
332 if (ndr_flags
& NDR_SCALARS
) {
333 NDR_CHECK(ndr_push_align(ndr
, 4));
334 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
335 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->parameter_control
));
336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_id_low
));
337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_id_high
));
338 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
339 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstation
));
341 if (ndr_flags
& NDR_BUFFERS
) {
342 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
343 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
344 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstation
));
349 NTSTATUS
ndr_pull_netr_IdentityInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_IdentityInfo
*r
)
351 if (ndr_flags
& NDR_SCALARS
) {
352 NDR_CHECK(ndr_pull_align(ndr
, 4));
353 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
354 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->parameter_control
));
355 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_id_low
));
356 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_id_high
));
357 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
358 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstation
));
360 if (ndr_flags
& NDR_BUFFERS
) {
361 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
362 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
363 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstation
));
368 _PUBLIC_
void ndr_print_netr_IdentityInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_IdentityInfo
*r
)
370 ndr_print_struct(ndr
, name
, "netr_IdentityInfo");
372 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
373 ndr_print_uint32(ndr
, "parameter_control", r
->parameter_control
);
374 ndr_print_uint32(ndr
, "logon_id_low", r
->logon_id_low
);
375 ndr_print_uint32(ndr
, "logon_id_high", r
->logon_id_high
);
376 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
377 ndr_print_lsa_String(ndr
, "workstation", &r
->workstation
);
381 NTSTATUS
ndr_push_netr_PasswordInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PasswordInfo
*r
)
383 if (ndr_flags
& NDR_SCALARS
) {
384 NDR_CHECK(ndr_push_align(ndr
, 4));
385 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
386 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
387 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
389 if (ndr_flags
& NDR_BUFFERS
) {
390 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
391 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_BUFFERS
, &r
->lmpassword
));
392 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_BUFFERS
, &r
->ntpassword
));
397 NTSTATUS
ndr_pull_netr_PasswordInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PasswordInfo
*r
)
399 if (ndr_flags
& NDR_SCALARS
) {
400 NDR_CHECK(ndr_pull_align(ndr
, 4));
401 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
402 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
403 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
405 if (ndr_flags
& NDR_BUFFERS
) {
406 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
407 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_BUFFERS
, &r
->lmpassword
));
408 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_BUFFERS
, &r
->ntpassword
));
413 _PUBLIC_
void ndr_print_netr_PasswordInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_PasswordInfo
*r
)
415 ndr_print_struct(ndr
, name
, "netr_PasswordInfo");
417 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
418 ndr_print_samr_Password(ndr
, "lmpassword", &r
->lmpassword
);
419 ndr_print_samr_Password(ndr
, "ntpassword", &r
->ntpassword
);
423 NTSTATUS
ndr_push_netr_ChallengeResponse(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_ChallengeResponse
*r
)
426 uint32_t _flags_save_STRUCT
= ndr
->flags
;
427 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
428 if (ndr_flags
& NDR_SCALARS
) {
429 NDR_CHECK(ndr_push_align(ndr
, 4));
430 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
431 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
432 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
434 if (ndr_flags
& NDR_BUFFERS
) {
436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
439 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
442 ndr
->flags
= _flags_save_STRUCT
;
447 NTSTATUS
ndr_pull_netr_ChallengeResponse(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_ChallengeResponse
*r
)
450 TALLOC_CTX
*_mem_save_data_0
;
452 uint32_t _flags_save_STRUCT
= ndr
->flags
;
453 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
454 if (ndr_flags
& NDR_SCALARS
) {
455 NDR_CHECK(ndr_pull_align(ndr
, 4));
456 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
457 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
458 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
460 NDR_PULL_ALLOC(ndr
, r
->data
);
465 if (ndr_flags
& NDR_BUFFERS
) {
467 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
468 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
469 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
470 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data
));
471 if (ndr_get_array_length(ndr
, &r
->data
) > ndr_get_array_size(ndr
, &r
->data
)) {
472 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data
), ndr_get_array_length(ndr
, &r
->data
));
474 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
475 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_length(ndr
, &r
->data
)));
476 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
479 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
482 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->data
, r
->length
));
485 ndr
->flags
= _flags_save_STRUCT
;
490 _PUBLIC_
void ndr_print_netr_ChallengeResponse(struct ndr_print
*ndr
, const char *name
, const struct netr_ChallengeResponse
*r
)
492 ndr_print_struct(ndr
, name
, "netr_ChallengeResponse");
494 uint32_t _flags_save_STRUCT
= ndr
->flags
;
495 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
497 ndr_print_uint16(ndr
, "length", r
->length
);
498 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
499 ndr_print_ptr(ndr
, "data", r
->data
);
502 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
506 ndr
->flags
= _flags_save_STRUCT
;
510 NTSTATUS
ndr_push_netr_NetworkInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NetworkInfo
*r
)
513 uint32_t _flags_save_STRUCT
= ndr
->flags
;
514 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
515 if (ndr_flags
& NDR_SCALARS
) {
516 NDR_CHECK(ndr_push_align(ndr
, 4));
517 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
518 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->challenge
, 8));
519 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->nt
));
520 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->lm
));
522 if (ndr_flags
& NDR_BUFFERS
) {
523 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
524 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->nt
));
525 NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->lm
));
527 ndr
->flags
= _flags_save_STRUCT
;
532 NTSTATUS
ndr_pull_netr_NetworkInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NetworkInfo
*r
)
535 uint32_t _flags_save_STRUCT
= ndr
->flags
;
536 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
537 if (ndr_flags
& NDR_SCALARS
) {
538 NDR_CHECK(ndr_pull_align(ndr
, 4));
539 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_SCALARS
, &r
->identity_info
));
540 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->challenge
, 8));
541 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->nt
));
542 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_SCALARS
, &r
->lm
));
544 if (ndr_flags
& NDR_BUFFERS
) {
545 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr
, NDR_BUFFERS
, &r
->identity_info
));
546 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->nt
));
547 NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr
, NDR_BUFFERS
, &r
->lm
));
549 ndr
->flags
= _flags_save_STRUCT
;
554 _PUBLIC_
void ndr_print_netr_NetworkInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_NetworkInfo
*r
)
556 ndr_print_struct(ndr
, name
, "netr_NetworkInfo");
558 uint32_t _flags_save_STRUCT
= ndr
->flags
;
559 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
561 ndr_print_netr_IdentityInfo(ndr
, "identity_info", &r
->identity_info
);
562 ndr_print_array_uint8(ndr
, "challenge", r
->challenge
, 8);
563 ndr_print_netr_ChallengeResponse(ndr
, "nt", &r
->nt
);
564 ndr_print_netr_ChallengeResponse(ndr
, "lm", &r
->lm
);
566 ndr
->flags
= _flags_save_STRUCT
;
570 _PUBLIC_ NTSTATUS
ndr_push_netr_LogonLevel(struct ndr_push
*ndr
, int ndr_flags
, const union netr_LogonLevel
*r
)
573 level
= ndr_push_get_switch_value(ndr
, r
);
574 if (ndr_flags
& NDR_SCALARS
) {
575 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
578 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
582 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->network
));
586 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
590 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->password
));
594 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->network
));
598 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
601 if (ndr_flags
& NDR_BUFFERS
) {
605 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
611 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
617 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
623 NDR_CHECK(ndr_push_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
629 NDR_CHECK(ndr_push_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
634 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
640 _PUBLIC_ NTSTATUS
ndr_pull_netr_LogonLevel(struct ndr_pull
*ndr
, int ndr_flags
, union netr_LogonLevel
*r
)
644 TALLOC_CTX
*_mem_save_password_0
;
645 TALLOC_CTX
*_mem_save_network_0
;
646 level
= ndr_pull_get_switch_value(ndr
, r
);
647 if (ndr_flags
& NDR_SCALARS
) {
648 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
649 if (_level
!= level
) {
650 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for netr_LogonLevel", _level
);
654 uint32_t _ptr_password
;
655 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
657 NDR_PULL_ALLOC(ndr
, r
->password
);
664 uint32_t _ptr_network
;
665 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_network
));
667 NDR_PULL_ALLOC(ndr
, r
->network
);
674 uint32_t _ptr_password
;
675 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
677 NDR_PULL_ALLOC(ndr
, r
->password
);
684 uint32_t _ptr_password
;
685 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_password
));
687 NDR_PULL_ALLOC(ndr
, r
->password
);
694 uint32_t _ptr_network
;
695 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_network
));
697 NDR_PULL_ALLOC(ndr
, r
->network
);
704 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
707 if (ndr_flags
& NDR_BUFFERS
) {
711 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
712 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
713 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
714 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
720 _mem_save_network_0
= NDR_PULL_GET_MEM_CTX(ndr
);
721 NDR_PULL_SET_MEM_CTX(ndr
, r
->network
, 0);
722 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
723 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_network_0
, 0);
729 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
730 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
731 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
732 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
738 _mem_save_password_0
= NDR_PULL_GET_MEM_CTX(ndr
);
739 NDR_PULL_SET_MEM_CTX(ndr
, r
->password
, 0);
740 NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->password
));
741 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_password_0
, 0);
747 _mem_save_network_0
= NDR_PULL_GET_MEM_CTX(ndr
);
748 NDR_PULL_SET_MEM_CTX(ndr
, r
->network
, 0);
749 NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->network
));
750 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_network_0
, 0);
755 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
761 _PUBLIC_
void ndr_print_netr_LogonLevel(struct ndr_print
*ndr
, const char *name
, const union netr_LogonLevel
*r
)
764 level
= ndr_print_get_switch_value(ndr
, r
);
765 ndr_print_union(ndr
, name
, level
, "netr_LogonLevel");
768 ndr_print_ptr(ndr
, "password", r
->password
);
771 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
777 ndr_print_ptr(ndr
, "network", r
->network
);
780 ndr_print_netr_NetworkInfo(ndr
, "network", r
->network
);
786 ndr_print_ptr(ndr
, "password", r
->password
);
789 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
795 ndr_print_ptr(ndr
, "password", r
->password
);
798 ndr_print_netr_PasswordInfo(ndr
, "password", r
->password
);
804 ndr_print_ptr(ndr
, "network", r
->network
);
807 ndr_print_netr_NetworkInfo(ndr
, "network", r
->network
);
813 ndr_print_bad_level(ndr
, name
, level
);
817 _PUBLIC_ NTSTATUS
ndr_push_netr_GroupMembership(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_GroupMembership
*r
)
819 if (ndr_flags
& NDR_SCALARS
) {
820 NDR_CHECK(ndr_push_align(ndr
, 4));
821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
822 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attributes
));
824 if (ndr_flags
& NDR_BUFFERS
) {
829 _PUBLIC_ NTSTATUS
ndr_pull_netr_GroupMembership(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_GroupMembership
*r
)
831 if (ndr_flags
& NDR_SCALARS
) {
832 NDR_CHECK(ndr_pull_align(ndr
, 4));
833 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
834 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attributes
));
836 if (ndr_flags
& NDR_BUFFERS
) {
841 _PUBLIC_
void ndr_print_netr_GroupMembership(struct ndr_print
*ndr
, const char *name
, const struct netr_GroupMembership
*r
)
843 ndr_print_struct(ndr
, name
, "netr_GroupMembership");
845 ndr_print_uint32(ndr
, "rid", r
->rid
);
846 ndr_print_uint32(ndr
, "attributes", r
->attributes
);
850 _PUBLIC_ NTSTATUS
ndr_push_netr_UserSessionKey(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UserSessionKey
*r
)
853 uint32_t _flags_save_STRUCT
= ndr
->flags
;
854 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
855 if (ndr_flags
& NDR_SCALARS
) {
856 NDR_CHECK(ndr_push_align(ndr
, 1));
857 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 16));
859 if (ndr_flags
& NDR_BUFFERS
) {
861 ndr
->flags
= _flags_save_STRUCT
;
866 _PUBLIC_ NTSTATUS
ndr_pull_netr_UserSessionKey(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UserSessionKey
*r
)
869 uint32_t _flags_save_STRUCT
= ndr
->flags
;
870 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
871 if (ndr_flags
& NDR_SCALARS
) {
872 NDR_CHECK(ndr_pull_align(ndr
, 1));
873 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 16));
875 if (ndr_flags
& NDR_BUFFERS
) {
877 ndr
->flags
= _flags_save_STRUCT
;
882 _PUBLIC_
void ndr_print_netr_UserSessionKey(struct ndr_print
*ndr
, const char *name
, const struct netr_UserSessionKey
*r
)
884 ndr_print_struct(ndr
, name
, "netr_UserSessionKey");
886 uint32_t _flags_save_STRUCT
= ndr
->flags
;
887 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
889 ndr_print_array_uint8(ndr
, "key", r
->key
, 16);
891 ndr
->flags
= _flags_save_STRUCT
;
895 _PUBLIC_ NTSTATUS
ndr_push_netr_LMSessionKey(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_LMSessionKey
*r
)
898 uint32_t _flags_save_STRUCT
= ndr
->flags
;
899 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
900 if (ndr_flags
& NDR_SCALARS
) {
901 NDR_CHECK(ndr_push_align(ndr
, 1));
902 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 8));
904 if (ndr_flags
& NDR_BUFFERS
) {
906 ndr
->flags
= _flags_save_STRUCT
;
911 _PUBLIC_ NTSTATUS
ndr_pull_netr_LMSessionKey(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_LMSessionKey
*r
)
914 uint32_t _flags_save_STRUCT
= ndr
->flags
;
915 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
916 if (ndr_flags
& NDR_SCALARS
) {
917 NDR_CHECK(ndr_pull_align(ndr
, 1));
918 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->key
, 8));
920 if (ndr_flags
& NDR_BUFFERS
) {
922 ndr
->flags
= _flags_save_STRUCT
;
927 _PUBLIC_
void ndr_print_netr_LMSessionKey(struct ndr_print
*ndr
, const char *name
, const struct netr_LMSessionKey
*r
)
929 ndr_print_struct(ndr
, name
, "netr_LMSessionKey");
931 uint32_t _flags_save_STRUCT
= ndr
->flags
;
932 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
934 ndr_print_array_uint8(ndr
, "key", r
->key
, 8);
936 ndr
->flags
= _flags_save_STRUCT
;
940 _PUBLIC_ NTSTATUS
ndr_push_netr_UserFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
942 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
946 _PUBLIC_ NTSTATUS
ndr_pull_netr_UserFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
949 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
954 _PUBLIC_
void ndr_print_netr_UserFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
956 ndr_print_uint32(ndr
, name
, r
);
958 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST
, r
);
959 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION
, r
);
960 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT
, r
);
961 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD
, r
);
962 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS
, r
);
963 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY
, r
);
964 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT
, r
);
965 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED
, r
);
966 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS
, r
);
967 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED
, r
);
971 NTSTATUS
ndr_push_netr_SamBaseInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamBaseInfo
*r
)
973 uint32_t cntr_unknown_0
;
974 if (ndr_flags
& NDR_SCALARS
) {
975 NDR_CHECK(ndr_push_align(ndr
, 4));
976 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
977 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
978 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
979 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
980 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->allow_password_change
));
981 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->force_password_change
));
982 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
983 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
984 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
985 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
986 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
987 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
988 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
989 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
992 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->groups
));
993 NDR_CHECK(ndr_push_netr_UserFlags(ndr
, NDR_SCALARS
, r
->user_flags
));
994 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->key
));
995 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->logon_server
));
996 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domain
));
997 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_sid
));
998 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr
, NDR_SCALARS
, &r
->LMSessKey
));
999 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
1000 for (cntr_unknown_0
= 0; cntr_unknown_0
< 7; cntr_unknown_0
++) {
1001 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
[cntr_unknown_0
]));
1004 if (ndr_flags
& NDR_BUFFERS
) {
1005 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
1006 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
1007 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
1008 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
1009 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
1010 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
1011 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->groups
));
1012 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1013 NDR_CHECK(ndr_push_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domain
));
1014 if (r
->domain_sid
) {
1015 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
1018 return NT_STATUS_OK
;
1021 NTSTATUS
ndr_pull_netr_SamBaseInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamBaseInfo
*r
)
1023 uint32_t _ptr_domain_sid
;
1024 TALLOC_CTX
*_mem_save_domain_sid_0
;
1025 uint32_t cntr_unknown_0
;
1026 if (ndr_flags
& NDR_SCALARS
) {
1027 NDR_CHECK(ndr_pull_align(ndr
, 4));
1028 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
1029 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
1030 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
1031 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
1032 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->allow_password_change
));
1033 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->force_password_change
));
1034 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
1035 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
1036 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
1037 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
1038 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
1039 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
1040 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
1041 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
1042 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
1043 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
1044 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_SCALARS
, &r
->groups
));
1045 NDR_CHECK(ndr_pull_netr_UserFlags(ndr
, NDR_SCALARS
, &r
->user_flags
));
1046 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->key
));
1047 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->logon_server
));
1048 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_SCALARS
, &r
->domain
));
1049 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_sid
));
1050 if (_ptr_domain_sid
) {
1051 NDR_PULL_ALLOC(ndr
, r
->domain_sid
);
1053 r
->domain_sid
= NULL
;
1055 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr
, NDR_SCALARS
, &r
->LMSessKey
));
1056 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
1057 for (cntr_unknown_0
= 0; cntr_unknown_0
< 7; cntr_unknown_0
++) {
1058 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
[cntr_unknown_0
]));
1061 if (ndr_flags
& NDR_BUFFERS
) {
1062 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
1063 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
1064 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
1065 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
1066 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
1067 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
1068 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr
, NDR_BUFFERS
, &r
->groups
));
1069 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1070 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr
, NDR_BUFFERS
, &r
->domain
));
1071 if (r
->domain_sid
) {
1072 _mem_save_domain_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1073 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_sid
, 0);
1074 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain_sid
));
1075 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_sid_0
, 0);
1078 return NT_STATUS_OK
;
1081 _PUBLIC_
void ndr_print_netr_SamBaseInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_SamBaseInfo
*r
)
1083 uint32_t cntr_unknown_0
;
1084 ndr_print_struct(ndr
, name
, "netr_SamBaseInfo");
1086 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
1087 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
1088 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
1089 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
1090 ndr_print_NTTIME(ndr
, "allow_password_change", r
->allow_password_change
);
1091 ndr_print_NTTIME(ndr
, "force_password_change", r
->force_password_change
);
1092 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
1093 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
1094 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
1095 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
1096 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
1097 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
1098 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
1099 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
1100 ndr_print_uint32(ndr
, "rid", r
->rid
);
1101 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
1102 ndr_print_samr_RidWithAttributeArray(ndr
, "groups", &r
->groups
);
1103 ndr_print_netr_UserFlags(ndr
, "user_flags", r
->user_flags
);
1104 ndr_print_netr_UserSessionKey(ndr
, "key", &r
->key
);
1105 ndr_print_lsa_StringLarge(ndr
, "logon_server", &r
->logon_server
);
1106 ndr_print_lsa_StringLarge(ndr
, "domain", &r
->domain
);
1107 ndr_print_ptr(ndr
, "domain_sid", r
->domain_sid
);
1109 if (r
->domain_sid
) {
1110 ndr_print_dom_sid2(ndr
, "domain_sid", r
->domain_sid
);
1113 ndr_print_netr_LMSessionKey(ndr
, "LMSessKey", &r
->LMSessKey
);
1114 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
1115 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown", 7);
1117 for (cntr_unknown_0
=0;cntr_unknown_0
<7;cntr_unknown_0
++) {
1119 asprintf(&idx_0
, "[%d]", cntr_unknown_0
);
1121 ndr_print_uint32(ndr
, "unknown", r
->unknown
[cntr_unknown_0
]);
1129 NTSTATUS
ndr_push_netr_SamInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo2
*r
)
1131 if (ndr_flags
& NDR_SCALARS
) {
1132 NDR_CHECK(ndr_push_align(ndr
, 4));
1133 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1135 if (ndr_flags
& NDR_BUFFERS
) {
1136 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1138 return NT_STATUS_OK
;
1141 NTSTATUS
ndr_pull_netr_SamInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo2
*r
)
1143 if (ndr_flags
& NDR_SCALARS
) {
1144 NDR_CHECK(ndr_pull_align(ndr
, 4));
1145 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1147 if (ndr_flags
& NDR_BUFFERS
) {
1148 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1150 return NT_STATUS_OK
;
1153 _PUBLIC_
void ndr_print_netr_SamInfo2(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo2
*r
)
1155 ndr_print_struct(ndr
, name
, "netr_SamInfo2");
1157 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1161 NTSTATUS
ndr_push_netr_SidAttr(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SidAttr
*r
)
1163 if (ndr_flags
& NDR_SCALARS
) {
1164 NDR_CHECK(ndr_push_align(ndr
, 4));
1165 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
1166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attribute
));
1168 if (ndr_flags
& NDR_BUFFERS
) {
1170 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
1173 return NT_STATUS_OK
;
1176 NTSTATUS
ndr_pull_netr_SidAttr(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SidAttr
*r
)
1179 TALLOC_CTX
*_mem_save_sid_0
;
1180 if (ndr_flags
& NDR_SCALARS
) {
1181 NDR_CHECK(ndr_pull_align(ndr
, 4));
1182 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
1184 NDR_PULL_ALLOC(ndr
, r
->sid
);
1188 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attribute
));
1190 if (ndr_flags
& NDR_BUFFERS
) {
1192 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1193 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
1194 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
1195 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
1198 return NT_STATUS_OK
;
1201 _PUBLIC_
void ndr_print_netr_SidAttr(struct ndr_print
*ndr
, const char *name
, const struct netr_SidAttr
*r
)
1203 ndr_print_struct(ndr
, name
, "netr_SidAttr");
1205 ndr_print_ptr(ndr
, "sid", r
->sid
);
1208 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
1211 ndr_print_uint32(ndr
, "attribute", r
->attribute
);
1215 _PUBLIC_ NTSTATUS
ndr_push_netr_SamInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo3
*r
)
1217 uint32_t cntr_sids_1
;
1218 if (ndr_flags
& NDR_SCALARS
) {
1219 NDR_CHECK(ndr_push_align(ndr
, 4));
1220 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1221 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1222 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
1224 if (ndr_flags
& NDR_BUFFERS
) {
1225 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1227 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1228 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1229 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1231 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1232 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1236 return NT_STATUS_OK
;
1239 _PUBLIC_ NTSTATUS
ndr_pull_netr_SamInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo3
*r
)
1242 uint32_t cntr_sids_1
;
1243 TALLOC_CTX
*_mem_save_sids_0
;
1244 TALLOC_CTX
*_mem_save_sids_1
;
1245 if (ndr_flags
& NDR_SCALARS
) {
1246 NDR_CHECK(ndr_pull_align(ndr
, 4));
1247 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1248 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sidcount
));
1249 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
1251 NDR_PULL_ALLOC(ndr
, r
->sids
);
1256 if (ndr_flags
& NDR_BUFFERS
) {
1257 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1259 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1260 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1261 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
1262 NDR_PULL_ALLOC_N(ndr
, r
->sids
, ndr_get_array_size(ndr
, &r
->sids
));
1263 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1264 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1265 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1266 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1268 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1269 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1271 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
1272 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
1275 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->sidcount
));
1278 return NT_STATUS_OK
;
1281 _PUBLIC_
void ndr_print_netr_SamInfo3(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo3
*r
)
1283 uint32_t cntr_sids_1
;
1284 ndr_print_struct(ndr
, name
, "netr_SamInfo3");
1286 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1287 ndr_print_uint32(ndr
, "sidcount", r
->sidcount
);
1288 ndr_print_ptr(ndr
, "sids", r
->sids
);
1291 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", r
->sidcount
);
1293 for (cntr_sids_1
=0;cntr_sids_1
<r
->sidcount
;cntr_sids_1
++) {
1295 asprintf(&idx_1
, "[%d]", cntr_sids_1
);
1297 ndr_print_netr_SidAttr(ndr
, "sids", &r
->sids
[cntr_sids_1
]);
1307 NTSTATUS
ndr_push_netr_SamInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_SamInfo6
*r
)
1309 uint32_t cntr_sids_1
;
1310 uint32_t cntr_unknown4_0
;
1311 if (ndr_flags
& NDR_SCALARS
) {
1312 NDR_CHECK(ndr_push_align(ndr
, 4));
1313 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1314 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1315 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
1316 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
1317 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->principle
));
1318 for (cntr_unknown4_0
= 0; cntr_unknown4_0
< 20; cntr_unknown4_0
++) {
1319 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
[cntr_unknown4_0
]));
1322 if (ndr_flags
& NDR_BUFFERS
) {
1323 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1325 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sidcount
));
1326 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1327 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1329 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1330 NDR_CHECK(ndr_push_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1333 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
1334 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->principle
));
1336 return NT_STATUS_OK
;
1339 NTSTATUS
ndr_pull_netr_SamInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_SamInfo6
*r
)
1342 uint32_t cntr_sids_1
;
1343 TALLOC_CTX
*_mem_save_sids_0
;
1344 TALLOC_CTX
*_mem_save_sids_1
;
1345 uint32_t cntr_unknown4_0
;
1346 if (ndr_flags
& NDR_SCALARS
) {
1347 NDR_CHECK(ndr_pull_align(ndr
, 4));
1348 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_SCALARS
, &r
->base
));
1349 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sidcount
));
1350 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
1352 NDR_PULL_ALLOC(ndr
, r
->sids
);
1356 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
1357 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->principle
));
1358 for (cntr_unknown4_0
= 0; cntr_unknown4_0
< 20; cntr_unknown4_0
++) {
1359 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
[cntr_unknown4_0
]));
1362 if (ndr_flags
& NDR_BUFFERS
) {
1363 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr
, NDR_BUFFERS
, &r
->base
));
1365 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1366 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1367 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
1368 NDR_PULL_ALLOC_N(ndr
, r
->sids
, ndr_get_array_size(ndr
, &r
->sids
));
1369 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1370 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
1371 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1372 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_SCALARS
, &r
->sids
[cntr_sids_1
]));
1374 for (cntr_sids_1
= 0; cntr_sids_1
< r
->sidcount
; cntr_sids_1
++) {
1375 NDR_CHECK(ndr_pull_netr_SidAttr(ndr
, NDR_BUFFERS
, &r
->sids
[cntr_sids_1
]));
1377 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
1378 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
1380 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
1381 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->principle
));
1383 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->sidcount
));
1386 return NT_STATUS_OK
;
1389 _PUBLIC_
void ndr_print_netr_SamInfo6(struct ndr_print
*ndr
, const char *name
, const struct netr_SamInfo6
*r
)
1391 uint32_t cntr_sids_1
;
1392 uint32_t cntr_unknown4_0
;
1393 ndr_print_struct(ndr
, name
, "netr_SamInfo6");
1395 ndr_print_netr_SamBaseInfo(ndr
, "base", &r
->base
);
1396 ndr_print_uint32(ndr
, "sidcount", r
->sidcount
);
1397 ndr_print_ptr(ndr
, "sids", r
->sids
);
1400 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", r
->sidcount
);
1402 for (cntr_sids_1
=0;cntr_sids_1
<r
->sidcount
;cntr_sids_1
++) {
1404 asprintf(&idx_1
, "[%d]", cntr_sids_1
);
1406 ndr_print_netr_SidAttr(ndr
, "sids", &r
->sids
[cntr_sids_1
]);
1413 ndr_print_lsa_String(ndr
, "forest", &r
->forest
);
1414 ndr_print_lsa_String(ndr
, "principle", &r
->principle
);
1415 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown4", 20);
1417 for (cntr_unknown4_0
=0;cntr_unknown4_0
<20;cntr_unknown4_0
++) {
1419 asprintf(&idx_0
, "[%d]", cntr_unknown4_0
);
1421 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
[cntr_unknown4_0
]);
1429 NTSTATUS
ndr_push_netr_PacInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PacInfo
*r
)
1431 uint32_t cntr_expansionroom_0
;
1432 if (ndr_flags
& NDR_SCALARS
) {
1433 NDR_CHECK(ndr_push_align(ndr
, 4));
1434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pac_size
));
1435 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1436 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_domain
));
1437 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_server
));
1438 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->principal_name
));
1439 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_size
));
1440 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->auth
));
1441 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->user_session_key
));
1442 for (cntr_expansionroom_0
= 0; cntr_expansionroom_0
< 10; cntr_expansionroom_0
++) {
1443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->expansionroom
[cntr_expansionroom_0
]));
1445 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1446 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1447 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1448 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1450 if (ndr_flags
& NDR_BUFFERS
) {
1452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pac_size
));
1453 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->pac
, r
->pac_size
));
1455 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_domain
));
1456 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1457 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->principal_name
));
1459 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->auth_size
));
1460 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->auth
, r
->auth_size
));
1462 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1463 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1464 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1465 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1467 return NT_STATUS_OK
;
1470 NTSTATUS
ndr_pull_netr_PacInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PacInfo
*r
)
1473 TALLOC_CTX
*_mem_save_pac_0
;
1475 TALLOC_CTX
*_mem_save_auth_0
;
1476 uint32_t cntr_expansionroom_0
;
1477 if (ndr_flags
& NDR_SCALARS
) {
1478 NDR_CHECK(ndr_pull_align(ndr
, 4));
1479 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pac_size
));
1480 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1482 NDR_PULL_ALLOC(ndr
, r
->pac
);
1486 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_domain
));
1487 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_server
));
1488 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->principal_name
));
1489 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->auth_size
));
1490 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_auth
));
1492 NDR_PULL_ALLOC(ndr
, r
->auth
);
1496 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr
, NDR_SCALARS
, &r
->user_session_key
));
1497 for (cntr_expansionroom_0
= 0; cntr_expansionroom_0
< 10; cntr_expansionroom_0
++) {
1498 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->expansionroom
[cntr_expansionroom_0
]));
1500 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1501 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1502 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1503 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1505 if (ndr_flags
& NDR_BUFFERS
) {
1507 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1508 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1509 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->pac
));
1510 NDR_PULL_ALLOC_N(ndr
, r
->pac
, ndr_get_array_size(ndr
, &r
->pac
));
1511 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->pac
, ndr_get_array_size(ndr
, &r
->pac
)));
1512 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1514 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_domain
));
1515 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_server
));
1516 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->principal_name
));
1518 _mem_save_auth_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1519 NDR_PULL_SET_MEM_CTX(ndr
, r
->auth
, 0);
1520 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->auth
));
1521 NDR_PULL_ALLOC_N(ndr
, r
->auth
, ndr_get_array_size(ndr
, &r
->auth
));
1522 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->auth
, ndr_get_array_size(ndr
, &r
->auth
)));
1523 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_auth_0
, 0);
1525 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1526 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1527 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1528 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1530 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->pac
, r
->pac_size
));
1533 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->auth
, r
->auth_size
));
1536 return NT_STATUS_OK
;
1539 _PUBLIC_
void ndr_print_netr_PacInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_PacInfo
*r
)
1541 uint32_t cntr_expansionroom_0
;
1542 ndr_print_struct(ndr
, name
, "netr_PacInfo");
1544 ndr_print_uint32(ndr
, "pac_size", r
->pac_size
);
1545 ndr_print_ptr(ndr
, "pac", r
->pac
);
1548 ndr_print_array_uint8(ndr
, "pac", r
->pac
, r
->pac_size
);
1551 ndr_print_lsa_String(ndr
, "logon_domain", &r
->logon_domain
);
1552 ndr_print_lsa_String(ndr
, "logon_server", &r
->logon_server
);
1553 ndr_print_lsa_String(ndr
, "principal_name", &r
->principal_name
);
1554 ndr_print_uint32(ndr
, "auth_size", r
->auth_size
);
1555 ndr_print_ptr(ndr
, "auth", r
->auth
);
1558 ndr_print_array_uint8(ndr
, "auth", r
->auth
, r
->auth_size
);
1561 ndr_print_netr_UserSessionKey(ndr
, "user_session_key", &r
->user_session_key
);
1562 ndr
->print(ndr
, "%s: ARRAY(%d)", "expansionroom", 10);
1564 for (cntr_expansionroom_0
=0;cntr_expansionroom_0
<10;cntr_expansionroom_0
++) {
1566 asprintf(&idx_0
, "[%d]", cntr_expansionroom_0
);
1568 ndr_print_uint32(ndr
, "expansionroom", r
->expansionroom
[cntr_expansionroom_0
]);
1573 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
1574 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
1575 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
1576 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
1580 _PUBLIC_ NTSTATUS
ndr_push_netr_Validation(struct ndr_push
*ndr
, int ndr_flags
, const union netr_Validation
*r
)
1583 level
= ndr_push_get_switch_value(ndr
, r
);
1584 if (ndr_flags
& NDR_SCALARS
) {
1585 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, level
));
1588 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam2
));
1592 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam3
));
1596 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1600 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pac
));
1604 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sam6
));
1608 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1611 if (ndr_flags
& NDR_BUFFERS
) {
1615 NDR_CHECK(ndr_push_netr_SamInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam2
));
1621 NDR_CHECK(ndr_push_netr_SamInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam3
));
1627 NDR_CHECK(ndr_push_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1633 NDR_CHECK(ndr_push_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1639 NDR_CHECK(ndr_push_netr_SamInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam6
));
1644 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1647 return NT_STATUS_OK
;
1650 _PUBLIC_ NTSTATUS
ndr_pull_netr_Validation(struct ndr_pull
*ndr
, int ndr_flags
, union netr_Validation
*r
)
1654 TALLOC_CTX
*_mem_save_sam2_0
;
1655 TALLOC_CTX
*_mem_save_sam3_0
;
1656 TALLOC_CTX
*_mem_save_pac_0
;
1657 TALLOC_CTX
*_mem_save_sam6_0
;
1658 level
= ndr_pull_get_switch_value(ndr
, r
);
1659 if (ndr_flags
& NDR_SCALARS
) {
1660 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
1661 if (_level
!= level
) {
1662 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for netr_Validation", _level
);
1667 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam2
));
1669 NDR_PULL_ALLOC(ndr
, r
->sam2
);
1677 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam3
));
1679 NDR_PULL_ALLOC(ndr
, r
->sam3
);
1687 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1689 NDR_PULL_ALLOC(ndr
, r
->pac
);
1697 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pac
));
1699 NDR_PULL_ALLOC(ndr
, r
->pac
);
1707 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sam6
));
1709 NDR_PULL_ALLOC(ndr
, r
->sam6
);
1716 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1719 if (ndr_flags
& NDR_BUFFERS
) {
1723 _mem_save_sam2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1724 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam2
, 0);
1725 NDR_CHECK(ndr_pull_netr_SamInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam2
));
1726 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam2_0
, 0);
1732 _mem_save_sam3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1733 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam3
, 0);
1734 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam3
));
1735 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam3_0
, 0);
1741 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1742 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1743 NDR_CHECK(ndr_pull_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1744 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1750 _mem_save_pac_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1751 NDR_PULL_SET_MEM_CTX(ndr
, r
->pac
, 0);
1752 NDR_CHECK(ndr_pull_netr_PacInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pac
));
1753 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pac_0
, 0);
1759 _mem_save_sam6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1760 NDR_PULL_SET_MEM_CTX(ndr
, r
->sam6
, 0);
1761 NDR_CHECK(ndr_pull_netr_SamInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sam6
));
1762 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sam6_0
, 0);
1767 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
1770 return NT_STATUS_OK
;
1773 _PUBLIC_
void ndr_print_netr_Validation(struct ndr_print
*ndr
, const char *name
, const union netr_Validation
*r
)
1776 level
= ndr_print_get_switch_value(ndr
, r
);
1777 ndr_print_union(ndr
, name
, level
, "netr_Validation");
1780 ndr_print_ptr(ndr
, "sam2", r
->sam2
);
1783 ndr_print_netr_SamInfo2(ndr
, "sam2", r
->sam2
);
1789 ndr_print_ptr(ndr
, "sam3", r
->sam3
);
1792 ndr_print_netr_SamInfo3(ndr
, "sam3", r
->sam3
);
1798 ndr_print_ptr(ndr
, "pac", r
->pac
);
1801 ndr_print_netr_PacInfo(ndr
, "pac", r
->pac
);
1807 ndr_print_ptr(ndr
, "pac", r
->pac
);
1810 ndr_print_netr_PacInfo(ndr
, "pac", r
->pac
);
1816 ndr_print_ptr(ndr
, "sam6", r
->sam6
);
1819 ndr_print_netr_SamInfo6(ndr
, "sam6", r
->sam6
);
1825 ndr_print_bad_level(ndr
, name
, level
);
1829 _PUBLIC_ NTSTATUS
ndr_push_netr_Credential(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Credential
*r
)
1832 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1833 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1834 if (ndr_flags
& NDR_SCALARS
) {
1835 NDR_CHECK(ndr_push_align(ndr
, 1));
1836 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 8));
1838 if (ndr_flags
& NDR_BUFFERS
) {
1840 ndr
->flags
= _flags_save_STRUCT
;
1842 return NT_STATUS_OK
;
1845 _PUBLIC_ NTSTATUS
ndr_pull_netr_Credential(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Credential
*r
)
1848 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1849 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1850 if (ndr_flags
& NDR_SCALARS
) {
1851 NDR_CHECK(ndr_pull_align(ndr
, 1));
1852 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 8));
1854 if (ndr_flags
& NDR_BUFFERS
) {
1856 ndr
->flags
= _flags_save_STRUCT
;
1858 return NT_STATUS_OK
;
1861 _PUBLIC_
void ndr_print_netr_Credential(struct ndr_print
*ndr
, const char *name
, const struct netr_Credential
*r
)
1863 ndr_print_struct(ndr
, name
, "netr_Credential");
1865 uint32_t _flags_save_STRUCT
= ndr
->flags
;
1866 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1868 ndr_print_array_uint8(ndr
, "data", r
->data
, 8);
1870 ndr
->flags
= _flags_save_STRUCT
;
1874 _PUBLIC_ NTSTATUS
ndr_push_netr_Authenticator(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Authenticator
*r
)
1876 if (ndr_flags
& NDR_SCALARS
) {
1877 NDR_CHECK(ndr_push_align(ndr
, 4));
1878 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, &r
->cred
));
1879 NDR_CHECK(ndr_push_time_t(ndr
, NDR_SCALARS
, r
->timestamp
));
1881 if (ndr_flags
& NDR_BUFFERS
) {
1883 return NT_STATUS_OK
;
1886 _PUBLIC_ NTSTATUS
ndr_pull_netr_Authenticator(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Authenticator
*r
)
1888 if (ndr_flags
& NDR_SCALARS
) {
1889 NDR_CHECK(ndr_pull_align(ndr
, 4));
1890 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, &r
->cred
));
1891 NDR_CHECK(ndr_pull_time_t(ndr
, NDR_SCALARS
, &r
->timestamp
));
1893 if (ndr_flags
& NDR_BUFFERS
) {
1895 return NT_STATUS_OK
;
1898 _PUBLIC_
void ndr_print_netr_Authenticator(struct ndr_print
*ndr
, const char *name
, const struct netr_Authenticator
*r
)
1900 ndr_print_struct(ndr
, name
, "netr_Authenticator");
1902 ndr_print_netr_Credential(ndr
, "cred", &r
->cred
);
1903 ndr_print_time_t(ndr
, "timestamp", r
->timestamp
);
1907 NTSTATUS
ndr_push_netr_DELTA_DELETE_USER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_USER
*r
)
1909 if (ndr_flags
& NDR_SCALARS
) {
1910 NDR_CHECK(ndr_push_align(ndr
, 4));
1911 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account_name
));
1912 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1913 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1914 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1915 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1916 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
1917 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
1918 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
1919 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
1921 if (ndr_flags
& NDR_BUFFERS
) {
1922 if (r
->account_name
) {
1923 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
1924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
1925 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF16
)));
1926 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, ndr_charset_length(r
->account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
1928 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1929 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1930 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1931 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1933 return NT_STATUS_OK
;
1936 NTSTATUS
ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_USER
*r
)
1938 uint32_t _ptr_account_name
;
1939 TALLOC_CTX
*_mem_save_account_name_0
;
1940 if (ndr_flags
& NDR_SCALARS
) {
1941 NDR_CHECK(ndr_pull_align(ndr
, 4));
1942 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account_name
));
1943 if (_ptr_account_name
) {
1944 NDR_PULL_ALLOC(ndr
, r
->account_name
);
1946 r
->account_name
= NULL
;
1948 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
1949 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
1950 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
1951 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
1952 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
1953 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
1954 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
1955 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
1957 if (ndr_flags
& NDR_BUFFERS
) {
1958 if (r
->account_name
) {
1959 _mem_save_account_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1960 NDR_PULL_SET_MEM_CTX(ndr
, r
->account_name
, 0);
1961 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->account_name
));
1962 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->account_name
));
1963 if (ndr_get_array_length(ndr
, &r
->account_name
) > ndr_get_array_size(ndr
, &r
->account_name
)) {
1964 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->account_name
), ndr_get_array_length(ndr
, &r
->account_name
));
1966 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t)));
1967 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, ndr_get_array_length(ndr
, &r
->account_name
), sizeof(uint16_t), CH_UTF16
));
1968 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_name_0
, 0);
1970 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
1971 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
1972 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
1973 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
1975 return NT_STATUS_OK
;
1978 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_USER
*r
)
1980 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_USER");
1982 ndr_print_ptr(ndr
, "account_name", r
->account_name
);
1984 if (r
->account_name
) {
1985 ndr_print_string(ndr
, "account_name", r
->account_name
);
1988 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
1989 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
1990 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
1991 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
1992 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
1993 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
1994 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
1995 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
1999 NTSTATUS
ndr_push_netr_USER_KEY16(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEY16
*r
)
2001 if (ndr_flags
& NDR_SCALARS
) {
2002 NDR_CHECK(ndr_push_align(ndr
, 4));
2003 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
2004 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
2005 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
2006 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->pwd
));
2008 if (ndr_flags
& NDR_BUFFERS
) {
2009 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_BUFFERS
, &r
->pwd
));
2011 return NT_STATUS_OK
;
2014 NTSTATUS
ndr_pull_netr_USER_KEY16(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEY16
*r
)
2016 if (ndr_flags
& NDR_SCALARS
) {
2017 NDR_CHECK(ndr_pull_align(ndr
, 4));
2018 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
2019 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
2020 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
2021 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->pwd
));
2023 if (ndr_flags
& NDR_BUFFERS
) {
2024 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_BUFFERS
, &r
->pwd
));
2026 return NT_STATUS_OK
;
2029 _PUBLIC_
void ndr_print_netr_USER_KEY16(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEY16
*r
)
2031 ndr_print_struct(ndr
, name
, "netr_USER_KEY16");
2033 ndr_print_uint16(ndr
, "length", r
->length
);
2034 ndr_print_uint16(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->length
:r
->size
);
2035 ndr_print_uint32(ndr
, "flags", r
->flags
);
2036 ndr_print_samr_Password(ndr
, "pwd", &r
->pwd
);
2040 NTSTATUS
ndr_push_netr_PasswordHistory(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_PasswordHistory
*r
)
2042 if (ndr_flags
& NDR_SCALARS
) {
2043 NDR_CHECK(ndr_push_align(ndr
, 4));
2044 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nt_length
));
2045 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->nt_size
));
2046 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nt_flags
));
2047 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm_length
));
2048 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lm_size
));
2049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lm_flags
));
2050 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->nt_history
, r
->nt_length
));
2051 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->lm_history
, r
->lm_length
));
2053 if (ndr_flags
& NDR_BUFFERS
) {
2055 return NT_STATUS_OK
;
2058 NTSTATUS
ndr_pull_netr_PasswordHistory(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_PasswordHistory
*r
)
2060 if (ndr_flags
& NDR_SCALARS
) {
2061 NDR_CHECK(ndr_pull_align(ndr
, 4));
2062 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nt_length
));
2063 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->nt_size
));
2064 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nt_flags
));
2065 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm_length
));
2066 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lm_size
));
2067 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lm_flags
));
2068 NDR_PULL_ALLOC_N(ndr
, r
->nt_history
, r
->nt_length
);
2069 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->nt_history
, r
->nt_length
));
2070 NDR_PULL_ALLOC_N(ndr
, r
->lm_history
, r
->lm_length
);
2071 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->lm_history
, r
->lm_length
));
2073 if (ndr_flags
& NDR_BUFFERS
) {
2075 return NT_STATUS_OK
;
2078 _PUBLIC_
void ndr_print_netr_PasswordHistory(struct ndr_print
*ndr
, const char *name
, const struct netr_PasswordHistory
*r
)
2080 ndr_print_struct(ndr
, name
, "netr_PasswordHistory");
2082 ndr_print_uint16(ndr
, "nt_length", r
->nt_length
);
2083 ndr_print_uint16(ndr
, "nt_size", r
->nt_size
);
2084 ndr_print_uint32(ndr
, "nt_flags", r
->nt_flags
);
2085 ndr_print_uint16(ndr
, "lm_length", r
->lm_length
);
2086 ndr_print_uint16(ndr
, "lm_size", r
->lm_size
);
2087 ndr_print_uint32(ndr
, "lm_flags", r
->lm_flags
);
2088 ndr_print_array_uint8(ndr
, "nt_history", r
->nt_history
, r
->nt_length
);
2089 ndr_print_array_uint8(ndr
, "lm_history", r
->lm_history
, r
->lm_length
);
2093 NTSTATUS
ndr_push_netr_USER_KEYS2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEYS2
*r
)
2095 if (ndr_flags
& NDR_SCALARS
) {
2096 NDR_CHECK(ndr_push_align(ndr
, 4));
2097 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2098 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2099 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr
, NDR_SCALARS
, &r
->lmhistory
));
2101 if (ndr_flags
& NDR_BUFFERS
) {
2102 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_BUFFERS
, &r
->lmpassword
));
2103 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr
, NDR_BUFFERS
, &r
->ntpassword
));
2105 return NT_STATUS_OK
;
2108 NTSTATUS
ndr_pull_netr_USER_KEYS2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEYS2
*r
)
2110 if (ndr_flags
& NDR_SCALARS
) {
2111 NDR_CHECK(ndr_pull_align(ndr
, 4));
2112 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2113 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2114 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr
, NDR_SCALARS
, &r
->lmhistory
));
2116 if (ndr_flags
& NDR_BUFFERS
) {
2117 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_BUFFERS
, &r
->lmpassword
));
2118 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr
, NDR_BUFFERS
, &r
->ntpassword
));
2120 return NT_STATUS_OK
;
2123 _PUBLIC_
void ndr_print_netr_USER_KEYS2(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEYS2
*r
)
2125 ndr_print_struct(ndr
, name
, "netr_USER_KEYS2");
2127 ndr_print_netr_USER_KEY16(ndr
, "lmpassword", &r
->lmpassword
);
2128 ndr_print_netr_USER_KEY16(ndr
, "ntpassword", &r
->ntpassword
);
2129 ndr_print_netr_PasswordHistory(ndr
, "lmhistory", &r
->lmhistory
);
2133 NTSTATUS
ndr_push_netr_USER_KEY_UNION(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEY_UNION
*r
)
2135 if (ndr_flags
& NDR_SCALARS
) {
2136 NDR_CHECK(ndr_push_align(ndr
, 4));
2137 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr
, NDR_SCALARS
, &r
->keys2
));
2139 if (ndr_flags
& NDR_BUFFERS
) {
2140 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr
, NDR_BUFFERS
, &r
->keys2
));
2142 return NT_STATUS_OK
;
2145 NTSTATUS
ndr_pull_netr_USER_KEY_UNION(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEY_UNION
*r
)
2147 if (ndr_flags
& NDR_SCALARS
) {
2148 NDR_CHECK(ndr_pull_align(ndr
, 4));
2149 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr
, NDR_SCALARS
, &r
->keys2
));
2151 if (ndr_flags
& NDR_BUFFERS
) {
2152 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr
, NDR_BUFFERS
, &r
->keys2
));
2154 return NT_STATUS_OK
;
2157 _PUBLIC_
void ndr_print_netr_USER_KEY_UNION(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEY_UNION
*r
)
2159 ndr_print_struct(ndr
, name
, "netr_USER_KEY_UNION");
2161 ndr_print_netr_USER_KEYS2(ndr
, "keys2", &r
->keys2
);
2165 _PUBLIC_ NTSTATUS
ndr_push_netr_USER_KEYS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_KEYS
*r
)
2167 if (ndr_flags
& NDR_SCALARS
) {
2168 NDR_CHECK(ndr_push_align(ndr
, 4));
2169 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
2170 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr
, NDR_SCALARS
, &r
->keys
));
2172 if (ndr_flags
& NDR_BUFFERS
) {
2173 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr
, NDR_BUFFERS
, &r
->keys
));
2175 return NT_STATUS_OK
;
2178 _PUBLIC_ NTSTATUS
ndr_pull_netr_USER_KEYS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_KEYS
*r
)
2180 if (ndr_flags
& NDR_SCALARS
) {
2181 NDR_CHECK(ndr_pull_align(ndr
, 4));
2182 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
2183 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr
, NDR_SCALARS
, &r
->keys
));
2185 if (ndr_flags
& NDR_BUFFERS
) {
2186 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr
, NDR_BUFFERS
, &r
->keys
));
2188 return NT_STATUS_OK
;
2191 _PUBLIC_
void ndr_print_netr_USER_KEYS(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_KEYS
*r
)
2193 ndr_print_struct(ndr
, name
, "netr_USER_KEYS");
2195 ndr_print_uint32(ndr
, "version", r
->version
);
2196 ndr_print_netr_USER_KEY_UNION(ndr
, "keys", &r
->keys
);
2200 NTSTATUS
ndr_push_netr_USER_PRIVATE_INFO(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_USER_PRIVATE_INFO
*r
)
2202 if (ndr_flags
& NDR_SCALARS
) {
2203 NDR_CHECK(ndr_push_align(ndr
, 4));
2204 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->SensitiveDataFlag
));
2205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->DataLength
));
2207 uint32_t _flags_save_uint8
= ndr
->flags
;
2208 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2209 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->SensitiveData
));
2210 ndr
->flags
= _flags_save_uint8
;
2213 if (ndr_flags
& NDR_BUFFERS
) {
2215 uint32_t _flags_save_uint8
= ndr
->flags
;
2216 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2217 if (r
->SensitiveData
) {
2218 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->DataLength
));
2219 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->SensitiveData
, r
->DataLength
));
2221 ndr
->flags
= _flags_save_uint8
;
2224 return NT_STATUS_OK
;
2227 NTSTATUS
ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_USER_PRIVATE_INFO
*r
)
2229 uint32_t _ptr_SensitiveData
;
2230 TALLOC_CTX
*_mem_save_SensitiveData_0
;
2231 if (ndr_flags
& NDR_SCALARS
) {
2232 NDR_CHECK(ndr_pull_align(ndr
, 4));
2233 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->SensitiveDataFlag
));
2234 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->DataLength
));
2236 uint32_t _flags_save_uint8
= ndr
->flags
;
2237 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2238 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_SensitiveData
));
2239 if (_ptr_SensitiveData
) {
2240 NDR_PULL_ALLOC(ndr
, r
->SensitiveData
);
2242 r
->SensitiveData
= NULL
;
2244 ndr
->flags
= _flags_save_uint8
;
2247 if (ndr_flags
& NDR_BUFFERS
) {
2249 uint32_t _flags_save_uint8
= ndr
->flags
;
2250 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
2251 if (r
->SensitiveData
) {
2252 _mem_save_SensitiveData_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2253 NDR_PULL_SET_MEM_CTX(ndr
, r
->SensitiveData
, 0);
2254 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->SensitiveData
));
2255 NDR_PULL_ALLOC_N(ndr
, r
->SensitiveData
, ndr_get_array_size(ndr
, &r
->SensitiveData
));
2256 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->SensitiveData
, ndr_get_array_size(ndr
, &r
->SensitiveData
)));
2257 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_SensitiveData_0
, 0);
2259 ndr
->flags
= _flags_save_uint8
;
2261 if (r
->SensitiveData
) {
2262 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->SensitiveData
, r
->DataLength
));
2265 return NT_STATUS_OK
;
2268 _PUBLIC_
void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print
*ndr
, const char *name
, const struct netr_USER_PRIVATE_INFO
*r
)
2270 ndr_print_struct(ndr
, name
, "netr_USER_PRIVATE_INFO");
2272 ndr_print_uint8(ndr
, "SensitiveDataFlag", r
->SensitiveDataFlag
);
2273 ndr_print_uint32(ndr
, "DataLength", r
->DataLength
);
2274 ndr_print_ptr(ndr
, "SensitiveData", r
->SensitiveData
);
2276 if (r
->SensitiveData
) {
2277 ndr_print_array_uint8(ndr
, "SensitiveData", r
->SensitiveData
, r
->DataLength
);
2283 NTSTATUS
ndr_push_netr_DELTA_USER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_USER
*r
)
2285 if (ndr_flags
& NDR_SCALARS
) {
2286 NDR_CHECK(ndr_push_align(ndr
, 4));
2287 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2288 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2289 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2290 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->primary_gid
));
2291 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2292 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2293 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2294 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2295 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2296 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logon
));
2297 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_logoff
));
2298 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2299 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->bad_password_count
));
2300 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logon_count
));
2301 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_password_change
));
2302 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->acct_expiry
));
2303 NDR_CHECK(ndr_push_samr_AcctFlags(ndr
, NDR_SCALARS
, r
->acct_flags
));
2304 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2305 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2306 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->nt_password_present
));
2307 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->lm_password_present
));
2308 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->password_expired
));
2309 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2310 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->parameters
));
2311 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->country_code
));
2312 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->code_page
));
2313 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr
, NDR_SCALARS
, &r
->user_private_info
));
2314 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2315 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2316 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2317 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2318 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2319 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2320 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2321 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2322 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2323 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2325 if (ndr_flags
& NDR_BUFFERS
) {
2326 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2327 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2328 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2329 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2330 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2331 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2332 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2333 NDR_CHECK(ndr_push_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2334 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_BUFFERS
, &r
->lmpassword
));
2335 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_BUFFERS
, &r
->ntpassword
));
2336 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2337 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->parameters
));
2338 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr
, NDR_BUFFERS
, &r
->user_private_info
));
2339 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2340 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2341 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2342 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2343 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2345 return NT_STATUS_OK
;
2348 NTSTATUS
ndr_pull_netr_DELTA_USER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_USER
*r
)
2350 if (ndr_flags
& NDR_SCALARS
) {
2351 NDR_CHECK(ndr_pull_align(ndr
, 4));
2352 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->account_name
));
2353 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->full_name
));
2354 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2355 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->primary_gid
));
2356 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_directory
));
2357 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->home_drive
));
2358 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->logon_script
));
2359 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2360 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->workstations
));
2361 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logon
));
2362 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_logoff
));
2363 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_SCALARS
, &r
->logon_hours
));
2364 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->bad_password_count
));
2365 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logon_count
));
2366 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_password_change
));
2367 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->acct_expiry
));
2368 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr
, NDR_SCALARS
, &r
->acct_flags
));
2369 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->lmpassword
));
2370 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
, &r
->ntpassword
));
2371 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->nt_password_present
));
2372 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->lm_password_present
));
2373 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->password_expired
));
2374 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2375 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->parameters
));
2376 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->country_code
));
2377 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->code_page
));
2378 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr
, NDR_SCALARS
, &r
->user_private_info
));
2379 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2380 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2381 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->profile_path
));
2382 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2383 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2384 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2385 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2386 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2387 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2388 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2390 if (ndr_flags
& NDR_BUFFERS
) {
2391 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->account_name
));
2392 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->full_name
));
2393 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_directory
));
2394 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->home_drive
));
2395 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->logon_script
));
2396 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2397 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->workstations
));
2398 NDR_CHECK(ndr_pull_samr_LogonHours(ndr
, NDR_BUFFERS
, &r
->logon_hours
));
2399 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_BUFFERS
, &r
->lmpassword
));
2400 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_BUFFERS
, &r
->ntpassword
));
2401 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2402 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->parameters
));
2403 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr
, NDR_BUFFERS
, &r
->user_private_info
));
2404 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2405 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->profile_path
));
2406 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2407 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2408 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2410 return NT_STATUS_OK
;
2413 _PUBLIC_
void ndr_print_netr_DELTA_USER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_USER
*r
)
2415 ndr_print_struct(ndr
, name
, "netr_DELTA_USER");
2417 ndr_print_lsa_String(ndr
, "account_name", &r
->account_name
);
2418 ndr_print_lsa_String(ndr
, "full_name", &r
->full_name
);
2419 ndr_print_uint32(ndr
, "rid", r
->rid
);
2420 ndr_print_uint32(ndr
, "primary_gid", r
->primary_gid
);
2421 ndr_print_lsa_String(ndr
, "home_directory", &r
->home_directory
);
2422 ndr_print_lsa_String(ndr
, "home_drive", &r
->home_drive
);
2423 ndr_print_lsa_String(ndr
, "logon_script", &r
->logon_script
);
2424 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2425 ndr_print_lsa_String(ndr
, "workstations", &r
->workstations
);
2426 ndr_print_NTTIME(ndr
, "last_logon", r
->last_logon
);
2427 ndr_print_NTTIME(ndr
, "last_logoff", r
->last_logoff
);
2428 ndr_print_samr_LogonHours(ndr
, "logon_hours", &r
->logon_hours
);
2429 ndr_print_uint16(ndr
, "bad_password_count", r
->bad_password_count
);
2430 ndr_print_uint16(ndr
, "logon_count", r
->logon_count
);
2431 ndr_print_NTTIME(ndr
, "last_password_change", r
->last_password_change
);
2432 ndr_print_NTTIME(ndr
, "acct_expiry", r
->acct_expiry
);
2433 ndr_print_samr_AcctFlags(ndr
, "acct_flags", r
->acct_flags
);
2434 ndr_print_samr_Password(ndr
, "lmpassword", &r
->lmpassword
);
2435 ndr_print_samr_Password(ndr
, "ntpassword", &r
->ntpassword
);
2436 ndr_print_uint8(ndr
, "nt_password_present", r
->nt_password_present
);
2437 ndr_print_uint8(ndr
, "lm_password_present", r
->lm_password_present
);
2438 ndr_print_uint8(ndr
, "password_expired", r
->password_expired
);
2439 ndr_print_lsa_String(ndr
, "comment", &r
->comment
);
2440 ndr_print_lsa_String(ndr
, "parameters", &r
->parameters
);
2441 ndr_print_uint16(ndr
, "country_code", r
->country_code
);
2442 ndr_print_uint16(ndr
, "code_page", r
->code_page
);
2443 ndr_print_netr_USER_PRIVATE_INFO(ndr
, "user_private_info", &r
->user_private_info
);
2444 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2445 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2446 ndr_print_lsa_String(ndr
, "profile_path", &r
->profile_path
);
2447 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2448 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2449 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2450 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2451 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2452 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2453 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2457 NTSTATUS
ndr_push_netr_DELTA_DOMAIN(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DOMAIN
*r
)
2459 if (ndr_flags
& NDR_SCALARS
) {
2460 NDR_CHECK(ndr_push_align(ndr
, 4));
2461 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
2462 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2463 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->force_logoff_time
));
2464 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->min_password_length
));
2465 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->password_history_length
));
2466 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->max_password_age
));
2467 NDR_CHECK(ndr_push_dlong(ndr
, NDR_SCALARS
, r
->min_password_age
));
2468 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
2469 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->domain_create_time
));
2470 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2471 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2472 NDR_CHECK(ndr_push_netr_AcctLockStr(ndr
, NDR_SCALARS
, &r
->account_lockout
));
2473 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2474 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2475 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2476 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_to_chgpass
));
2477 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2478 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2479 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2481 if (ndr_flags
& NDR_BUFFERS
) {
2482 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
2483 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2484 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2485 NDR_CHECK(ndr_push_netr_AcctLockStr(ndr
, NDR_BUFFERS
, &r
->account_lockout
));
2486 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2487 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2488 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2490 return NT_STATUS_OK
;
2493 NTSTATUS
ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DOMAIN
*r
)
2495 if (ndr_flags
& NDR_SCALARS
) {
2496 NDR_CHECK(ndr_pull_align(ndr
, 4));
2497 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
2498 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->comment
));
2499 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->force_logoff_time
));
2500 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->min_password_length
));
2501 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->password_history_length
));
2502 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->max_password_age
));
2503 NDR_CHECK(ndr_pull_dlong(ndr
, NDR_SCALARS
, &r
->min_password_age
));
2504 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
2505 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->domain_create_time
));
2506 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2507 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2508 NDR_CHECK(ndr_pull_netr_AcctLockStr(ndr
, NDR_SCALARS
, &r
->account_lockout
));
2509 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2510 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2511 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2512 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_to_chgpass
));
2513 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2514 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2515 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2517 if (ndr_flags
& NDR_BUFFERS
) {
2518 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
2519 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->comment
));
2520 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2521 NDR_CHECK(ndr_pull_netr_AcctLockStr(ndr
, NDR_BUFFERS
, &r
->account_lockout
));
2522 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2523 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2524 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2526 return NT_STATUS_OK
;
2529 _PUBLIC_
void ndr_print_netr_DELTA_DOMAIN(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DOMAIN
*r
)
2531 ndr_print_struct(ndr
, name
, "netr_DELTA_DOMAIN");
2533 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
2534 ndr_print_lsa_String(ndr
, "comment", &r
->comment
);
2535 ndr_print_dlong(ndr
, "force_logoff_time", r
->force_logoff_time
);
2536 ndr_print_uint16(ndr
, "min_password_length", r
->min_password_length
);
2537 ndr_print_uint16(ndr
, "password_history_length", r
->password_history_length
);
2538 ndr_print_dlong(ndr
, "max_password_age", r
->max_password_age
);
2539 ndr_print_dlong(ndr
, "min_password_age", r
->min_password_age
);
2540 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
2541 ndr_print_NTTIME(ndr
, "domain_create_time", r
->domain_create_time
);
2542 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2543 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2544 ndr_print_netr_AcctLockStr(ndr
, "account_lockout", &r
->account_lockout
);
2545 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2546 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2547 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2548 ndr_print_uint32(ndr
, "logon_to_chgpass", r
->logon_to_chgpass
);
2549 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2550 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2551 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2555 NTSTATUS
ndr_push_netr_DELTA_GROUP(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_GROUP
*r
)
2557 if (ndr_flags
& NDR_SCALARS
) {
2558 NDR_CHECK(ndr_push_align(ndr
, 4));
2559 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->group_name
));
2560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2561 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attributes
));
2562 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2563 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2564 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2565 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2566 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2567 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2568 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2570 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2571 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2572 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2574 if (ndr_flags
& NDR_BUFFERS
) {
2575 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->group_name
));
2576 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2577 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2578 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2579 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2580 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2581 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2583 return NT_STATUS_OK
;
2586 NTSTATUS
ndr_pull_netr_DELTA_GROUP(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_GROUP
*r
)
2588 if (ndr_flags
& NDR_SCALARS
) {
2589 NDR_CHECK(ndr_pull_align(ndr
, 4));
2590 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->group_name
));
2591 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2592 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attributes
));
2593 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2594 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2595 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2596 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2597 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2598 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2599 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2600 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2601 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2602 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2603 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2605 if (ndr_flags
& NDR_BUFFERS
) {
2606 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->group_name
));
2607 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2608 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2609 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2610 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2611 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2612 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2614 return NT_STATUS_OK
;
2617 _PUBLIC_
void ndr_print_netr_DELTA_GROUP(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_GROUP
*r
)
2619 ndr_print_struct(ndr
, name
, "netr_DELTA_GROUP");
2621 ndr_print_lsa_String(ndr
, "group_name", &r
->group_name
);
2622 ndr_print_uint32(ndr
, "rid", r
->rid
);
2623 ndr_print_uint32(ndr
, "attributes", r
->attributes
);
2624 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2625 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2626 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2627 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2628 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2629 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2630 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2631 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2632 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2633 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2634 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2638 NTSTATUS
ndr_push_netr_DELTA_RENAME(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_RENAME
*r
)
2640 if (ndr_flags
& NDR_SCALARS
) {
2641 NDR_CHECK(ndr_push_align(ndr
, 4));
2642 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->OldName
));
2643 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->NewName
));
2644 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2645 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2646 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2647 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2648 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2649 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2650 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2653 if (ndr_flags
& NDR_BUFFERS
) {
2654 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->OldName
));
2655 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->NewName
));
2656 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2657 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2658 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2659 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2661 return NT_STATUS_OK
;
2664 NTSTATUS
ndr_pull_netr_DELTA_RENAME(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_RENAME
*r
)
2666 if (ndr_flags
& NDR_SCALARS
) {
2667 NDR_CHECK(ndr_pull_align(ndr
, 4));
2668 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->OldName
));
2669 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->NewName
));
2670 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
2671 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2672 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2673 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2674 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2675 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2676 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2677 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2679 if (ndr_flags
& NDR_BUFFERS
) {
2680 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->OldName
));
2681 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->NewName
));
2682 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
2683 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2684 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2685 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2687 return NT_STATUS_OK
;
2690 _PUBLIC_
void ndr_print_netr_DELTA_RENAME(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_RENAME
*r
)
2692 ndr_print_struct(ndr
, name
, "netr_DELTA_RENAME");
2694 ndr_print_lsa_String(ndr
, "OldName", &r
->OldName
);
2695 ndr_print_lsa_String(ndr
, "NewName", &r
->NewName
);
2696 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
2697 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2698 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2699 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2700 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2701 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2702 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2703 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2707 NTSTATUS
ndr_push_netr_DELTA_GROUP_MEMBER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_GROUP_MEMBER
*r
)
2709 uint32_t cntr_rids_1
;
2710 uint32_t cntr_attribs_1
;
2711 if (ndr_flags
& NDR_SCALARS
) {
2712 NDR_CHECK(ndr_push_align(ndr
, 4));
2713 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rids
));
2714 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->attribs
));
2715 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
2717 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
2718 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
2719 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
2721 if (ndr_flags
& NDR_BUFFERS
) {
2723 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2724 for (cntr_rids_1
= 0; cntr_rids_1
< r
->num_rids
; cntr_rids_1
++) {
2725 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rids
[cntr_rids_1
]));
2729 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_rids
));
2730 for (cntr_attribs_1
= 0; cntr_attribs_1
< r
->num_rids
; cntr_attribs_1
++) {
2731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->attribs
[cntr_attribs_1
]));
2735 return NT_STATUS_OK
;
2738 NTSTATUS
ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_GROUP_MEMBER
*r
)
2741 uint32_t cntr_rids_1
;
2742 TALLOC_CTX
*_mem_save_rids_0
;
2743 TALLOC_CTX
*_mem_save_rids_1
;
2744 uint32_t _ptr_attribs
;
2745 uint32_t cntr_attribs_1
;
2746 TALLOC_CTX
*_mem_save_attribs_0
;
2747 TALLOC_CTX
*_mem_save_attribs_1
;
2748 if (ndr_flags
& NDR_SCALARS
) {
2749 NDR_CHECK(ndr_pull_align(ndr
, 4));
2750 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rids
));
2752 NDR_PULL_ALLOC(ndr
, r
->rids
);
2756 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_attribs
));
2758 NDR_PULL_ALLOC(ndr
, r
->attribs
);
2762 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_rids
));
2763 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
2764 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
2765 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
2766 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
2768 if (ndr_flags
& NDR_BUFFERS
) {
2770 _mem_save_rids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2771 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
2772 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->rids
));
2773 NDR_PULL_ALLOC_N(ndr
, r
->rids
, ndr_get_array_size(ndr
, &r
->rids
));
2774 _mem_save_rids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
2775 NDR_PULL_SET_MEM_CTX(ndr
, r
->rids
, 0);
2776 for (cntr_rids_1
= 0; cntr_rids_1
< r
->num_rids
; cntr_rids_1
++) {
2777 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rids
[cntr_rids_1
]));
2779 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_1
, 0);
2780 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rids_0
, 0);
2783 _mem_save_attribs_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2784 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribs
, 0);
2785 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->attribs
));
2786 NDR_PULL_ALLOC_N(ndr
, r
->attribs
, ndr_get_array_size(ndr
, &r
->attribs
));
2787 _mem_save_attribs_1
= NDR_PULL_GET_MEM_CTX(ndr
);
2788 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribs
, 0);
2789 for (cntr_attribs_1
= 0; cntr_attribs_1
< r
->num_rids
; cntr_attribs_1
++) {
2790 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->attribs
[cntr_attribs_1
]));
2792 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribs_1
, 0);
2793 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribs_0
, 0);
2796 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->rids
, r
->num_rids
));
2799 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->attribs
, r
->num_rids
));
2802 return NT_STATUS_OK
;
2805 _PUBLIC_
void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_GROUP_MEMBER
*r
)
2807 uint32_t cntr_rids_1
;
2808 uint32_t cntr_attribs_1
;
2809 ndr_print_struct(ndr
, name
, "netr_DELTA_GROUP_MEMBER");
2811 ndr_print_ptr(ndr
, "rids", r
->rids
);
2814 ndr
->print(ndr
, "%s: ARRAY(%d)", "rids", r
->num_rids
);
2816 for (cntr_rids_1
=0;cntr_rids_1
<r
->num_rids
;cntr_rids_1
++) {
2818 asprintf(&idx_1
, "[%d]", cntr_rids_1
);
2820 ndr_print_uint32(ndr
, "rids", r
->rids
[cntr_rids_1
]);
2827 ndr_print_ptr(ndr
, "attribs", r
->attribs
);
2830 ndr
->print(ndr
, "%s: ARRAY(%d)", "attribs", r
->num_rids
);
2832 for (cntr_attribs_1
=0;cntr_attribs_1
<r
->num_rids
;cntr_attribs_1
++) {
2834 asprintf(&idx_1
, "[%d]", cntr_attribs_1
);
2836 ndr_print_uint32(ndr
, "attribs", r
->attribs
[cntr_attribs_1
]);
2843 ndr_print_uint32(ndr
, "num_rids", r
->num_rids
);
2844 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
2845 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
2846 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
2847 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
2851 NTSTATUS
ndr_push_netr_DELTA_ALIAS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ALIAS
*r
)
2853 if (ndr_flags
& NDR_SCALARS
) {
2854 NDR_CHECK(ndr_push_align(ndr
, 4));
2855 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->alias_name
));
2856 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
2857 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
2858 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2859 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2860 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2861 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2862 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2863 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
2864 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
2865 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
2866 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
2868 if (ndr_flags
& NDR_BUFFERS
) {
2869 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->alias_name
));
2870 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2871 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2872 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2873 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2874 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2876 return NT_STATUS_OK
;
2879 NTSTATUS
ndr_pull_netr_DELTA_ALIAS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ALIAS
*r
)
2881 if (ndr_flags
& NDR_SCALARS
) {
2882 NDR_CHECK(ndr_pull_align(ndr
, 4));
2883 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->alias_name
));
2884 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
2885 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
2886 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
2887 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->description
));
2888 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
2889 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
2890 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
2891 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
2892 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
2893 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
2894 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
2896 if (ndr_flags
& NDR_BUFFERS
) {
2897 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->alias_name
));
2898 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
2899 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->description
));
2900 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
2901 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
2902 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
2904 return NT_STATUS_OK
;
2907 _PUBLIC_
void ndr_print_netr_DELTA_ALIAS(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ALIAS
*r
)
2909 ndr_print_struct(ndr
, name
, "netr_DELTA_ALIAS");
2911 ndr_print_lsa_String(ndr
, "alias_name", &r
->alias_name
);
2912 ndr_print_uint32(ndr
, "rid", r
->rid
);
2913 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
2914 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
2915 ndr_print_lsa_String(ndr
, "description", &r
->description
);
2916 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
2917 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
2918 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
2919 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
2920 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
2921 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
2922 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
2926 NTSTATUS
ndr_push_netr_DELTA_ALIAS_MEMBER(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ALIAS_MEMBER
*r
)
2928 if (ndr_flags
& NDR_SCALARS
) {
2929 NDR_CHECK(ndr_push_align(ndr
, 4));
2930 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_SCALARS
, &r
->sids
));
2931 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
2932 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
2933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
2934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
2936 if (ndr_flags
& NDR_BUFFERS
) {
2937 NDR_CHECK(ndr_push_lsa_SidArray(ndr
, NDR_BUFFERS
, &r
->sids
));
2939 return NT_STATUS_OK
;
2942 NTSTATUS
ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ALIAS_MEMBER
*r
)
2944 if (ndr_flags
& NDR_SCALARS
) {
2945 NDR_CHECK(ndr_pull_align(ndr
, 4));
2946 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_SCALARS
, &r
->sids
));
2947 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
2948 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
2949 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
2950 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
2952 if (ndr_flags
& NDR_BUFFERS
) {
2953 NDR_CHECK(ndr_pull_lsa_SidArray(ndr
, NDR_BUFFERS
, &r
->sids
));
2955 return NT_STATUS_OK
;
2958 _PUBLIC_
void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ALIAS_MEMBER
*r
)
2960 ndr_print_struct(ndr
, name
, "netr_DELTA_ALIAS_MEMBER");
2962 ndr_print_lsa_SidArray(ndr
, "sids", &r
->sids
);
2963 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
2964 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
2965 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
2966 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
2970 NTSTATUS
ndr_push_netr_QUOTA_LIMITS(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_QUOTA_LIMITS
*r
)
2972 if (ndr_flags
& NDR_SCALARS
) {
2973 NDR_CHECK(ndr_push_align(ndr
, 4));
2974 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pagedpoollimit
));
2975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nonpagedpoollimit
));
2976 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minimumworkingsetsize
));
2977 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maximumworkingsetsize
));
2978 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pagefilelimit
));
2979 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->timelimit
));
2981 if (ndr_flags
& NDR_BUFFERS
) {
2983 return NT_STATUS_OK
;
2986 NTSTATUS
ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_QUOTA_LIMITS
*r
)
2988 if (ndr_flags
& NDR_SCALARS
) {
2989 NDR_CHECK(ndr_pull_align(ndr
, 4));
2990 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pagedpoollimit
));
2991 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nonpagedpoollimit
));
2992 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minimumworkingsetsize
));
2993 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maximumworkingsetsize
));
2994 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pagefilelimit
));
2995 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->timelimit
));
2997 if (ndr_flags
& NDR_BUFFERS
) {
2999 return NT_STATUS_OK
;
3002 _PUBLIC_
void ndr_print_netr_QUOTA_LIMITS(struct ndr_print
*ndr
, const char *name
, const struct netr_QUOTA_LIMITS
*r
)
3004 ndr_print_struct(ndr
, name
, "netr_QUOTA_LIMITS");
3006 ndr_print_uint32(ndr
, "pagedpoollimit", r
->pagedpoollimit
);
3007 ndr_print_uint32(ndr
, "nonpagedpoollimit", r
->nonpagedpoollimit
);
3008 ndr_print_uint32(ndr
, "minimumworkingsetsize", r
->minimumworkingsetsize
);
3009 ndr_print_uint32(ndr
, "maximumworkingsetsize", r
->maximumworkingsetsize
);
3010 ndr_print_uint32(ndr
, "pagefilelimit", r
->pagefilelimit
);
3011 ndr_print_NTTIME(ndr
, "timelimit", r
->timelimit
);
3015 NTSTATUS
ndr_push_netr_DELTA_POLICY(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_POLICY
*r
)
3017 uint32_t cntr_eventauditoptions_1
;
3018 if (ndr_flags
& NDR_SCALARS
) {
3019 NDR_CHECK(ndr_push_align(ndr
, 4));
3020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlogsize
));
3021 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->auditretentionperiod
));
3022 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->auditingmode
));
3023 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxauditeventcount
));
3024 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->eventauditoptions
));
3025 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->primary_domain_name
));
3026 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
3027 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quota_limits
));
3028 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->sequence_num
));
3029 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->db_create_time
));
3030 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3031 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3032 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3033 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3034 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3035 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3036 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3037 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3039 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3041 if (ndr_flags
& NDR_BUFFERS
) {
3042 if (r
->eventauditoptions
) {
3043 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxauditeventcount
+1));
3044 for (cntr_eventauditoptions_1
= 0; cntr_eventauditoptions_1
< r
->maxauditeventcount
+1; cntr_eventauditoptions_1
++) {
3045 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->eventauditoptions
[cntr_eventauditoptions_1
]));
3048 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary_domain_name
));
3050 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
3052 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3053 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3054 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3055 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3056 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3058 return NT_STATUS_OK
;
3061 NTSTATUS
ndr_pull_netr_DELTA_POLICY(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_POLICY
*r
)
3063 uint32_t _ptr_eventauditoptions
;
3064 uint32_t cntr_eventauditoptions_1
;
3065 TALLOC_CTX
*_mem_save_eventauditoptions_0
;
3066 TALLOC_CTX
*_mem_save_eventauditoptions_1
;
3068 TALLOC_CTX
*_mem_save_sid_0
;
3069 if (ndr_flags
& NDR_SCALARS
) {
3070 NDR_CHECK(ndr_pull_align(ndr
, 4));
3071 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxlogsize
));
3072 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->auditretentionperiod
));
3073 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->auditingmode
));
3074 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxauditeventcount
));
3075 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_eventauditoptions
));
3076 if (_ptr_eventauditoptions
) {
3077 NDR_PULL_ALLOC(ndr
, r
->eventauditoptions
);
3079 r
->eventauditoptions
= NULL
;
3081 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->primary_domain_name
));
3082 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
3084 NDR_PULL_ALLOC(ndr
, r
->sid
);
3088 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quota_limits
));
3089 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->sequence_num
));
3090 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->db_create_time
));
3091 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3092 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3093 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3094 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3095 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3096 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3097 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3098 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3099 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3100 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3102 if (ndr_flags
& NDR_BUFFERS
) {
3103 if (r
->eventauditoptions
) {
3104 _mem_save_eventauditoptions_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3105 NDR_PULL_SET_MEM_CTX(ndr
, r
->eventauditoptions
, 0);
3106 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->eventauditoptions
));
3107 NDR_PULL_ALLOC_N(ndr
, r
->eventauditoptions
, ndr_get_array_size(ndr
, &r
->eventauditoptions
));
3108 _mem_save_eventauditoptions_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3109 NDR_PULL_SET_MEM_CTX(ndr
, r
->eventauditoptions
, 0);
3110 for (cntr_eventauditoptions_1
= 0; cntr_eventauditoptions_1
< r
->maxauditeventcount
+1; cntr_eventauditoptions_1
++) {
3111 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->eventauditoptions
[cntr_eventauditoptions_1
]));
3113 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eventauditoptions_1
, 0);
3114 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_eventauditoptions_0
, 0);
3116 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->primary_domain_name
));
3118 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3119 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
3120 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
3121 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
3123 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3124 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3125 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3126 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3127 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3128 if (r
->eventauditoptions
) {
3129 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->eventauditoptions
, r
->maxauditeventcount
+1));
3132 return NT_STATUS_OK
;
3135 _PUBLIC_
void ndr_print_netr_DELTA_POLICY(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_POLICY
*r
)
3137 uint32_t cntr_eventauditoptions_1
;
3138 ndr_print_struct(ndr
, name
, "netr_DELTA_POLICY");
3140 ndr_print_uint32(ndr
, "maxlogsize", r
->maxlogsize
);
3141 ndr_print_NTTIME(ndr
, "auditretentionperiod", r
->auditretentionperiod
);
3142 ndr_print_uint8(ndr
, "auditingmode", r
->auditingmode
);
3143 ndr_print_uint32(ndr
, "maxauditeventcount", r
->maxauditeventcount
);
3144 ndr_print_ptr(ndr
, "eventauditoptions", r
->eventauditoptions
);
3146 if (r
->eventauditoptions
) {
3147 ndr
->print(ndr
, "%s: ARRAY(%d)", "eventauditoptions", r
->maxauditeventcount
+1);
3149 for (cntr_eventauditoptions_1
=0;cntr_eventauditoptions_1
<r
->maxauditeventcount
+1;cntr_eventauditoptions_1
++) {
3151 asprintf(&idx_1
, "[%d]", cntr_eventauditoptions_1
);
3153 ndr_print_uint32(ndr
, "eventauditoptions", r
->eventauditoptions
[cntr_eventauditoptions_1
]);
3160 ndr_print_lsa_String(ndr
, "primary_domain_name", &r
->primary_domain_name
);
3161 ndr_print_ptr(ndr
, "sid", r
->sid
);
3164 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
3167 ndr_print_netr_QUOTA_LIMITS(ndr
, "quota_limits", &r
->quota_limits
);
3168 ndr_print_udlong(ndr
, "sequence_num", r
->sequence_num
);
3169 ndr_print_NTTIME(ndr
, "db_create_time", r
->db_create_time
);
3170 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3171 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3172 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3173 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3174 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3175 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3176 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3177 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3178 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3179 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3183 NTSTATUS
ndr_push_netr_DELTA_TRUSTED_DOMAIN(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3185 uint32_t cntr_controller_names_1
;
3186 if (ndr_flags
& NDR_SCALARS
) {
3187 NDR_CHECK(ndr_push_align(ndr
, 4));
3188 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
3189 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_controllers
));
3190 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->controller_names
));
3191 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3192 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3193 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3194 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3195 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3196 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3197 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->posix_offset
));
3198 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3199 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3200 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3202 if (ndr_flags
& NDR_BUFFERS
) {
3203 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
3204 if (r
->controller_names
) {
3205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_controllers
));
3206 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3207 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->controller_names
[cntr_controller_names_1
]));
3209 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3210 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->controller_names
[cntr_controller_names_1
]));
3213 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3214 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3215 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3216 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3217 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3219 return NT_STATUS_OK
;
3222 NTSTATUS
ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3224 uint32_t _ptr_controller_names
;
3225 uint32_t cntr_controller_names_1
;
3226 TALLOC_CTX
*_mem_save_controller_names_0
;
3227 TALLOC_CTX
*_mem_save_controller_names_1
;
3228 if (ndr_flags
& NDR_SCALARS
) {
3229 NDR_CHECK(ndr_pull_align(ndr
, 4));
3230 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domain_name
));
3231 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_controllers
));
3232 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_controller_names
));
3233 if (_ptr_controller_names
) {
3234 NDR_PULL_ALLOC(ndr
, r
->controller_names
);
3236 r
->controller_names
= NULL
;
3238 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3239 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3240 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3241 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3242 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3243 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3244 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->posix_offset
));
3245 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3246 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3247 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3249 if (ndr_flags
& NDR_BUFFERS
) {
3250 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domain_name
));
3251 if (r
->controller_names
) {
3252 _mem_save_controller_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3253 NDR_PULL_SET_MEM_CTX(ndr
, r
->controller_names
, 0);
3254 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->controller_names
));
3255 NDR_PULL_ALLOC_N(ndr
, r
->controller_names
, ndr_get_array_size(ndr
, &r
->controller_names
));
3256 _mem_save_controller_names_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3257 NDR_PULL_SET_MEM_CTX(ndr
, r
->controller_names
, 0);
3258 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3259 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->controller_names
[cntr_controller_names_1
]));
3261 for (cntr_controller_names_1
= 0; cntr_controller_names_1
< r
->num_controllers
; cntr_controller_names_1
++) {
3262 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->controller_names
[cntr_controller_names_1
]));
3264 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_controller_names_1
, 0);
3265 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_controller_names_0
, 0);
3267 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3268 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3269 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3270 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3271 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3272 if (r
->controller_names
) {
3273 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->controller_names
, r
->num_controllers
));
3276 return NT_STATUS_OK
;
3279 _PUBLIC_
void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_TRUSTED_DOMAIN
*r
)
3281 uint32_t cntr_controller_names_1
;
3282 ndr_print_struct(ndr
, name
, "netr_DELTA_TRUSTED_DOMAIN");
3284 ndr_print_lsa_String(ndr
, "domain_name", &r
->domain_name
);
3285 ndr_print_uint32(ndr
, "num_controllers", r
->num_controllers
);
3286 ndr_print_ptr(ndr
, "controller_names", r
->controller_names
);
3288 if (r
->controller_names
) {
3289 ndr
->print(ndr
, "%s: ARRAY(%d)", "controller_names", r
->num_controllers
);
3291 for (cntr_controller_names_1
=0;cntr_controller_names_1
<r
->num_controllers
;cntr_controller_names_1
++) {
3293 asprintf(&idx_1
, "[%d]", cntr_controller_names_1
);
3295 ndr_print_lsa_String(ndr
, "controller_names", &r
->controller_names
[cntr_controller_names_1
]);
3302 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3303 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3304 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3305 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3306 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3307 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3308 ndr_print_uint32(ndr
, "posix_offset", r
->posix_offset
);
3309 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3310 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3311 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3315 NTSTATUS
ndr_push_netr_DELTA_DELETE_TRUST(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_TRUST
*r
)
3317 if (ndr_flags
& NDR_SCALARS
) {
3318 NDR_CHECK(ndr_push_align(ndr
, 2));
3319 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3321 if (ndr_flags
& NDR_BUFFERS
) {
3323 return NT_STATUS_OK
;
3326 NTSTATUS
ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_TRUST
*r
)
3328 if (ndr_flags
& NDR_SCALARS
) {
3329 NDR_CHECK(ndr_pull_align(ndr
, 2));
3330 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3332 if (ndr_flags
& NDR_BUFFERS
) {
3334 return NT_STATUS_OK
;
3337 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_TRUST
*r
)
3339 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_TRUST");
3341 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3345 NTSTATUS
ndr_push_netr_DELTA_ACCOUNT(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ACCOUNT
*r
)
3347 uint32_t cntr_privilege_attrib_1
;
3348 uint32_t cntr_privilege_name_1
;
3349 if (ndr_flags
& NDR_SCALARS
) {
3350 NDR_CHECK(ndr_push_align(ndr
, 4));
3351 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3352 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_control
));
3353 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->privilege_attrib
));
3354 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->privilege_name
));
3355 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quotalimits
));
3356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->system_flags
));
3357 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3358 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3359 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3360 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3361 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3362 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3364 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3365 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3366 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3368 if (ndr_flags
& NDR_BUFFERS
) {
3369 if (r
->privilege_attrib
) {
3370 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3371 for (cntr_privilege_attrib_1
= 0; cntr_privilege_attrib_1
< r
->privilege_entries
; cntr_privilege_attrib_1
++) {
3372 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_attrib
[cntr_privilege_attrib_1
]));
3375 if (r
->privilege_name
) {
3376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->privilege_entries
));
3377 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3378 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3380 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3381 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3384 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3385 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3386 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3387 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3388 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3390 return NT_STATUS_OK
;
3393 NTSTATUS
ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ACCOUNT
*r
)
3395 uint32_t _ptr_privilege_attrib
;
3396 uint32_t cntr_privilege_attrib_1
;
3397 TALLOC_CTX
*_mem_save_privilege_attrib_0
;
3398 TALLOC_CTX
*_mem_save_privilege_attrib_1
;
3399 uint32_t _ptr_privilege_name
;
3400 uint32_t cntr_privilege_name_1
;
3401 TALLOC_CTX
*_mem_save_privilege_name_0
;
3402 TALLOC_CTX
*_mem_save_privilege_name_1
;
3403 if (ndr_flags
& NDR_SCALARS
) {
3404 NDR_CHECK(ndr_pull_align(ndr
, 4));
3405 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_entries
));
3406 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_control
));
3407 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_privilege_attrib
));
3408 if (_ptr_privilege_attrib
) {
3409 NDR_PULL_ALLOC(ndr
, r
->privilege_attrib
);
3411 r
->privilege_attrib
= NULL
;
3413 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_privilege_name
));
3414 if (_ptr_privilege_name
) {
3415 NDR_PULL_ALLOC(ndr
, r
->privilege_name
);
3417 r
->privilege_name
= NULL
;
3419 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr
, NDR_SCALARS
, &r
->quotalimits
));
3420 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->system_flags
));
3421 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3422 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3423 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3424 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3425 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3426 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3427 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3428 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3429 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3430 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3432 if (ndr_flags
& NDR_BUFFERS
) {
3433 if (r
->privilege_attrib
) {
3434 _mem_save_privilege_attrib_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3435 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_attrib
, 0);
3436 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->privilege_attrib
));
3437 NDR_PULL_ALLOC_N(ndr
, r
->privilege_attrib
, ndr_get_array_size(ndr
, &r
->privilege_attrib
));
3438 _mem_save_privilege_attrib_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3439 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_attrib
, 0);
3440 for (cntr_privilege_attrib_1
= 0; cntr_privilege_attrib_1
< r
->privilege_entries
; cntr_privilege_attrib_1
++) {
3441 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->privilege_attrib
[cntr_privilege_attrib_1
]));
3443 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_attrib_1
, 0);
3444 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_attrib_0
, 0);
3446 if (r
->privilege_name
) {
3447 _mem_save_privilege_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3448 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_name
, 0);
3449 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->privilege_name
));
3450 NDR_PULL_ALLOC_N(ndr
, r
->privilege_name
, ndr_get_array_size(ndr
, &r
->privilege_name
));
3451 _mem_save_privilege_name_1
= NDR_PULL_GET_MEM_CTX(ndr
);
3452 NDR_PULL_SET_MEM_CTX(ndr
, r
->privilege_name
, 0);
3453 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3454 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3456 for (cntr_privilege_name_1
= 0; cntr_privilege_name_1
< r
->privilege_entries
; cntr_privilege_name_1
++) {
3457 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->privilege_name
[cntr_privilege_name_1
]));
3459 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_name_1
, 0);
3460 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_privilege_name_0
, 0);
3462 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3463 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3464 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3465 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3466 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3467 if (r
->privilege_attrib
) {
3468 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->privilege_attrib
, r
->privilege_entries
));
3470 if (r
->privilege_name
) {
3471 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->privilege_name
, r
->privilege_entries
));
3474 return NT_STATUS_OK
;
3477 _PUBLIC_
void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ACCOUNT
*r
)
3479 uint32_t cntr_privilege_attrib_1
;
3480 uint32_t cntr_privilege_name_1
;
3481 ndr_print_struct(ndr
, name
, "netr_DELTA_ACCOUNT");
3483 ndr_print_uint32(ndr
, "privilege_entries", r
->privilege_entries
);
3484 ndr_print_uint32(ndr
, "privilege_control", r
->privilege_control
);
3485 ndr_print_ptr(ndr
, "privilege_attrib", r
->privilege_attrib
);
3487 if (r
->privilege_attrib
) {
3488 ndr
->print(ndr
, "%s: ARRAY(%d)", "privilege_attrib", r
->privilege_entries
);
3490 for (cntr_privilege_attrib_1
=0;cntr_privilege_attrib_1
<r
->privilege_entries
;cntr_privilege_attrib_1
++) {
3492 asprintf(&idx_1
, "[%d]", cntr_privilege_attrib_1
);
3494 ndr_print_uint32(ndr
, "privilege_attrib", r
->privilege_attrib
[cntr_privilege_attrib_1
]);
3501 ndr_print_ptr(ndr
, "privilege_name", r
->privilege_name
);
3503 if (r
->privilege_name
) {
3504 ndr
->print(ndr
, "%s: ARRAY(%d)", "privilege_name", r
->privilege_entries
);
3506 for (cntr_privilege_name_1
=0;cntr_privilege_name_1
<r
->privilege_entries
;cntr_privilege_name_1
++) {
3508 asprintf(&idx_1
, "[%d]", cntr_privilege_name_1
);
3510 ndr_print_lsa_String(ndr
, "privilege_name", &r
->privilege_name
[cntr_privilege_name_1
]);
3517 ndr_print_netr_QUOTA_LIMITS(ndr
, "quotalimits", &r
->quotalimits
);
3518 ndr_print_uint32(ndr
, "system_flags", r
->system_flags
);
3519 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3520 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3521 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3522 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3523 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3524 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3525 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3526 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3527 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3528 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3532 NTSTATUS
ndr_push_netr_DELTA_DELETE_ACCOUNT(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_ACCOUNT
*r
)
3534 if (ndr_flags
& NDR_SCALARS
) {
3535 NDR_CHECK(ndr_push_align(ndr
, 2));
3536 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3538 if (ndr_flags
& NDR_BUFFERS
) {
3540 return NT_STATUS_OK
;
3543 NTSTATUS
ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_ACCOUNT
*r
)
3545 if (ndr_flags
& NDR_SCALARS
) {
3546 NDR_CHECK(ndr_pull_align(ndr
, 2));
3547 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3549 if (ndr_flags
& NDR_BUFFERS
) {
3551 return NT_STATUS_OK
;
3554 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_ACCOUNT
*r
)
3556 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_ACCOUNT");
3558 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3562 NTSTATUS
ndr_push_netr_DELTA_DELETE_SECRET(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_DELETE_SECRET
*r
)
3564 if (ndr_flags
& NDR_SCALARS
) {
3565 NDR_CHECK(ndr_push_align(ndr
, 2));
3566 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown
));
3568 if (ndr_flags
& NDR_BUFFERS
) {
3570 return NT_STATUS_OK
;
3573 NTSTATUS
ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_DELETE_SECRET
*r
)
3575 if (ndr_flags
& NDR_SCALARS
) {
3576 NDR_CHECK(ndr_pull_align(ndr
, 2));
3577 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown
));
3579 if (ndr_flags
& NDR_BUFFERS
) {
3581 return NT_STATUS_OK
;
3584 _PUBLIC_
void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_DELETE_SECRET
*r
)
3586 ndr_print_struct(ndr
, name
, "netr_DELTA_DELETE_SECRET");
3588 ndr_print_uint16(ndr
, "unknown", r
->unknown
);
3592 NTSTATUS
ndr_push_netr_CIPHER_VALUE(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_CIPHER_VALUE
*r
)
3594 if (ndr_flags
& NDR_SCALARS
) {
3595 NDR_CHECK(ndr_push_align(ndr
, 4));
3596 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
3597 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlen
));
3598 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->cipher_data
));
3600 if (ndr_flags
& NDR_BUFFERS
) {
3601 if (r
->cipher_data
) {
3602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->maxlen
));
3603 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
3604 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->len
));
3605 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->cipher_data
, r
->len
));
3608 return NT_STATUS_OK
;
3611 NTSTATUS
ndr_pull_netr_CIPHER_VALUE(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CIPHER_VALUE
*r
)
3613 uint32_t _ptr_cipher_data
;
3614 TALLOC_CTX
*_mem_save_cipher_data_0
;
3615 if (ndr_flags
& NDR_SCALARS
) {
3616 NDR_CHECK(ndr_pull_align(ndr
, 4));
3617 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->len
));
3618 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->maxlen
));
3619 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_cipher_data
));
3620 if (_ptr_cipher_data
) {
3621 NDR_PULL_ALLOC(ndr
, r
->cipher_data
);
3623 r
->cipher_data
= NULL
;
3626 if (ndr_flags
& NDR_BUFFERS
) {
3627 if (r
->cipher_data
) {
3628 _mem_save_cipher_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3629 NDR_PULL_SET_MEM_CTX(ndr
, r
->cipher_data
, 0);
3630 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->cipher_data
));
3631 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->cipher_data
));
3632 if (ndr_get_array_length(ndr
, &r
->cipher_data
) > ndr_get_array_size(ndr
, &r
->cipher_data
)) {
3633 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->cipher_data
), ndr_get_array_length(ndr
, &r
->cipher_data
));
3635 NDR_PULL_ALLOC_N(ndr
, r
->cipher_data
, ndr_get_array_size(ndr
, &r
->cipher_data
));
3636 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->cipher_data
, ndr_get_array_length(ndr
, &r
->cipher_data
)));
3637 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_cipher_data_0
, 0);
3639 if (r
->cipher_data
) {
3640 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->cipher_data
, r
->maxlen
));
3642 if (r
->cipher_data
) {
3643 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->cipher_data
, r
->len
));
3646 return NT_STATUS_OK
;
3649 _PUBLIC_
void ndr_print_netr_CIPHER_VALUE(struct ndr_print
*ndr
, const char *name
, const struct netr_CIPHER_VALUE
*r
)
3651 ndr_print_struct(ndr
, name
, "netr_CIPHER_VALUE");
3653 ndr_print_uint32(ndr
, "len", r
->len
);
3654 ndr_print_uint32(ndr
, "maxlen", r
->maxlen
);
3655 ndr_print_ptr(ndr
, "cipher_data", r
->cipher_data
);
3657 if (r
->cipher_data
) {
3658 ndr_print_array_uint8(ndr
, "cipher_data", r
->cipher_data
, r
->len
);
3664 NTSTATUS
ndr_push_netr_DELTA_SECRET(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_SECRET
*r
)
3666 if (ndr_flags
& NDR_SCALARS
) {
3667 NDR_CHECK(ndr_push_align(ndr
, 4));
3668 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->current_cipher
));
3669 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->current_cipher_set_time
));
3670 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->old_cipher
));
3671 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->old_cipher_set_time
));
3672 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->SecurityInformation
));
3673 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3674 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3675 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3676 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3677 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3678 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
3679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
3680 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
));
3681 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown8
));
3683 if (ndr_flags
& NDR_BUFFERS
) {
3684 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->current_cipher
));
3685 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->old_cipher
));
3686 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3687 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3688 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3689 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3690 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3692 return NT_STATUS_OK
;
3695 NTSTATUS
ndr_pull_netr_DELTA_SECRET(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_SECRET
*r
)
3697 if (ndr_flags
& NDR_SCALARS
) {
3698 NDR_CHECK(ndr_pull_align(ndr
, 4));
3699 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->current_cipher
));
3700 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->current_cipher_set_time
));
3701 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_SCALARS
, &r
->old_cipher
));
3702 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->old_cipher_set_time
));
3703 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->SecurityInformation
));
3704 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sdbuf
));
3705 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown1
));
3706 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown2
));
3707 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown3
));
3708 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown4
));
3709 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
3710 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
3711 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
));
3712 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown8
));
3714 if (ndr_flags
& NDR_BUFFERS
) {
3715 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->current_cipher
));
3716 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr
, NDR_BUFFERS
, &r
->old_cipher
));
3717 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sdbuf
));
3718 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown1
));
3719 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown2
));
3720 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown3
));
3721 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown4
));
3723 return NT_STATUS_OK
;
3726 _PUBLIC_
void ndr_print_netr_DELTA_SECRET(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_SECRET
*r
)
3728 ndr_print_struct(ndr
, name
, "netr_DELTA_SECRET");
3730 ndr_print_netr_CIPHER_VALUE(ndr
, "current_cipher", &r
->current_cipher
);
3731 ndr_print_NTTIME(ndr
, "current_cipher_set_time", r
->current_cipher_set_time
);
3732 ndr_print_netr_CIPHER_VALUE(ndr
, "old_cipher", &r
->old_cipher
);
3733 ndr_print_NTTIME(ndr
, "old_cipher_set_time", r
->old_cipher_set_time
);
3734 ndr_print_uint32(ndr
, "SecurityInformation", r
->SecurityInformation
);
3735 ndr_print_sec_desc_buf(ndr
, "sdbuf", &r
->sdbuf
);
3736 ndr_print_lsa_String(ndr
, "unknown1", &r
->unknown1
);
3737 ndr_print_lsa_String(ndr
, "unknown2", &r
->unknown2
);
3738 ndr_print_lsa_String(ndr
, "unknown3", &r
->unknown3
);
3739 ndr_print_lsa_String(ndr
, "unknown4", &r
->unknown4
);
3740 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
3741 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
3742 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
);
3743 ndr_print_uint32(ndr
, "unknown8", r
->unknown8
);
3747 NTSTATUS
ndr_push_netr_DeltaEnum(struct ndr_push
*ndr
, int ndr_flags
, enum netr_DeltaEnum r
)
3749 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
3750 return NT_STATUS_OK
;
3753 NTSTATUS
ndr_pull_netr_DeltaEnum(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_DeltaEnum
*r
)
3756 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
3758 return NT_STATUS_OK
;
3761 _PUBLIC_
void ndr_print_netr_DeltaEnum(struct ndr_print
*ndr
, const char *name
, enum netr_DeltaEnum r
)
3763 const char *val
= NULL
;
3766 case NETR_DELTA_DOMAIN
: val
= "NETR_DELTA_DOMAIN"; break;
3767 case NETR_DELTA_GROUP
: val
= "NETR_DELTA_GROUP"; break;
3768 case NETR_DELTA_DELETE_GROUP
: val
= "NETR_DELTA_DELETE_GROUP"; break;
3769 case NETR_DELTA_RENAME_GROUP
: val
= "NETR_DELTA_RENAME_GROUP"; break;
3770 case NETR_DELTA_USER
: val
= "NETR_DELTA_USER"; break;
3771 case NETR_DELTA_DELETE_USER
: val
= "NETR_DELTA_DELETE_USER"; break;
3772 case NETR_DELTA_RENAME_USER
: val
= "NETR_DELTA_RENAME_USER"; break;
3773 case NETR_DELTA_GROUP_MEMBER
: val
= "NETR_DELTA_GROUP_MEMBER"; break;
3774 case NETR_DELTA_ALIAS
: val
= "NETR_DELTA_ALIAS"; break;
3775 case NETR_DELTA_DELETE_ALIAS
: val
= "NETR_DELTA_DELETE_ALIAS"; break;
3776 case NETR_DELTA_RENAME_ALIAS
: val
= "NETR_DELTA_RENAME_ALIAS"; break;
3777 case NETR_DELTA_ALIAS_MEMBER
: val
= "NETR_DELTA_ALIAS_MEMBER"; break;
3778 case NETR_DELTA_POLICY
: val
= "NETR_DELTA_POLICY"; break;
3779 case NETR_DELTA_TRUSTED_DOMAIN
: val
= "NETR_DELTA_TRUSTED_DOMAIN"; break;
3780 case NETR_DELTA_DELETE_TRUST
: val
= "NETR_DELTA_DELETE_TRUST"; break;
3781 case NETR_DELTA_ACCOUNT
: val
= "NETR_DELTA_ACCOUNT"; break;
3782 case NETR_DELTA_DELETE_ACCOUNT
: val
= "NETR_DELTA_DELETE_ACCOUNT"; break;
3783 case NETR_DELTA_SECRET
: val
= "NETR_DELTA_SECRET"; break;
3784 case NETR_DELTA_DELETE_SECRET
: val
= "NETR_DELTA_DELETE_SECRET"; break;
3785 case NETR_DELTA_DELETE_GROUP2
: val
= "NETR_DELTA_DELETE_GROUP2"; break;
3786 case NETR_DELTA_DELETE_USER2
: val
= "NETR_DELTA_DELETE_USER2"; break;
3787 case NETR_DELTA_MODIFY_COUNT
: val
= "NETR_DELTA_MODIFY_COUNT"; break;
3789 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
3792 NTSTATUS
ndr_push_netr_DELTA_UNION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DELTA_UNION
*r
)
3795 level
= ndr_push_get_switch_value(ndr
, r
);
3796 if (ndr_flags
& NDR_SCALARS
) {
3797 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, level
));
3799 case NETR_DELTA_DOMAIN
:
3800 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
3803 case NETR_DELTA_GROUP
:
3804 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group
));
3807 case NETR_DELTA_DELETE_GROUP
:
3810 case NETR_DELTA_RENAME_GROUP
:
3811 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_group
));
3814 case NETR_DELTA_USER
:
3815 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
3818 case NETR_DELTA_DELETE_USER
:
3821 case NETR_DELTA_RENAME_USER
:
3822 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_user
));
3825 case NETR_DELTA_GROUP_MEMBER
:
3826 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group_member
));
3829 case NETR_DELTA_ALIAS
:
3830 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->alias
));
3833 case NETR_DELTA_DELETE_ALIAS
:
3836 case NETR_DELTA_RENAME_ALIAS
:
3837 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->rename_alias
));
3840 case NETR_DELTA_ALIAS_MEMBER
:
3841 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->alias_member
));
3844 case NETR_DELTA_POLICY
:
3845 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->policy
));
3848 case NETR_DELTA_TRUSTED_DOMAIN
:
3849 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusted_domain
));
3852 case NETR_DELTA_DELETE_TRUST
:
3853 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr
, NDR_SCALARS
, &r
->delete_trust
));
3856 case NETR_DELTA_ACCOUNT
:
3857 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->account
));
3860 case NETR_DELTA_DELETE_ACCOUNT
:
3861 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr
, NDR_SCALARS
, &r
->delete_account
));
3864 case NETR_DELTA_SECRET
:
3865 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secret
));
3868 case NETR_DELTA_DELETE_SECRET
:
3869 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr
, NDR_SCALARS
, &r
->delete_secret
));
3872 case NETR_DELTA_DELETE_GROUP2
:
3873 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delete_group
));
3876 case NETR_DELTA_DELETE_USER2
:
3877 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delete_user
));
3880 case NETR_DELTA_MODIFY_COUNT
:
3881 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->modified_count
));
3885 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
3888 if (ndr_flags
& NDR_BUFFERS
) {
3890 case NETR_DELTA_DOMAIN
:
3892 NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
3896 case NETR_DELTA_GROUP
:
3898 NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group
));
3902 case NETR_DELTA_DELETE_GROUP
:
3905 case NETR_DELTA_RENAME_GROUP
:
3906 if (r
->rename_group
) {
3907 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_group
));
3911 case NETR_DELTA_USER
:
3913 NDR_CHECK(ndr_push_netr_DELTA_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->user
));
3917 case NETR_DELTA_DELETE_USER
:
3920 case NETR_DELTA_RENAME_USER
:
3921 if (r
->rename_user
) {
3922 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_user
));
3926 case NETR_DELTA_GROUP_MEMBER
:
3927 if (r
->group_member
) {
3928 NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group_member
));
3932 case NETR_DELTA_ALIAS
:
3934 NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias
));
3938 case NETR_DELTA_DELETE_ALIAS
:
3941 case NETR_DELTA_RENAME_ALIAS
:
3942 if (r
->rename_alias
) {
3943 NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_alias
));
3947 case NETR_DELTA_ALIAS_MEMBER
:
3948 if (r
->alias_member
) {
3949 NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias_member
));
3953 case NETR_DELTA_POLICY
:
3955 NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->policy
));
3959 case NETR_DELTA_TRUSTED_DOMAIN
:
3960 if (r
->trusted_domain
) {
3961 NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->trusted_domain
));
3965 case NETR_DELTA_DELETE_TRUST
:
3968 case NETR_DELTA_ACCOUNT
:
3970 NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->account
));
3974 case NETR_DELTA_DELETE_ACCOUNT
:
3977 case NETR_DELTA_SECRET
:
3979 NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secret
));
3983 case NETR_DELTA_DELETE_SECRET
:
3986 case NETR_DELTA_DELETE_GROUP2
:
3987 if (r
->delete_group
) {
3988 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_group
));
3992 case NETR_DELTA_DELETE_USER2
:
3993 if (r
->delete_user
) {
3994 NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_user
));
3998 case NETR_DELTA_MODIFY_COUNT
:
3999 if (r
->modified_count
) {
4000 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->modified_count
));
4005 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4008 return NT_STATUS_OK
;
4011 NTSTATUS
ndr_pull_netr_DELTA_UNION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DELTA_UNION
*r
)
4015 TALLOC_CTX
*_mem_save_domain_0
;
4016 TALLOC_CTX
*_mem_save_group_0
;
4017 TALLOC_CTX
*_mem_save_rename_group_0
;
4018 TALLOC_CTX
*_mem_save_user_0
;
4019 TALLOC_CTX
*_mem_save_rename_user_0
;
4020 TALLOC_CTX
*_mem_save_group_member_0
;
4021 TALLOC_CTX
*_mem_save_alias_0
;
4022 TALLOC_CTX
*_mem_save_rename_alias_0
;
4023 TALLOC_CTX
*_mem_save_alias_member_0
;
4024 TALLOC_CTX
*_mem_save_policy_0
;
4025 TALLOC_CTX
*_mem_save_trusted_domain_0
;
4026 TALLOC_CTX
*_mem_save_account_0
;
4027 TALLOC_CTX
*_mem_save_secret_0
;
4028 TALLOC_CTX
*_mem_save_delete_group_0
;
4029 TALLOC_CTX
*_mem_save_delete_user_0
;
4030 TALLOC_CTX
*_mem_save_modified_count_0
;
4031 level
= ndr_pull_get_switch_value(ndr
, r
);
4032 if (ndr_flags
& NDR_SCALARS
) {
4033 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
4034 if (_level
!= level
) {
4035 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for netr_DELTA_UNION", _level
);
4038 case NETR_DELTA_DOMAIN
: {
4039 uint32_t _ptr_domain
;
4040 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
4042 NDR_PULL_ALLOC(ndr
, r
->domain
);
4048 case NETR_DELTA_GROUP
: {
4049 uint32_t _ptr_group
;
4050 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group
));
4052 NDR_PULL_ALLOC(ndr
, r
->group
);
4058 case NETR_DELTA_DELETE_GROUP
: {
4061 case NETR_DELTA_RENAME_GROUP
: {
4062 uint32_t _ptr_rename_group
;
4063 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_group
));
4064 if (_ptr_rename_group
) {
4065 NDR_PULL_ALLOC(ndr
, r
->rename_group
);
4067 r
->rename_group
= NULL
;
4071 case NETR_DELTA_USER
: {
4073 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
4075 NDR_PULL_ALLOC(ndr
, r
->user
);
4081 case NETR_DELTA_DELETE_USER
: {
4084 case NETR_DELTA_RENAME_USER
: {
4085 uint32_t _ptr_rename_user
;
4086 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_user
));
4087 if (_ptr_rename_user
) {
4088 NDR_PULL_ALLOC(ndr
, r
->rename_user
);
4090 r
->rename_user
= NULL
;
4094 case NETR_DELTA_GROUP_MEMBER
: {
4095 uint32_t _ptr_group_member
;
4096 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group_member
));
4097 if (_ptr_group_member
) {
4098 NDR_PULL_ALLOC(ndr
, r
->group_member
);
4100 r
->group_member
= NULL
;
4104 case NETR_DELTA_ALIAS
: {
4105 uint32_t _ptr_alias
;
4106 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_alias
));
4108 NDR_PULL_ALLOC(ndr
, r
->alias
);
4114 case NETR_DELTA_DELETE_ALIAS
: {
4117 case NETR_DELTA_RENAME_ALIAS
: {
4118 uint32_t _ptr_rename_alias
;
4119 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_rename_alias
));
4120 if (_ptr_rename_alias
) {
4121 NDR_PULL_ALLOC(ndr
, r
->rename_alias
);
4123 r
->rename_alias
= NULL
;
4127 case NETR_DELTA_ALIAS_MEMBER
: {
4128 uint32_t _ptr_alias_member
;
4129 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_alias_member
));
4130 if (_ptr_alias_member
) {
4131 NDR_PULL_ALLOC(ndr
, r
->alias_member
);
4133 r
->alias_member
= NULL
;
4137 case NETR_DELTA_POLICY
: {
4138 uint32_t _ptr_policy
;
4139 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_policy
));
4141 NDR_PULL_ALLOC(ndr
, r
->policy
);
4147 case NETR_DELTA_TRUSTED_DOMAIN
: {
4148 uint32_t _ptr_trusted_domain
;
4149 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusted_domain
));
4150 if (_ptr_trusted_domain
) {
4151 NDR_PULL_ALLOC(ndr
, r
->trusted_domain
);
4153 r
->trusted_domain
= NULL
;
4157 case NETR_DELTA_DELETE_TRUST
: {
4158 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr
, NDR_SCALARS
, &r
->delete_trust
));
4161 case NETR_DELTA_ACCOUNT
: {
4162 uint32_t _ptr_account
;
4163 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_account
));
4165 NDR_PULL_ALLOC(ndr
, r
->account
);
4171 case NETR_DELTA_DELETE_ACCOUNT
: {
4172 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr
, NDR_SCALARS
, &r
->delete_account
));
4175 case NETR_DELTA_SECRET
: {
4176 uint32_t _ptr_secret
;
4177 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secret
));
4179 NDR_PULL_ALLOC(ndr
, r
->secret
);
4185 case NETR_DELTA_DELETE_SECRET
: {
4186 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr
, NDR_SCALARS
, &r
->delete_secret
));
4189 case NETR_DELTA_DELETE_GROUP2
: {
4190 uint32_t _ptr_delete_group
;
4191 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delete_group
));
4192 if (_ptr_delete_group
) {
4193 NDR_PULL_ALLOC(ndr
, r
->delete_group
);
4195 r
->delete_group
= NULL
;
4199 case NETR_DELTA_DELETE_USER2
: {
4200 uint32_t _ptr_delete_user
;
4201 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delete_user
));
4202 if (_ptr_delete_user
) {
4203 NDR_PULL_ALLOC(ndr
, r
->delete_user
);
4205 r
->delete_user
= NULL
;
4209 case NETR_DELTA_MODIFY_COUNT
: {
4210 uint32_t _ptr_modified_count
;
4211 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_modified_count
));
4212 if (_ptr_modified_count
) {
4213 NDR_PULL_ALLOC(ndr
, r
->modified_count
);
4215 r
->modified_count
= NULL
;
4220 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4223 if (ndr_flags
& NDR_BUFFERS
) {
4225 case NETR_DELTA_DOMAIN
:
4227 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4228 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
4229 NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
4230 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
4234 case NETR_DELTA_GROUP
:
4236 _mem_save_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4237 NDR_PULL_SET_MEM_CTX(ndr
, r
->group
, 0);
4238 NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group
));
4239 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_0
, 0);
4243 case NETR_DELTA_DELETE_GROUP
:
4246 case NETR_DELTA_RENAME_GROUP
:
4247 if (r
->rename_group
) {
4248 _mem_save_rename_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4249 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_group
, 0);
4250 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_group
));
4251 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_group_0
, 0);
4255 case NETR_DELTA_USER
:
4257 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4258 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
4259 NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->user
));
4260 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
4264 case NETR_DELTA_DELETE_USER
:
4267 case NETR_DELTA_RENAME_USER
:
4268 if (r
->rename_user
) {
4269 _mem_save_rename_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4270 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_user
, 0);
4271 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_user
));
4272 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_user_0
, 0);
4276 case NETR_DELTA_GROUP_MEMBER
:
4277 if (r
->group_member
) {
4278 _mem_save_group_member_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4279 NDR_PULL_SET_MEM_CTX(ndr
, r
->group_member
, 0);
4280 NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->group_member
));
4281 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_member_0
, 0);
4285 case NETR_DELTA_ALIAS
:
4287 _mem_save_alias_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4288 NDR_PULL_SET_MEM_CTX(ndr
, r
->alias
, 0);
4289 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias
));
4290 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_0
, 0);
4294 case NETR_DELTA_DELETE_ALIAS
:
4297 case NETR_DELTA_RENAME_ALIAS
:
4298 if (r
->rename_alias
) {
4299 _mem_save_rename_alias_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4300 NDR_PULL_SET_MEM_CTX(ndr
, r
->rename_alias
, 0);
4301 NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->rename_alias
));
4302 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rename_alias_0
, 0);
4306 case NETR_DELTA_ALIAS_MEMBER
:
4307 if (r
->alias_member
) {
4308 _mem_save_alias_member_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4309 NDR_PULL_SET_MEM_CTX(ndr
, r
->alias_member
, 0);
4310 NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->alias_member
));
4311 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_alias_member_0
, 0);
4315 case NETR_DELTA_POLICY
:
4317 _mem_save_policy_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4318 NDR_PULL_SET_MEM_CTX(ndr
, r
->policy
, 0);
4319 NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->policy
));
4320 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_policy_0
, 0);
4324 case NETR_DELTA_TRUSTED_DOMAIN
:
4325 if (r
->trusted_domain
) {
4326 _mem_save_trusted_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4327 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusted_domain
, 0);
4328 NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->trusted_domain
));
4329 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusted_domain_0
, 0);
4333 case NETR_DELTA_DELETE_TRUST
:
4336 case NETR_DELTA_ACCOUNT
:
4338 _mem_save_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4339 NDR_PULL_SET_MEM_CTX(ndr
, r
->account
, 0);
4340 NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->account
));
4341 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_account_0
, 0);
4345 case NETR_DELTA_DELETE_ACCOUNT
:
4348 case NETR_DELTA_SECRET
:
4350 _mem_save_secret_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4351 NDR_PULL_SET_MEM_CTX(ndr
, r
->secret
, 0);
4352 NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secret
));
4353 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secret_0
, 0);
4357 case NETR_DELTA_DELETE_SECRET
:
4360 case NETR_DELTA_DELETE_GROUP2
:
4361 if (r
->delete_group
) {
4362 _mem_save_delete_group_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4363 NDR_PULL_SET_MEM_CTX(ndr
, r
->delete_group
, 0);
4364 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_group
));
4365 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delete_group_0
, 0);
4369 case NETR_DELTA_DELETE_USER2
:
4370 if (r
->delete_user
) {
4371 _mem_save_delete_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4372 NDR_PULL_SET_MEM_CTX(ndr
, r
->delete_user
, 0);
4373 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->delete_user
));
4374 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delete_user_0
, 0);
4378 case NETR_DELTA_MODIFY_COUNT
:
4379 if (r
->modified_count
) {
4380 _mem_save_modified_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4381 NDR_PULL_SET_MEM_CTX(ndr
, r
->modified_count
, 0);
4382 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->modified_count
));
4383 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_modified_count_0
, 0);
4388 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4391 return NT_STATUS_OK
;
4394 _PUBLIC_
void ndr_print_netr_DELTA_UNION(struct ndr_print
*ndr
, const char *name
, const union netr_DELTA_UNION
*r
)
4397 level
= ndr_print_get_switch_value(ndr
, r
);
4398 ndr_print_union(ndr
, name
, level
, "netr_DELTA_UNION");
4400 case NETR_DELTA_DOMAIN
:
4401 ndr_print_ptr(ndr
, "domain", r
->domain
);
4404 ndr_print_netr_DELTA_DOMAIN(ndr
, "domain", r
->domain
);
4409 case NETR_DELTA_GROUP
:
4410 ndr_print_ptr(ndr
, "group", r
->group
);
4413 ndr_print_netr_DELTA_GROUP(ndr
, "group", r
->group
);
4418 case NETR_DELTA_DELETE_GROUP
:
4421 case NETR_DELTA_RENAME_GROUP
:
4422 ndr_print_ptr(ndr
, "rename_group", r
->rename_group
);
4424 if (r
->rename_group
) {
4425 ndr_print_netr_DELTA_RENAME(ndr
, "rename_group", r
->rename_group
);
4430 case NETR_DELTA_USER
:
4431 ndr_print_ptr(ndr
, "user", r
->user
);
4434 ndr_print_netr_DELTA_USER(ndr
, "user", r
->user
);
4439 case NETR_DELTA_DELETE_USER
:
4442 case NETR_DELTA_RENAME_USER
:
4443 ndr_print_ptr(ndr
, "rename_user", r
->rename_user
);
4445 if (r
->rename_user
) {
4446 ndr_print_netr_DELTA_RENAME(ndr
, "rename_user", r
->rename_user
);
4451 case NETR_DELTA_GROUP_MEMBER
:
4452 ndr_print_ptr(ndr
, "group_member", r
->group_member
);
4454 if (r
->group_member
) {
4455 ndr_print_netr_DELTA_GROUP_MEMBER(ndr
, "group_member", r
->group_member
);
4460 case NETR_DELTA_ALIAS
:
4461 ndr_print_ptr(ndr
, "alias", r
->alias
);
4464 ndr_print_netr_DELTA_ALIAS(ndr
, "alias", r
->alias
);
4469 case NETR_DELTA_DELETE_ALIAS
:
4472 case NETR_DELTA_RENAME_ALIAS
:
4473 ndr_print_ptr(ndr
, "rename_alias", r
->rename_alias
);
4475 if (r
->rename_alias
) {
4476 ndr_print_netr_DELTA_RENAME(ndr
, "rename_alias", r
->rename_alias
);
4481 case NETR_DELTA_ALIAS_MEMBER
:
4482 ndr_print_ptr(ndr
, "alias_member", r
->alias_member
);
4484 if (r
->alias_member
) {
4485 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr
, "alias_member", r
->alias_member
);
4490 case NETR_DELTA_POLICY
:
4491 ndr_print_ptr(ndr
, "policy", r
->policy
);
4494 ndr_print_netr_DELTA_POLICY(ndr
, "policy", r
->policy
);
4499 case NETR_DELTA_TRUSTED_DOMAIN
:
4500 ndr_print_ptr(ndr
, "trusted_domain", r
->trusted_domain
);
4502 if (r
->trusted_domain
) {
4503 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr
, "trusted_domain", r
->trusted_domain
);
4508 case NETR_DELTA_DELETE_TRUST
:
4509 ndr_print_netr_DELTA_DELETE_TRUST(ndr
, "delete_trust", &r
->delete_trust
);
4512 case NETR_DELTA_ACCOUNT
:
4513 ndr_print_ptr(ndr
, "account", r
->account
);
4516 ndr_print_netr_DELTA_ACCOUNT(ndr
, "account", r
->account
);
4521 case NETR_DELTA_DELETE_ACCOUNT
:
4522 ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr
, "delete_account", &r
->delete_account
);
4525 case NETR_DELTA_SECRET
:
4526 ndr_print_ptr(ndr
, "secret", r
->secret
);
4529 ndr_print_netr_DELTA_SECRET(ndr
, "secret", r
->secret
);
4534 case NETR_DELTA_DELETE_SECRET
:
4535 ndr_print_netr_DELTA_DELETE_SECRET(ndr
, "delete_secret", &r
->delete_secret
);
4538 case NETR_DELTA_DELETE_GROUP2
:
4539 ndr_print_ptr(ndr
, "delete_group", r
->delete_group
);
4541 if (r
->delete_group
) {
4542 ndr_print_netr_DELTA_DELETE_USER(ndr
, "delete_group", r
->delete_group
);
4547 case NETR_DELTA_DELETE_USER2
:
4548 ndr_print_ptr(ndr
, "delete_user", r
->delete_user
);
4550 if (r
->delete_user
) {
4551 ndr_print_netr_DELTA_DELETE_USER(ndr
, "delete_user", r
->delete_user
);
4556 case NETR_DELTA_MODIFY_COUNT
:
4557 ndr_print_ptr(ndr
, "modified_count", r
->modified_count
);
4559 if (r
->modified_count
) {
4560 ndr_print_udlong(ndr
, "modified_count", *r
->modified_count
);
4566 ndr_print_bad_level(ndr
, name
, level
);
4570 NTSTATUS
ndr_push_netr_DELTA_ID_UNION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DELTA_ID_UNION
*r
)
4573 level
= ndr_push_get_switch_value(ndr
, r
);
4574 if (ndr_flags
& NDR_SCALARS
) {
4575 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, level
));
4577 case NETR_DELTA_DOMAIN
:
4578 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4581 case NETR_DELTA_GROUP
:
4582 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4585 case NETR_DELTA_DELETE_GROUP
:
4586 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4589 case NETR_DELTA_RENAME_GROUP
:
4590 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4593 case NETR_DELTA_USER
:
4594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4597 case NETR_DELTA_DELETE_USER
:
4598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4601 case NETR_DELTA_RENAME_USER
:
4602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4605 case NETR_DELTA_GROUP_MEMBER
:
4606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4609 case NETR_DELTA_ALIAS
:
4610 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4613 case NETR_DELTA_DELETE_ALIAS
:
4614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4617 case NETR_DELTA_RENAME_ALIAS
:
4618 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4621 case NETR_DELTA_ALIAS_MEMBER
:
4622 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4625 case NETR_DELTA_POLICY
:
4626 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4629 case NETR_DELTA_TRUSTED_DOMAIN
:
4630 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4633 case NETR_DELTA_DELETE_TRUST
:
4634 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4637 case NETR_DELTA_ACCOUNT
:
4638 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4641 case NETR_DELTA_DELETE_ACCOUNT
:
4642 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
4645 case NETR_DELTA_SECRET
:
4646 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4649 case NETR_DELTA_DELETE_SECRET
:
4650 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4653 case NETR_DELTA_DELETE_GROUP2
:
4654 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4657 case NETR_DELTA_DELETE_USER2
:
4658 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->rid
));
4661 case NETR_DELTA_MODIFY_COUNT
:
4665 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4668 if (ndr_flags
& NDR_BUFFERS
) {
4670 case NETR_DELTA_DOMAIN
:
4673 case NETR_DELTA_GROUP
:
4676 case NETR_DELTA_DELETE_GROUP
:
4679 case NETR_DELTA_RENAME_GROUP
:
4682 case NETR_DELTA_USER
:
4685 case NETR_DELTA_DELETE_USER
:
4688 case NETR_DELTA_RENAME_USER
:
4691 case NETR_DELTA_GROUP_MEMBER
:
4694 case NETR_DELTA_ALIAS
:
4697 case NETR_DELTA_DELETE_ALIAS
:
4700 case NETR_DELTA_RENAME_ALIAS
:
4703 case NETR_DELTA_ALIAS_MEMBER
:
4706 case NETR_DELTA_POLICY
:
4708 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4712 case NETR_DELTA_TRUSTED_DOMAIN
:
4714 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4718 case NETR_DELTA_DELETE_TRUST
:
4720 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4724 case NETR_DELTA_ACCOUNT
:
4726 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4730 case NETR_DELTA_DELETE_ACCOUNT
:
4732 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4736 case NETR_DELTA_SECRET
:
4738 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4739 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4740 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4741 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4745 case NETR_DELTA_DELETE_SECRET
:
4747 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4748 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4749 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4750 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4754 case NETR_DELTA_DELETE_GROUP2
:
4757 case NETR_DELTA_DELETE_USER2
:
4760 case NETR_DELTA_MODIFY_COUNT
:
4764 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4767 return NT_STATUS_OK
;
4770 NTSTATUS
ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DELTA_ID_UNION
*r
)
4774 TALLOC_CTX
*_mem_save_sid_0
;
4775 TALLOC_CTX
*_mem_save_name_0
;
4776 level
= ndr_pull_get_switch_value(ndr
, r
);
4777 if (ndr_flags
& NDR_SCALARS
) {
4778 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
4779 if (_level
!= level
) {
4780 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for netr_DELTA_ID_UNION", _level
);
4783 case NETR_DELTA_DOMAIN
: {
4784 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4787 case NETR_DELTA_GROUP
: {
4788 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4791 case NETR_DELTA_DELETE_GROUP
: {
4792 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4795 case NETR_DELTA_RENAME_GROUP
: {
4796 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4799 case NETR_DELTA_USER
: {
4800 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4803 case NETR_DELTA_DELETE_USER
: {
4804 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4807 case NETR_DELTA_RENAME_USER
: {
4808 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4811 case NETR_DELTA_GROUP_MEMBER
: {
4812 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4815 case NETR_DELTA_ALIAS
: {
4816 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4819 case NETR_DELTA_DELETE_ALIAS
: {
4820 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4823 case NETR_DELTA_RENAME_ALIAS
: {
4824 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4827 case NETR_DELTA_ALIAS_MEMBER
: {
4828 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4831 case NETR_DELTA_POLICY
: {
4833 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4835 NDR_PULL_ALLOC(ndr
, r
->sid
);
4841 case NETR_DELTA_TRUSTED_DOMAIN
: {
4843 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4845 NDR_PULL_ALLOC(ndr
, r
->sid
);
4851 case NETR_DELTA_DELETE_TRUST
: {
4853 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4855 NDR_PULL_ALLOC(ndr
, r
->sid
);
4861 case NETR_DELTA_ACCOUNT
: {
4863 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4865 NDR_PULL_ALLOC(ndr
, r
->sid
);
4871 case NETR_DELTA_DELETE_ACCOUNT
: {
4873 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
4875 NDR_PULL_ALLOC(ndr
, r
->sid
);
4881 case NETR_DELTA_SECRET
: {
4883 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
4885 NDR_PULL_ALLOC(ndr
, r
->name
);
4891 case NETR_DELTA_DELETE_SECRET
: {
4893 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
4895 NDR_PULL_ALLOC(ndr
, r
->name
);
4901 case NETR_DELTA_DELETE_GROUP2
: {
4902 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4905 case NETR_DELTA_DELETE_USER2
: {
4906 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->rid
));
4909 case NETR_DELTA_MODIFY_COUNT
: {
4913 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
4916 if (ndr_flags
& NDR_BUFFERS
) {
4918 case NETR_DELTA_DOMAIN
:
4921 case NETR_DELTA_GROUP
:
4924 case NETR_DELTA_DELETE_GROUP
:
4927 case NETR_DELTA_RENAME_GROUP
:
4930 case NETR_DELTA_USER
:
4933 case NETR_DELTA_DELETE_USER
:
4936 case NETR_DELTA_RENAME_USER
:
4939 case NETR_DELTA_GROUP_MEMBER
:
4942 case NETR_DELTA_ALIAS
:
4945 case NETR_DELTA_DELETE_ALIAS
:
4948 case NETR_DELTA_RENAME_ALIAS
:
4951 case NETR_DELTA_ALIAS_MEMBER
:
4954 case NETR_DELTA_POLICY
:
4956 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4957 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4958 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4963 case NETR_DELTA_TRUSTED_DOMAIN
:
4965 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4966 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4967 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4968 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4972 case NETR_DELTA_DELETE_TRUST
:
4974 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4975 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4976 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4981 case NETR_DELTA_ACCOUNT
:
4983 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4984 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4985 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4986 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4990 case NETR_DELTA_DELETE_ACCOUNT
:
4992 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4993 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
4994 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
4995 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
4999 case NETR_DELTA_SECRET
:
5001 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5002 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
5003 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
5004 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
5005 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
5006 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->name
), ndr_get_array_length(ndr
, &r
->name
));
5008 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
5009 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
5010 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
5014 case NETR_DELTA_DELETE_SECRET
:
5016 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5017 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
5018 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
5019 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
5020 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
5021 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->name
), ndr_get_array_length(ndr
, &r
->name
));
5023 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
5024 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
5025 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
5029 case NETR_DELTA_DELETE_GROUP2
:
5032 case NETR_DELTA_DELETE_USER2
:
5035 case NETR_DELTA_MODIFY_COUNT
:
5039 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5042 return NT_STATUS_OK
;
5045 _PUBLIC_
void ndr_print_netr_DELTA_ID_UNION(struct ndr_print
*ndr
, const char *name
, const union netr_DELTA_ID_UNION
*r
)
5048 level
= ndr_print_get_switch_value(ndr
, r
);
5049 ndr_print_union(ndr
, name
, level
, "netr_DELTA_ID_UNION");
5051 case NETR_DELTA_DOMAIN
:
5052 ndr_print_uint32(ndr
, "rid", r
->rid
);
5055 case NETR_DELTA_GROUP
:
5056 ndr_print_uint32(ndr
, "rid", r
->rid
);
5059 case NETR_DELTA_DELETE_GROUP
:
5060 ndr_print_uint32(ndr
, "rid", r
->rid
);
5063 case NETR_DELTA_RENAME_GROUP
:
5064 ndr_print_uint32(ndr
, "rid", r
->rid
);
5067 case NETR_DELTA_USER
:
5068 ndr_print_uint32(ndr
, "rid", r
->rid
);
5071 case NETR_DELTA_DELETE_USER
:
5072 ndr_print_uint32(ndr
, "rid", r
->rid
);
5075 case NETR_DELTA_RENAME_USER
:
5076 ndr_print_uint32(ndr
, "rid", r
->rid
);
5079 case NETR_DELTA_GROUP_MEMBER
:
5080 ndr_print_uint32(ndr
, "rid", r
->rid
);
5083 case NETR_DELTA_ALIAS
:
5084 ndr_print_uint32(ndr
, "rid", r
->rid
);
5087 case NETR_DELTA_DELETE_ALIAS
:
5088 ndr_print_uint32(ndr
, "rid", r
->rid
);
5091 case NETR_DELTA_RENAME_ALIAS
:
5092 ndr_print_uint32(ndr
, "rid", r
->rid
);
5095 case NETR_DELTA_ALIAS_MEMBER
:
5096 ndr_print_uint32(ndr
, "rid", r
->rid
);
5099 case NETR_DELTA_POLICY
:
5100 ndr_print_ptr(ndr
, "sid", r
->sid
);
5103 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5108 case NETR_DELTA_TRUSTED_DOMAIN
:
5109 ndr_print_ptr(ndr
, "sid", r
->sid
);
5112 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5117 case NETR_DELTA_DELETE_TRUST
:
5118 ndr_print_ptr(ndr
, "sid", r
->sid
);
5121 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5126 case NETR_DELTA_ACCOUNT
:
5127 ndr_print_ptr(ndr
, "sid", r
->sid
);
5130 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5135 case NETR_DELTA_DELETE_ACCOUNT
:
5136 ndr_print_ptr(ndr
, "sid", r
->sid
);
5139 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
5144 case NETR_DELTA_SECRET
:
5145 ndr_print_ptr(ndr
, "name", r
->name
);
5148 ndr_print_string(ndr
, "name", r
->name
);
5153 case NETR_DELTA_DELETE_SECRET
:
5154 ndr_print_ptr(ndr
, "name", r
->name
);
5157 ndr_print_string(ndr
, "name", r
->name
);
5162 case NETR_DELTA_DELETE_GROUP2
:
5163 ndr_print_uint32(ndr
, "rid", r
->rid
);
5166 case NETR_DELTA_DELETE_USER2
:
5167 ndr_print_uint32(ndr
, "rid", r
->rid
);
5170 case NETR_DELTA_MODIFY_COUNT
:
5174 ndr_print_bad_level(ndr
, name
, level
);
5178 NTSTATUS
ndr_push_netr_DELTA_ENUM(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ENUM
*r
)
5180 if (ndr_flags
& NDR_SCALARS
) {
5181 NDR_CHECK(ndr_push_align(ndr
, 4));
5182 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr
, NDR_SCALARS
, r
->delta_type
));
5183 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
));
5184 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr
, NDR_SCALARS
, &r
->delta_id_union
));
5185 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
));
5186 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr
, NDR_SCALARS
, &r
->delta_union
));
5188 if (ndr_flags
& NDR_BUFFERS
) {
5189 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr
, NDR_BUFFERS
, &r
->delta_id_union
));
5190 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr
, NDR_BUFFERS
, &r
->delta_union
));
5192 return NT_STATUS_OK
;
5195 NTSTATUS
ndr_pull_netr_DELTA_ENUM(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ENUM
*r
)
5197 if (ndr_flags
& NDR_SCALARS
) {
5198 NDR_CHECK(ndr_pull_align(ndr
, 4));
5199 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr
, NDR_SCALARS
, &r
->delta_type
));
5200 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
));
5201 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr
, NDR_SCALARS
, &r
->delta_id_union
));
5202 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
));
5203 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr
, NDR_SCALARS
, &r
->delta_union
));
5205 if (ndr_flags
& NDR_BUFFERS
) {
5206 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr
, NDR_BUFFERS
, &r
->delta_id_union
));
5207 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr
, NDR_BUFFERS
, &r
->delta_union
));
5209 return NT_STATUS_OK
;
5212 _PUBLIC_
void ndr_print_netr_DELTA_ENUM(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ENUM
*r
)
5214 ndr_print_struct(ndr
, name
, "netr_DELTA_ENUM");
5216 ndr_print_netr_DeltaEnum(ndr
, "delta_type", r
->delta_type
);
5217 ndr_print_set_switch_value(ndr
, &r
->delta_id_union
, r
->delta_type
);
5218 ndr_print_netr_DELTA_ID_UNION(ndr
, "delta_id_union", &r
->delta_id_union
);
5219 ndr_print_set_switch_value(ndr
, &r
->delta_union
, r
->delta_type
);
5220 ndr_print_netr_DELTA_UNION(ndr
, "delta_union", &r
->delta_union
);
5224 NTSTATUS
ndr_push_netr_DELTA_ENUM_ARRAY(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DELTA_ENUM_ARRAY
*r
)
5226 uint32_t cntr_delta_enum_1
;
5227 if (ndr_flags
& NDR_SCALARS
) {
5228 NDR_CHECK(ndr_push_align(ndr
, 4));
5229 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_deltas
));
5230 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->delta_enum
));
5232 if (ndr_flags
& NDR_BUFFERS
) {
5233 if (r
->delta_enum
) {
5234 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_deltas
));
5235 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5236 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr
, NDR_SCALARS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5238 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5239 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr
, NDR_BUFFERS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5243 return NT_STATUS_OK
;
5246 NTSTATUS
ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DELTA_ENUM_ARRAY
*r
)
5248 uint32_t _ptr_delta_enum
;
5249 uint32_t cntr_delta_enum_1
;
5250 TALLOC_CTX
*_mem_save_delta_enum_0
;
5251 TALLOC_CTX
*_mem_save_delta_enum_1
;
5252 if (ndr_flags
& NDR_SCALARS
) {
5253 NDR_CHECK(ndr_pull_align(ndr
, 4));
5254 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_deltas
));
5255 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum
));
5256 if (_ptr_delta_enum
) {
5257 NDR_PULL_ALLOC(ndr
, r
->delta_enum
);
5259 r
->delta_enum
= NULL
;
5262 if (ndr_flags
& NDR_BUFFERS
) {
5263 if (r
->delta_enum
) {
5264 _mem_save_delta_enum_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5265 NDR_PULL_SET_MEM_CTX(ndr
, r
->delta_enum
, 0);
5266 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->delta_enum
));
5267 NDR_PULL_ALLOC_N(ndr
, r
->delta_enum
, ndr_get_array_size(ndr
, &r
->delta_enum
));
5268 _mem_save_delta_enum_1
= NDR_PULL_GET_MEM_CTX(ndr
);
5269 NDR_PULL_SET_MEM_CTX(ndr
, r
->delta_enum
, 0);
5270 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5271 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr
, NDR_SCALARS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5273 for (cntr_delta_enum_1
= 0; cntr_delta_enum_1
< r
->num_deltas
; cntr_delta_enum_1
++) {
5274 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr
, NDR_BUFFERS
, &r
->delta_enum
[cntr_delta_enum_1
]));
5276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_1
, 0);
5277 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_0
, 0);
5279 if (r
->delta_enum
) {
5280 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->delta_enum
, r
->num_deltas
));
5283 return NT_STATUS_OK
;
5286 _PUBLIC_
void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print
*ndr
, const char *name
, const struct netr_DELTA_ENUM_ARRAY
*r
)
5288 uint32_t cntr_delta_enum_1
;
5289 ndr_print_struct(ndr
, name
, "netr_DELTA_ENUM_ARRAY");
5291 ndr_print_uint32(ndr
, "num_deltas", r
->num_deltas
);
5292 ndr_print_ptr(ndr
, "delta_enum", r
->delta_enum
);
5294 if (r
->delta_enum
) {
5295 ndr
->print(ndr
, "%s: ARRAY(%d)", "delta_enum", r
->num_deltas
);
5297 for (cntr_delta_enum_1
=0;cntr_delta_enum_1
<r
->num_deltas
;cntr_delta_enum_1
++) {
5299 asprintf(&idx_1
, "[%d]", cntr_delta_enum_1
);
5301 ndr_print_netr_DELTA_ENUM(ndr
, "delta_enum", &r
->delta_enum
[cntr_delta_enum_1
]);
5311 NTSTATUS
ndr_push_netr_UAS_INFO_0(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_UAS_INFO_0
*r
)
5314 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5315 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5316 if (ndr_flags
& NDR_SCALARS
) {
5317 NDR_CHECK(ndr_push_align(ndr
, 4));
5318 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->computer_name
, 16));
5319 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->timecreated
));
5320 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_number
));
5322 if (ndr_flags
& NDR_BUFFERS
) {
5324 ndr
->flags
= _flags_save_STRUCT
;
5326 return NT_STATUS_OK
;
5329 NTSTATUS
ndr_pull_netr_UAS_INFO_0(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_UAS_INFO_0
*r
)
5332 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5333 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5334 if (ndr_flags
& NDR_SCALARS
) {
5335 NDR_CHECK(ndr_pull_align(ndr
, 4));
5336 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->computer_name
, 16));
5337 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->timecreated
));
5338 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_number
));
5340 if (ndr_flags
& NDR_BUFFERS
) {
5342 ndr
->flags
= _flags_save_STRUCT
;
5344 return NT_STATUS_OK
;
5347 _PUBLIC_
void ndr_print_netr_UAS_INFO_0(struct ndr_print
*ndr
, const char *name
, const struct netr_UAS_INFO_0
*r
)
5349 ndr_print_struct(ndr
, name
, "netr_UAS_INFO_0");
5351 uint32_t _flags_save_STRUCT
= ndr
->flags
;
5352 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
5354 ndr_print_array_uint8(ndr
, "computer_name", r
->computer_name
, 16);
5355 ndr_print_uint32(ndr
, "timecreated", r
->timecreated
);
5356 ndr_print_uint32(ndr
, "serial_number", r
->serial_number
);
5358 ndr
->flags
= _flags_save_STRUCT
;
5362 NTSTATUS
ndr_push_netr_AccountBuffer(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_AccountBuffer
*r
)
5364 if (ndr_flags
& NDR_SCALARS
) {
5365 NDR_CHECK(ndr_push_align(ndr
, 4));
5367 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
5368 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
5369 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->blob
));
5370 ndr
->flags
= _flags_save_DATA_BLOB
;
5373 if (ndr_flags
& NDR_BUFFERS
) {
5375 return NT_STATUS_OK
;
5378 NTSTATUS
ndr_pull_netr_AccountBuffer(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_AccountBuffer
*r
)
5380 if (ndr_flags
& NDR_SCALARS
) {
5381 NDR_CHECK(ndr_pull_align(ndr
, 4));
5383 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
5384 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
5385 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->blob
));
5386 ndr
->flags
= _flags_save_DATA_BLOB
;
5389 if (ndr_flags
& NDR_BUFFERS
) {
5391 return NT_STATUS_OK
;
5394 _PUBLIC_
void ndr_print_netr_AccountBuffer(struct ndr_print
*ndr
, const char *name
, const struct netr_AccountBuffer
*r
)
5396 ndr_print_struct(ndr
, name
, "netr_AccountBuffer");
5398 ndr_print_DATA_BLOB(ndr
, "blob", r
->blob
);
5402 NTSTATUS
ndr_push_netr_NETLOGON_INFO_1(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_1
*r
)
5404 if (ndr_flags
& NDR_SCALARS
) {
5405 NDR_CHECK(ndr_push_align(ndr
, 4));
5406 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
5407 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5409 if (ndr_flags
& NDR_BUFFERS
) {
5411 return NT_STATUS_OK
;
5414 NTSTATUS
ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_1
*r
)
5416 if (ndr_flags
& NDR_SCALARS
) {
5417 NDR_CHECK(ndr_pull_align(ndr
, 4));
5418 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
5419 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5421 if (ndr_flags
& NDR_BUFFERS
) {
5423 return NT_STATUS_OK
;
5426 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_1
*r
)
5428 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_1");
5430 ndr_print_uint32(ndr
, "flags", r
->flags
);
5431 ndr_print_uint32(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5435 NTSTATUS
ndr_push_netr_NETLOGON_INFO_2(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_2
*r
)
5437 if (ndr_flags
& NDR_SCALARS
) {
5438 NDR_CHECK(ndr_push_align(ndr
, 4));
5439 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
5440 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pdc_connection_status
));
5441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
)));
5444 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->trusted_dc_name
, ndr_charset_length(r
->trusted_dc_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5445 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->tc_connection_status
));
5447 if (ndr_flags
& NDR_BUFFERS
) {
5449 return NT_STATUS_OK
;
5452 NTSTATUS
ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_2
*r
)
5454 if (ndr_flags
& NDR_SCALARS
) {
5455 NDR_CHECK(ndr_pull_align(ndr
, 4));
5456 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
5457 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pdc_connection_status
));
5458 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusted_dc_name
));
5459 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->trusted_dc_name
));
5460 if (ndr_get_array_length(ndr
, &r
->trusted_dc_name
) > ndr_get_array_size(ndr
, &r
->trusted_dc_name
)) {
5461 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->trusted_dc_name
), ndr_get_array_length(ndr
, &r
->trusted_dc_name
));
5463 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t)));
5464 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->trusted_dc_name
, ndr_get_array_length(ndr
, &r
->trusted_dc_name
), sizeof(uint16_t), CH_UTF16
));
5465 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->tc_connection_status
));
5467 if (ndr_flags
& NDR_BUFFERS
) {
5469 return NT_STATUS_OK
;
5472 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_2
*r
)
5474 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_2");
5476 ndr_print_uint32(ndr
, "flags", r
->flags
);
5477 ndr_print_uint32(ndr
, "pdc_connection_status", r
->pdc_connection_status
);
5478 ndr_print_string(ndr
, "trusted_dc_name", r
->trusted_dc_name
);
5479 ndr_print_uint32(ndr
, "tc_connection_status", r
->tc_connection_status
);
5483 NTSTATUS
ndr_push_netr_NETLOGON_INFO_3(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_NETLOGON_INFO_3
*r
)
5485 if (ndr_flags
& NDR_SCALARS
) {
5486 NDR_CHECK(ndr_push_align(ndr
, 4));
5487 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
5488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->logon_attempts
));
5489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
5490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
5491 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
5492 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
5493 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
5495 if (ndr_flags
& NDR_BUFFERS
) {
5497 return NT_STATUS_OK
;
5500 NTSTATUS
ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_NETLOGON_INFO_3
*r
)
5502 if (ndr_flags
& NDR_SCALARS
) {
5503 NDR_CHECK(ndr_pull_align(ndr
, 4));
5504 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
5505 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->logon_attempts
));
5506 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
5507 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
5508 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
5509 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
5510 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
5512 if (ndr_flags
& NDR_BUFFERS
) {
5514 return NT_STATUS_OK
;
5517 _PUBLIC_
void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print
*ndr
, const char *name
, const struct netr_NETLOGON_INFO_3
*r
)
5519 ndr_print_struct(ndr
, name
, "netr_NETLOGON_INFO_3");
5521 ndr_print_uint32(ndr
, "flags", r
->flags
);
5522 ndr_print_uint32(ndr
, "logon_attempts", r
->logon_attempts
);
5523 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
5524 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
5525 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
5526 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
5527 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
5531 NTSTATUS
ndr_push_netr_CONTROL_QUERY_INFORMATION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_CONTROL_QUERY_INFORMATION
*r
)
5534 level
= ndr_push_get_switch_value(ndr
, r
);
5535 if (ndr_flags
& NDR_SCALARS
) {
5536 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5539 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5543 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5547 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
5551 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5554 if (ndr_flags
& NDR_BUFFERS
) {
5558 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
5564 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
, r
->info2
));
5570 NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
5575 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5578 return NT_STATUS_OK
;
5581 NTSTATUS
ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_QUERY_INFORMATION
*r
)
5585 TALLOC_CTX
*_mem_save_info1_0
;
5586 TALLOC_CTX
*_mem_save_info2_0
;
5587 TALLOC_CTX
*_mem_save_info3_0
;
5588 level
= ndr_pull_get_switch_value(ndr
, r
);
5589 if (ndr_flags
& NDR_SCALARS
) {
5590 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5591 if (_level
!= level
) {
5592 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for netr_CONTROL_QUERY_INFORMATION", _level
);
5596 uint32_t _ptr_info1
;
5597 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
5599 NDR_PULL_ALLOC(ndr
, r
->info1
);
5606 uint32_t _ptr_info2
;
5607 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
5609 NDR_PULL_ALLOC(ndr
, r
->info2
);
5616 uint32_t _ptr_info3
;
5617 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
5619 NDR_PULL_ALLOC(ndr
, r
->info3
);
5626 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5629 if (ndr_flags
& NDR_BUFFERS
) {
5633 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5634 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
5635 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr
, NDR_SCALARS
, r
->info1
));
5636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
5642 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5643 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
5644 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr
, NDR_SCALARS
, r
->info2
));
5645 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
5651 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5652 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
5653 NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr
, NDR_SCALARS
, r
->info3
));
5654 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
5659 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5662 return NT_STATUS_OK
;
5665 _PUBLIC_
void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_QUERY_INFORMATION
*r
)
5668 level
= ndr_print_get_switch_value(ndr
, r
);
5669 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_QUERY_INFORMATION");
5672 ndr_print_ptr(ndr
, "info1", r
->info1
);
5675 ndr_print_netr_NETLOGON_INFO_1(ndr
, "info1", r
->info1
);
5681 ndr_print_ptr(ndr
, "info2", r
->info2
);
5684 ndr_print_netr_NETLOGON_INFO_2(ndr
, "info2", r
->info2
);
5690 ndr_print_ptr(ndr
, "info3", r
->info3
);
5693 ndr_print_netr_NETLOGON_INFO_3(ndr
, "info3", r
->info3
);
5699 ndr_print_bad_level(ndr
, name
, level
);
5703 NTSTATUS
ndr_push_netr_LogonControlCode(struct ndr_push
*ndr
, int ndr_flags
, enum netr_LogonControlCode r
)
5705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5706 return NT_STATUS_OK
;
5709 NTSTATUS
ndr_pull_netr_LogonControlCode(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_LogonControlCode
*r
)
5712 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5714 return NT_STATUS_OK
;
5717 _PUBLIC_
void ndr_print_netr_LogonControlCode(struct ndr_print
*ndr
, const char *name
, enum netr_LogonControlCode r
)
5719 const char *val
= NULL
;
5722 case NETLOGON_CONTROL_REDISCOVER
: val
= "NETLOGON_CONTROL_REDISCOVER"; break;
5723 case NETLOGON_CONTROL_TC_QUERY
: val
= "NETLOGON_CONTROL_TC_QUERY"; break;
5724 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: val
= "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5725 case NETLOGON_CONTROL_SET_DBFLAG
: val
= "NETLOGON_CONTROL_SET_DBFLAG"; break;
5727 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5730 NTSTATUS
ndr_push_netr_CONTROL_DATA_INFORMATION(struct ndr_push
*ndr
, int ndr_flags
, const union netr_CONTROL_DATA_INFORMATION
*r
)
5733 level
= ndr_push_get_switch_value(ndr
, r
);
5734 if (ndr_flags
& NDR_SCALARS
) {
5735 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5737 case NETLOGON_CONTROL_REDISCOVER
:
5738 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
5741 case NETLOGON_CONTROL_TC_QUERY
:
5742 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
5745 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
5746 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
5749 case NETLOGON_CONTROL_SET_DBFLAG
:
5750 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->debug_level
));
5754 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5757 if (ndr_flags
& NDR_BUFFERS
) {
5759 case NETLOGON_CONTROL_REDISCOVER
:
5761 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5762 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5763 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5764 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5768 case NETLOGON_CONTROL_TC_QUERY
:
5770 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5771 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5772 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5773 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5777 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
5779 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5780 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5781 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain
, CH_UTF16
)));
5782 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain
, ndr_charset_length(r
->domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5786 case NETLOGON_CONTROL_SET_DBFLAG
:
5790 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5793 return NT_STATUS_OK
;
5796 NTSTATUS
ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull
*ndr
, int ndr_flags
, union netr_CONTROL_DATA_INFORMATION
*r
)
5800 TALLOC_CTX
*_mem_save_domain_0
;
5801 level
= ndr_pull_get_switch_value(ndr
, r
);
5802 if (ndr_flags
& NDR_SCALARS
) {
5803 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5804 if (_level
!= level
) {
5805 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for netr_CONTROL_DATA_INFORMATION", _level
);
5808 case NETLOGON_CONTROL_REDISCOVER
: {
5809 uint32_t _ptr_domain
;
5810 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
5812 NDR_PULL_ALLOC(ndr
, r
->domain
);
5818 case NETLOGON_CONTROL_TC_QUERY
: {
5819 uint32_t _ptr_domain
;
5820 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
5822 NDR_PULL_ALLOC(ndr
, r
->domain
);
5828 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
: {
5829 uint32_t _ptr_domain
;
5830 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
5832 NDR_PULL_ALLOC(ndr
, r
->domain
);
5838 case NETLOGON_CONTROL_SET_DBFLAG
: {
5839 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->debug_level
));
5843 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5846 if (ndr_flags
& NDR_BUFFERS
) {
5848 case NETLOGON_CONTROL_REDISCOVER
:
5850 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5851 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
5852 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
5853 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
5854 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
5855 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
5857 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
5858 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
5859 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
5863 case NETLOGON_CONTROL_TC_QUERY
:
5865 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5866 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
5867 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
5868 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
5869 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
5870 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
5872 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
5873 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
5874 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
5878 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
5880 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5881 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
5882 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain
));
5883 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain
));
5884 if (ndr_get_array_length(ndr
, &r
->domain
) > ndr_get_array_size(ndr
, &r
->domain
)) {
5885 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain
), ndr_get_array_length(ndr
, &r
->domain
));
5887 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t)));
5888 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain
, ndr_get_array_length(ndr
, &r
->domain
), sizeof(uint16_t), CH_UTF16
));
5889 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
5893 case NETLOGON_CONTROL_SET_DBFLAG
:
5897 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
5900 return NT_STATUS_OK
;
5903 _PUBLIC_
void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print
*ndr
, const char *name
, const union netr_CONTROL_DATA_INFORMATION
*r
)
5906 level
= ndr_print_get_switch_value(ndr
, r
);
5907 ndr_print_union(ndr
, name
, level
, "netr_CONTROL_DATA_INFORMATION");
5909 case NETLOGON_CONTROL_REDISCOVER
:
5910 ndr_print_ptr(ndr
, "domain", r
->domain
);
5913 ndr_print_string(ndr
, "domain", r
->domain
);
5918 case NETLOGON_CONTROL_TC_QUERY
:
5919 ndr_print_ptr(ndr
, "domain", r
->domain
);
5922 ndr_print_string(ndr
, "domain", r
->domain
);
5927 case NETLOGON_CONTROL_TRANSPORT_NOTIFY
:
5928 ndr_print_ptr(ndr
, "domain", r
->domain
);
5931 ndr_print_string(ndr
, "domain", r
->domain
);
5936 case NETLOGON_CONTROL_SET_DBFLAG
:
5937 ndr_print_uint32(ndr
, "debug_level", r
->debug_level
);
5941 ndr_print_bad_level(ndr
, name
, level
);
5945 NTSTATUS
ndr_push_netr_DsRGetDCNameInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DsRGetDCNameInfo
*r
)
5947 if (ndr_flags
& NDR_SCALARS
) {
5948 NDR_CHECK(ndr_push_align(ndr
, 4));
5949 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_unc
));
5950 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_address
));
5951 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->dc_address_type
));
5952 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
5953 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_name
));
5954 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->forest_name
));
5955 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dc_flags
));
5956 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dc_site_name
));
5957 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client_site_name
));
5959 if (ndr_flags
& NDR_BUFFERS
) {
5961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
5962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5963 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_unc
, CH_UTF16
)));
5964 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_unc
, ndr_charset_length(r
->dc_unc
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5966 if (r
->dc_address
) {
5967 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
5968 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_address
, CH_UTF16
)));
5970 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_address
, ndr_charset_length(r
->dc_address
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5972 NDR_CHECK(ndr_push_GUID(ndr
, NDR_BUFFERS
, &r
->domain_guid
));
5973 if (r
->domain_name
) {
5974 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
5975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5976 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
5977 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain_name
, ndr_charset_length(r
->domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5979 if (r
->forest_name
) {
5980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
5981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5982 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->forest_name
, CH_UTF16
)));
5983 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->forest_name
, ndr_charset_length(r
->forest_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5985 if (r
->dc_site_name
) {
5986 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
5987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5988 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
)));
5989 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dc_site_name
, ndr_charset_length(r
->dc_site_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5991 if (r
->client_site_name
) {
5992 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
5993 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5994 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_site_name
, CH_UTF16
)));
5995 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client_site_name
, ndr_charset_length(r
->client_site_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5998 return NT_STATUS_OK
;
6001 NTSTATUS
ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DsRGetDCNameInfo
*r
)
6003 uint32_t _ptr_dc_unc
;
6004 TALLOC_CTX
*_mem_save_dc_unc_0
;
6005 uint32_t _ptr_dc_address
;
6006 TALLOC_CTX
*_mem_save_dc_address_0
;
6007 uint32_t _ptr_domain_name
;
6008 TALLOC_CTX
*_mem_save_domain_name_0
;
6009 uint32_t _ptr_forest_name
;
6010 TALLOC_CTX
*_mem_save_forest_name_0
;
6011 uint32_t _ptr_dc_site_name
;
6012 TALLOC_CTX
*_mem_save_dc_site_name_0
;
6013 uint32_t _ptr_client_site_name
;
6014 TALLOC_CTX
*_mem_save_client_site_name_0
;
6015 if (ndr_flags
& NDR_SCALARS
) {
6016 NDR_CHECK(ndr_pull_align(ndr
, 4));
6017 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_unc
));
6019 NDR_PULL_ALLOC(ndr
, r
->dc_unc
);
6023 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_address
));
6024 if (_ptr_dc_address
) {
6025 NDR_PULL_ALLOC(ndr
, r
->dc_address
);
6027 r
->dc_address
= NULL
;
6029 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->dc_address_type
));
6030 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->domain_guid
));
6031 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
6032 if (_ptr_domain_name
) {
6033 NDR_PULL_ALLOC(ndr
, r
->domain_name
);
6035 r
->domain_name
= NULL
;
6037 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_forest_name
));
6038 if (_ptr_forest_name
) {
6039 NDR_PULL_ALLOC(ndr
, r
->forest_name
);
6041 r
->forest_name
= NULL
;
6043 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dc_flags
));
6044 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dc_site_name
));
6045 if (_ptr_dc_site_name
) {
6046 NDR_PULL_ALLOC(ndr
, r
->dc_site_name
);
6048 r
->dc_site_name
= NULL
;
6050 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_site_name
));
6051 if (_ptr_client_site_name
) {
6052 NDR_PULL_ALLOC(ndr
, r
->client_site_name
);
6054 r
->client_site_name
= NULL
;
6057 if (ndr_flags
& NDR_BUFFERS
) {
6059 _mem_save_dc_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6060 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_unc
, 0);
6061 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_unc
));
6062 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_unc
));
6063 if (ndr_get_array_length(ndr
, &r
->dc_unc
) > ndr_get_array_size(ndr
, &r
->dc_unc
)) {
6064 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dc_unc
), ndr_get_array_length(ndr
, &r
->dc_unc
));
6066 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_unc
), sizeof(uint16_t)));
6067 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_unc
, ndr_get_array_length(ndr
, &r
->dc_unc
), sizeof(uint16_t), CH_UTF16
));
6068 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_unc_0
, 0);
6070 if (r
->dc_address
) {
6071 _mem_save_dc_address_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6072 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_address
, 0);
6073 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_address
));
6074 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_address
));
6075 if (ndr_get_array_length(ndr
, &r
->dc_address
) > ndr_get_array_size(ndr
, &r
->dc_address
)) {
6076 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dc_address
), ndr_get_array_length(ndr
, &r
->dc_address
));
6078 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_address
), sizeof(uint16_t)));
6079 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_address
, ndr_get_array_length(ndr
, &r
->dc_address
), sizeof(uint16_t), CH_UTF16
));
6080 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_address_0
, 0);
6082 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_BUFFERS
, &r
->domain_guid
));
6083 if (r
->domain_name
) {
6084 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6085 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_name
, 0);
6086 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain_name
));
6087 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain_name
));
6088 if (ndr_get_array_length(ndr
, &r
->domain_name
) > ndr_get_array_size(ndr
, &r
->domain_name
)) {
6089 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain_name
), ndr_get_array_length(ndr
, &r
->domain_name
));
6091 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t)));
6092 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain_name
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t), CH_UTF16
));
6093 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
6095 if (r
->forest_name
) {
6096 _mem_save_forest_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6097 NDR_PULL_SET_MEM_CTX(ndr
, r
->forest_name
, 0);
6098 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->forest_name
));
6099 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->forest_name
));
6100 if (ndr_get_array_length(ndr
, &r
->forest_name
) > ndr_get_array_size(ndr
, &r
->forest_name
)) {
6101 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->forest_name
), ndr_get_array_length(ndr
, &r
->forest_name
));
6103 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->forest_name
), sizeof(uint16_t)));
6104 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->forest_name
, ndr_get_array_length(ndr
, &r
->forest_name
), sizeof(uint16_t), CH_UTF16
));
6105 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_forest_name_0
, 0);
6107 if (r
->dc_site_name
) {
6108 _mem_save_dc_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6109 NDR_PULL_SET_MEM_CTX(ndr
, r
->dc_site_name
, 0);
6110 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dc_site_name
));
6111 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dc_site_name
));
6112 if (ndr_get_array_length(ndr
, &r
->dc_site_name
) > ndr_get_array_size(ndr
, &r
->dc_site_name
)) {
6113 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dc_site_name
), ndr_get_array_length(ndr
, &r
->dc_site_name
));
6115 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dc_site_name
), sizeof(uint16_t)));
6116 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dc_site_name
, ndr_get_array_length(ndr
, &r
->dc_site_name
), sizeof(uint16_t), CH_UTF16
));
6117 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dc_site_name_0
, 0);
6119 if (r
->client_site_name
) {
6120 _mem_save_client_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6121 NDR_PULL_SET_MEM_CTX(ndr
, r
->client_site_name
, 0);
6122 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client_site_name
));
6123 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client_site_name
));
6124 if (ndr_get_array_length(ndr
, &r
->client_site_name
) > ndr_get_array_size(ndr
, &r
->client_site_name
)) {
6125 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->client_site_name
), ndr_get_array_length(ndr
, &r
->client_site_name
));
6127 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client_site_name
), sizeof(uint16_t)));
6128 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client_site_name
, ndr_get_array_length(ndr
, &r
->client_site_name
), sizeof(uint16_t), CH_UTF16
));
6129 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_site_name_0
, 0);
6132 return NT_STATUS_OK
;
6135 _PUBLIC_
void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_DsRGetDCNameInfo
*r
)
6137 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameInfo");
6139 ndr_print_ptr(ndr
, "dc_unc", r
->dc_unc
);
6142 ndr_print_string(ndr
, "dc_unc", r
->dc_unc
);
6145 ndr_print_ptr(ndr
, "dc_address", r
->dc_address
);
6147 if (r
->dc_address
) {
6148 ndr_print_string(ndr
, "dc_address", r
->dc_address
);
6151 ndr_print_int32(ndr
, "dc_address_type", r
->dc_address_type
);
6152 ndr_print_GUID(ndr
, "domain_guid", &r
->domain_guid
);
6153 ndr_print_ptr(ndr
, "domain_name", r
->domain_name
);
6155 if (r
->domain_name
) {
6156 ndr_print_string(ndr
, "domain_name", r
->domain_name
);
6159 ndr_print_ptr(ndr
, "forest_name", r
->forest_name
);
6161 if (r
->forest_name
) {
6162 ndr_print_string(ndr
, "forest_name", r
->forest_name
);
6165 ndr_print_uint32(ndr
, "dc_flags", r
->dc_flags
);
6166 ndr_print_ptr(ndr
, "dc_site_name", r
->dc_site_name
);
6168 if (r
->dc_site_name
) {
6169 ndr_print_string(ndr
, "dc_site_name", r
->dc_site_name
);
6172 ndr_print_ptr(ndr
, "client_site_name", r
->client_site_name
);
6174 if (r
->client_site_name
) {
6175 ndr_print_string(ndr
, "client_site_name", r
->client_site_name
);
6181 NTSTATUS
ndr_push_netr_Blob(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_Blob
*r
)
6183 if (ndr_flags
& NDR_SCALARS
) {
6184 NDR_CHECK(ndr_push_align(ndr
, 4));
6185 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
6186 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
6188 if (ndr_flags
& NDR_BUFFERS
) {
6190 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
6191 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
6194 return NT_STATUS_OK
;
6197 NTSTATUS
ndr_pull_netr_Blob(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_Blob
*r
)
6200 TALLOC_CTX
*_mem_save_data_0
;
6201 if (ndr_flags
& NDR_SCALARS
) {
6202 NDR_CHECK(ndr_pull_align(ndr
, 4));
6203 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
6204 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
6206 NDR_PULL_ALLOC(ndr
, r
->data
);
6211 if (ndr_flags
& NDR_BUFFERS
) {
6213 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6214 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
6215 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
6216 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
6217 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_size(ndr
, &r
->data
)));
6218 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
6221 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
6224 return NT_STATUS_OK
;
6227 _PUBLIC_
void ndr_print_netr_Blob(struct ndr_print
*ndr
, const char *name
, const struct netr_Blob
*r
)
6229 ndr_print_struct(ndr
, name
, "netr_Blob");
6231 ndr_print_uint32(ndr
, "length", r
->length
);
6232 ndr_print_ptr(ndr
, "data", r
->data
);
6235 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
6241 NTSTATUS
ndr_push_netr_BinaryString(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_BinaryString
*r
)
6243 uint32_t cntr_data_1
;
6245 uint32_t _flags_save_STRUCT
= ndr
->flags
;
6246 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
6247 if (ndr_flags
& NDR_SCALARS
) {
6248 NDR_CHECK(ndr_push_align(ndr
, 4));
6249 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->length
));
6250 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
6251 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
6253 if (ndr_flags
& NDR_BUFFERS
) {
6255 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
/2));
6256 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
/2));
6258 for (cntr_data_1
= 0; cntr_data_1
< r
->length
/2; cntr_data_1
++) {
6259 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->data
[cntr_data_1
]));
6263 ndr
->flags
= _flags_save_STRUCT
;
6265 return NT_STATUS_OK
;
6268 NTSTATUS
ndr_pull_netr_BinaryString(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_BinaryString
*r
)
6271 uint32_t cntr_data_1
;
6272 TALLOC_CTX
*_mem_save_data_0
;
6273 TALLOC_CTX
*_mem_save_data_1
;
6275 uint32_t _flags_save_STRUCT
= ndr
->flags
;
6276 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
6277 if (ndr_flags
& NDR_SCALARS
) {
6278 NDR_CHECK(ndr_pull_align(ndr
, 4));
6279 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->length
));
6280 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
6281 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
6283 NDR_PULL_ALLOC(ndr
, r
->data
);
6288 if (ndr_flags
& NDR_BUFFERS
) {
6290 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6291 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
6292 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
6293 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data
));
6294 if (ndr_get_array_length(ndr
, &r
->data
) > ndr_get_array_size(ndr
, &r
->data
)) {
6295 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data
), ndr_get_array_length(ndr
, &r
->data
));
6297 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
6298 _mem_save_data_1
= NDR_PULL_GET_MEM_CTX(ndr
);
6299 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
6300 for (cntr_data_1
= 0; cntr_data_1
< r
->length
/2; cntr_data_1
++) {
6301 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->data
[cntr_data_1
]));
6303 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_1
, 0);
6304 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
6307 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->size
/2));
6310 NDR_CHECK(ndr_check_array_length(ndr
, (void*)&r
->data
, r
->length
/2));
6313 ndr
->flags
= _flags_save_STRUCT
;
6315 return NT_STATUS_OK
;
6318 _PUBLIC_
void ndr_print_netr_BinaryString(struct ndr_print
*ndr
, const char *name
, const struct netr_BinaryString
*r
)
6320 uint32_t cntr_data_1
;
6321 ndr_print_struct(ndr
, name
, "netr_BinaryString");
6323 uint32_t _flags_save_STRUCT
= ndr
->flags
;
6324 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
6326 ndr_print_uint16(ndr
, "length", r
->length
);
6327 ndr_print_uint16(ndr
, "size", r
->size
);
6328 ndr_print_ptr(ndr
, "data", r
->data
);
6331 ndr
->print(ndr
, "%s: ARRAY(%d)", "data", r
->length
/2);
6333 for (cntr_data_1
=0;cntr_data_1
<r
->length
/2;cntr_data_1
++) {
6335 asprintf(&idx_1
, "[%d]", cntr_data_1
);
6337 ndr_print_uint16(ndr
, "data", r
->data
[cntr_data_1
]);
6345 ndr
->flags
= _flags_save_STRUCT
;
6349 NTSTATUS
ndr_push_netr_DomainQuery1(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainQuery1
*r
)
6351 uint32_t cntr_unknown7_0
;
6352 if (ndr_flags
& NDR_SCALARS
) {
6353 NDR_CHECK(ndr_push_align(ndr
, 4));
6354 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_SCALARS
, &r
->blob
));
6355 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->workstation_domain
));
6356 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->workstation_site
));
6357 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown1
));
6358 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown2
));
6359 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown3
));
6360 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->unknown4
));
6361 NDR_CHECK(ndr_push_netr_BinaryString(ndr
, NDR_SCALARS
, &r
->blob2
));
6362 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->product
));
6363 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown5
));
6364 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown6
));
6365 for (cntr_unknown7_0
= 0; cntr_unknown7_0
< 4; cntr_unknown7_0
++) {
6366 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown7
[cntr_unknown7_0
]));
6369 if (ndr_flags
& NDR_BUFFERS
) {
6370 NDR_CHECK(ndr_push_netr_Blob(ndr
, NDR_BUFFERS
, &r
->blob
));
6371 if (r
->workstation_domain
) {
6372 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_domain
, CH_UTF16
)));
6373 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6374 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_domain
, CH_UTF16
)));
6375 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->workstation_domain
, ndr_charset_length(r
->workstation_domain
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6377 if (r
->workstation_site
) {
6378 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_site
, CH_UTF16
)));
6379 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6380 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->workstation_site
, CH_UTF16
)));
6381 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->workstation_site
, ndr_charset_length(r
->workstation_site
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6384 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown1
, CH_UTF16
)));
6385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown1
, CH_UTF16
)));
6387 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown1
, ndr_charset_length(r
->unknown1
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6390 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown2
, CH_UTF16
)));
6391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6392 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown2
, CH_UTF16
)));
6393 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown2
, ndr_charset_length(r
->unknown2
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown3
, CH_UTF16
)));
6397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown3
, CH_UTF16
)));
6399 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown3
, ndr_charset_length(r
->unknown3
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown4
, CH_UTF16
)));
6403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6404 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->unknown4
, CH_UTF16
)));
6405 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->unknown4
, ndr_charset_length(r
->unknown4
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6407 NDR_CHECK(ndr_push_netr_BinaryString(ndr
, NDR_BUFFERS
, &r
->blob2
));
6408 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->product
));
6409 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown5
));
6410 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown6
));
6412 return NT_STATUS_OK
;
6415 NTSTATUS
ndr_pull_netr_DomainQuery1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainQuery1
*r
)
6417 uint32_t _ptr_workstation_domain
;
6418 TALLOC_CTX
*_mem_save_workstation_domain_0
;
6419 uint32_t _ptr_workstation_site
;
6420 TALLOC_CTX
*_mem_save_workstation_site_0
;
6421 uint32_t _ptr_unknown1
;
6422 TALLOC_CTX
*_mem_save_unknown1_0
;
6423 uint32_t _ptr_unknown2
;
6424 TALLOC_CTX
*_mem_save_unknown2_0
;
6425 uint32_t _ptr_unknown3
;
6426 TALLOC_CTX
*_mem_save_unknown3_0
;
6427 uint32_t _ptr_unknown4
;
6428 TALLOC_CTX
*_mem_save_unknown4_0
;
6429 uint32_t cntr_unknown7_0
;
6430 if (ndr_flags
& NDR_SCALARS
) {
6431 NDR_CHECK(ndr_pull_align(ndr
, 4));
6432 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_SCALARS
, &r
->blob
));
6433 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_workstation_domain
));
6434 if (_ptr_workstation_domain
) {
6435 NDR_PULL_ALLOC(ndr
, r
->workstation_domain
);
6437 r
->workstation_domain
= NULL
;
6439 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_workstation_site
));
6440 if (_ptr_workstation_site
) {
6441 NDR_PULL_ALLOC(ndr
, r
->workstation_site
);
6443 r
->workstation_site
= NULL
;
6445 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown1
));
6446 if (_ptr_unknown1
) {
6447 NDR_PULL_ALLOC(ndr
, r
->unknown1
);
6451 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown2
));
6452 if (_ptr_unknown2
) {
6453 NDR_PULL_ALLOC(ndr
, r
->unknown2
);
6457 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown3
));
6458 if (_ptr_unknown3
) {
6459 NDR_PULL_ALLOC(ndr
, r
->unknown3
);
6463 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_unknown4
));
6464 if (_ptr_unknown4
) {
6465 NDR_PULL_ALLOC(ndr
, r
->unknown4
);
6469 NDR_CHECK(ndr_pull_netr_BinaryString(ndr
, NDR_SCALARS
, &r
->blob2
));
6470 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->product
));
6471 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown5
));
6472 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->unknown6
));
6473 for (cntr_unknown7_0
= 0; cntr_unknown7_0
< 4; cntr_unknown7_0
++) {
6474 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown7
[cntr_unknown7_0
]));
6477 if (ndr_flags
& NDR_BUFFERS
) {
6478 NDR_CHECK(ndr_pull_netr_Blob(ndr
, NDR_BUFFERS
, &r
->blob
));
6479 if (r
->workstation_domain
) {
6480 _mem_save_workstation_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6481 NDR_PULL_SET_MEM_CTX(ndr
, r
->workstation_domain
, 0);
6482 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->workstation_domain
));
6483 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->workstation_domain
));
6484 if (ndr_get_array_length(ndr
, &r
->workstation_domain
) > ndr_get_array_size(ndr
, &r
->workstation_domain
)) {
6485 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->workstation_domain
), ndr_get_array_length(ndr
, &r
->workstation_domain
));
6487 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->workstation_domain
), sizeof(uint16_t)));
6488 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->workstation_domain
, ndr_get_array_length(ndr
, &r
->workstation_domain
), sizeof(uint16_t), CH_UTF16
));
6489 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_workstation_domain_0
, 0);
6491 if (r
->workstation_site
) {
6492 _mem_save_workstation_site_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6493 NDR_PULL_SET_MEM_CTX(ndr
, r
->workstation_site
, 0);
6494 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->workstation_site
));
6495 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->workstation_site
));
6496 if (ndr_get_array_length(ndr
, &r
->workstation_site
) > ndr_get_array_size(ndr
, &r
->workstation_site
)) {
6497 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->workstation_site
), ndr_get_array_length(ndr
, &r
->workstation_site
));
6499 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->workstation_site
), sizeof(uint16_t)));
6500 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->workstation_site
, ndr_get_array_length(ndr
, &r
->workstation_site
), sizeof(uint16_t), CH_UTF16
));
6501 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_workstation_site_0
, 0);
6504 _mem_save_unknown1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6505 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown1
, 0);
6506 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown1
));
6507 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown1
));
6508 if (ndr_get_array_length(ndr
, &r
->unknown1
) > ndr_get_array_size(ndr
, &r
->unknown1
)) {
6509 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->unknown1
), ndr_get_array_length(ndr
, &r
->unknown1
));
6511 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->unknown1
), sizeof(uint16_t)));
6512 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown1
, ndr_get_array_length(ndr
, &r
->unknown1
), sizeof(uint16_t), CH_UTF16
));
6513 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown1_0
, 0);
6516 _mem_save_unknown2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6517 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown2
, 0);
6518 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown2
));
6519 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown2
));
6520 if (ndr_get_array_length(ndr
, &r
->unknown2
) > ndr_get_array_size(ndr
, &r
->unknown2
)) {
6521 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->unknown2
), ndr_get_array_length(ndr
, &r
->unknown2
));
6523 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->unknown2
), sizeof(uint16_t)));
6524 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown2
, ndr_get_array_length(ndr
, &r
->unknown2
), sizeof(uint16_t), CH_UTF16
));
6525 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown2_0
, 0);
6528 _mem_save_unknown3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6529 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown3
, 0);
6530 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown3
));
6531 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown3
));
6532 if (ndr_get_array_length(ndr
, &r
->unknown3
) > ndr_get_array_size(ndr
, &r
->unknown3
)) {
6533 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->unknown3
), ndr_get_array_length(ndr
, &r
->unknown3
));
6535 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->unknown3
), sizeof(uint16_t)));
6536 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown3
, ndr_get_array_length(ndr
, &r
->unknown3
), sizeof(uint16_t), CH_UTF16
));
6537 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown3_0
, 0);
6540 _mem_save_unknown4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6541 NDR_PULL_SET_MEM_CTX(ndr
, r
->unknown4
, 0);
6542 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->unknown4
));
6543 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->unknown4
));
6544 if (ndr_get_array_length(ndr
, &r
->unknown4
) > ndr_get_array_size(ndr
, &r
->unknown4
)) {
6545 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->unknown4
), ndr_get_array_length(ndr
, &r
->unknown4
));
6547 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->unknown4
), sizeof(uint16_t)));
6548 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->unknown4
, ndr_get_array_length(ndr
, &r
->unknown4
), sizeof(uint16_t), CH_UTF16
));
6549 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_unknown4_0
, 0);
6551 NDR_CHECK(ndr_pull_netr_BinaryString(ndr
, NDR_BUFFERS
, &r
->blob2
));
6552 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->product
));
6553 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown5
));
6554 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->unknown6
));
6556 return NT_STATUS_OK
;
6559 _PUBLIC_
void ndr_print_netr_DomainQuery1(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainQuery1
*r
)
6561 uint32_t cntr_unknown7_0
;
6562 ndr_print_struct(ndr
, name
, "netr_DomainQuery1");
6564 ndr_print_netr_Blob(ndr
, "blob", &r
->blob
);
6565 ndr_print_ptr(ndr
, "workstation_domain", r
->workstation_domain
);
6567 if (r
->workstation_domain
) {
6568 ndr_print_string(ndr
, "workstation_domain", r
->workstation_domain
);
6571 ndr_print_ptr(ndr
, "workstation_site", r
->workstation_site
);
6573 if (r
->workstation_site
) {
6574 ndr_print_string(ndr
, "workstation_site", r
->workstation_site
);
6577 ndr_print_ptr(ndr
, "unknown1", r
->unknown1
);
6580 ndr_print_string(ndr
, "unknown1", r
->unknown1
);
6583 ndr_print_ptr(ndr
, "unknown2", r
->unknown2
);
6586 ndr_print_string(ndr
, "unknown2", r
->unknown2
);
6589 ndr_print_ptr(ndr
, "unknown3", r
->unknown3
);
6592 ndr_print_string(ndr
, "unknown3", r
->unknown3
);
6595 ndr_print_ptr(ndr
, "unknown4", r
->unknown4
);
6598 ndr_print_string(ndr
, "unknown4", r
->unknown4
);
6601 ndr_print_netr_BinaryString(ndr
, "blob2", &r
->blob2
);
6602 ndr_print_lsa_String(ndr
, "product", &r
->product
);
6603 ndr_print_lsa_String(ndr
, "unknown5", &r
->unknown5
);
6604 ndr_print_lsa_String(ndr
, "unknown6", &r
->unknown6
);
6605 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown7", 4);
6607 for (cntr_unknown7_0
=0;cntr_unknown7_0
<4;cntr_unknown7_0
++) {
6609 asprintf(&idx_0
, "[%d]", cntr_unknown7_0
);
6611 ndr_print_uint32(ndr
, "unknown7", r
->unknown7
[cntr_unknown7_0
]);
6619 NTSTATUS
ndr_push_netr_DomainQuery(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DomainQuery
*r
)
6622 level
= ndr_push_get_switch_value(ndr
, r
);
6623 if (ndr_flags
& NDR_SCALARS
) {
6624 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6627 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->query1
));
6631 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->query1
));
6635 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6638 if (ndr_flags
& NDR_BUFFERS
) {
6642 NDR_CHECK(ndr_push_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
6648 NDR_CHECK(ndr_push_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
6653 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6656 return NT_STATUS_OK
;
6659 NTSTATUS
ndr_pull_netr_DomainQuery(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DomainQuery
*r
)
6663 TALLOC_CTX
*_mem_save_query1_0
;
6664 level
= ndr_pull_get_switch_value(ndr
, r
);
6665 if (ndr_flags
& NDR_SCALARS
) {
6666 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6667 if (_level
!= level
) {
6668 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for netr_DomainQuery", _level
);
6672 uint32_t _ptr_query1
;
6673 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_query1
));
6675 NDR_PULL_ALLOC(ndr
, r
->query1
);
6682 uint32_t _ptr_query1
;
6683 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_query1
));
6685 NDR_PULL_ALLOC(ndr
, r
->query1
);
6692 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6695 if (ndr_flags
& NDR_BUFFERS
) {
6699 _mem_save_query1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6700 NDR_PULL_SET_MEM_CTX(ndr
, r
->query1
, 0);
6701 NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
6702 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query1_0
, 0);
6708 _mem_save_query1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6709 NDR_PULL_SET_MEM_CTX(ndr
, r
->query1
, 0);
6710 NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->query1
));
6711 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query1_0
, 0);
6716 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6719 return NT_STATUS_OK
;
6722 _PUBLIC_
void ndr_print_netr_DomainQuery(struct ndr_print
*ndr
, const char *name
, const union netr_DomainQuery
*r
)
6725 level
= ndr_print_get_switch_value(ndr
, r
);
6726 ndr_print_union(ndr
, name
, level
, "netr_DomainQuery");
6729 ndr_print_ptr(ndr
, "query1", r
->query1
);
6732 ndr_print_netr_DomainQuery1(ndr
, "query1", r
->query1
);
6738 ndr_print_ptr(ndr
, "query1", r
->query1
);
6741 ndr_print_netr_DomainQuery1(ndr
, "query1", r
->query1
);
6747 ndr_print_bad_level(ndr
, name
, level
);
6751 NTSTATUS
ndr_push_netr_DomainTrustInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrustInfo
*r
)
6753 uint32_t cntr_unknown1_0
;
6754 uint32_t cntr_unknown_0
;
6755 if (ndr_flags
& NDR_SCALARS
) {
6756 NDR_CHECK(ndr_push_align(ndr
, 4));
6757 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->domainname
));
6758 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->fulldomainname
));
6759 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
6760 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
6761 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
6762 for (cntr_unknown1_0
= 0; cntr_unknown1_0
< 4; cntr_unknown1_0
++) {
6763 NDR_CHECK(ndr_push_netr_BinaryString(ndr
, NDR_SCALARS
, &r
->unknown1
[cntr_unknown1_0
]));
6765 for (cntr_unknown_0
= 0; cntr_unknown_0
< 4; cntr_unknown_0
++) {
6766 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
[cntr_unknown_0
]));
6769 if (ndr_flags
& NDR_BUFFERS
) {
6770 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->domainname
));
6771 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->fulldomainname
));
6772 NDR_CHECK(ndr_push_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
6773 NDR_CHECK(ndr_push_GUID(ndr
, NDR_BUFFERS
, &r
->guid
));
6775 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
6777 for (cntr_unknown1_0
= 0; cntr_unknown1_0
< 4; cntr_unknown1_0
++) {
6778 NDR_CHECK(ndr_push_netr_BinaryString(ndr
, NDR_BUFFERS
, &r
->unknown1
[cntr_unknown1_0
]));
6781 return NT_STATUS_OK
;
6784 NTSTATUS
ndr_pull_netr_DomainTrustInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrustInfo
*r
)
6787 TALLOC_CTX
*_mem_save_sid_0
;
6788 uint32_t cntr_unknown1_0
;
6789 uint32_t cntr_unknown_0
;
6790 if (ndr_flags
& NDR_SCALARS
) {
6791 NDR_CHECK(ndr_pull_align(ndr
, 4));
6792 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->domainname
));
6793 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->fulldomainname
));
6794 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_SCALARS
, &r
->forest
));
6795 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
6796 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
6798 NDR_PULL_ALLOC(ndr
, r
->sid
);
6802 for (cntr_unknown1_0
= 0; cntr_unknown1_0
< 4; cntr_unknown1_0
++) {
6803 NDR_CHECK(ndr_pull_netr_BinaryString(ndr
, NDR_SCALARS
, &r
->unknown1
[cntr_unknown1_0
]));
6805 for (cntr_unknown_0
= 0; cntr_unknown_0
< 4; cntr_unknown_0
++) {
6806 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
[cntr_unknown_0
]));
6809 if (ndr_flags
& NDR_BUFFERS
) {
6810 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->domainname
));
6811 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->fulldomainname
));
6812 NDR_CHECK(ndr_pull_lsa_String(ndr
, NDR_BUFFERS
, &r
->forest
));
6813 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_BUFFERS
, &r
->guid
));
6815 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6816 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
6817 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
6818 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
6820 for (cntr_unknown1_0
= 0; cntr_unknown1_0
< 4; cntr_unknown1_0
++) {
6821 NDR_CHECK(ndr_pull_netr_BinaryString(ndr
, NDR_BUFFERS
, &r
->unknown1
[cntr_unknown1_0
]));
6824 return NT_STATUS_OK
;
6827 _PUBLIC_
void ndr_print_netr_DomainTrustInfo(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrustInfo
*r
)
6829 uint32_t cntr_unknown1_0
;
6830 uint32_t cntr_unknown_0
;
6831 ndr_print_struct(ndr
, name
, "netr_DomainTrustInfo");
6833 ndr_print_lsa_String(ndr
, "domainname", &r
->domainname
);
6834 ndr_print_lsa_String(ndr
, "fulldomainname", &r
->fulldomainname
);
6835 ndr_print_lsa_String(ndr
, "forest", &r
->forest
);
6836 ndr_print_GUID(ndr
, "guid", &r
->guid
);
6837 ndr_print_ptr(ndr
, "sid", r
->sid
);
6840 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
6843 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown1", 4);
6845 for (cntr_unknown1_0
=0;cntr_unknown1_0
<4;cntr_unknown1_0
++) {
6847 asprintf(&idx_0
, "[%d]", cntr_unknown1_0
);
6849 ndr_print_netr_BinaryString(ndr
, "unknown1", &r
->unknown1
[cntr_unknown1_0
]);
6854 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown", 4);
6856 for (cntr_unknown_0
=0;cntr_unknown_0
<4;cntr_unknown_0
++) {
6858 asprintf(&idx_0
, "[%d]", cntr_unknown_0
);
6860 ndr_print_uint32(ndr
, "unknown", r
->unknown
[cntr_unknown_0
]);
6868 NTSTATUS
ndr_push_netr_DomainInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainInfo1
*r
)
6870 uint32_t cntr_trusts_1
;
6871 uint32_t cntr_unknown_0
;
6872 if (ndr_flags
& NDR_SCALARS
) {
6873 NDR_CHECK(ndr_push_align(ndr
, 4));
6874 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->domaininfo
));
6875 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_trusts
));
6876 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->trusts
));
6877 for (cntr_unknown_0
= 0; cntr_unknown_0
< 14; cntr_unknown_0
++) {
6878 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
[cntr_unknown_0
]));
6881 if (ndr_flags
& NDR_BUFFERS
) {
6882 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->domaininfo
));
6884 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_trusts
));
6885 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->num_trusts
; cntr_trusts_1
++) {
6886 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->trusts
[cntr_trusts_1
]));
6888 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->num_trusts
; cntr_trusts_1
++) {
6889 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->trusts
[cntr_trusts_1
]));
6893 return NT_STATUS_OK
;
6896 NTSTATUS
ndr_pull_netr_DomainInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainInfo1
*r
)
6898 uint32_t _ptr_trusts
;
6899 uint32_t cntr_trusts_1
;
6900 TALLOC_CTX
*_mem_save_trusts_0
;
6901 TALLOC_CTX
*_mem_save_trusts_1
;
6902 uint32_t cntr_unknown_0
;
6903 if (ndr_flags
& NDR_SCALARS
) {
6904 NDR_CHECK(ndr_pull_align(ndr
, 4));
6905 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->domaininfo
));
6906 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_trusts
));
6907 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_trusts
));
6909 NDR_PULL_ALLOC(ndr
, r
->trusts
);
6913 for (cntr_unknown_0
= 0; cntr_unknown_0
< 14; cntr_unknown_0
++) {
6914 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
[cntr_unknown_0
]));
6917 if (ndr_flags
& NDR_BUFFERS
) {
6918 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->domaininfo
));
6920 _mem_save_trusts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6921 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusts
, 0);
6922 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->trusts
));
6923 NDR_PULL_ALLOC_N(ndr
, r
->trusts
, ndr_get_array_size(ndr
, &r
->trusts
));
6924 _mem_save_trusts_1
= NDR_PULL_GET_MEM_CTX(ndr
);
6925 NDR_PULL_SET_MEM_CTX(ndr
, r
->trusts
, 0);
6926 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->num_trusts
; cntr_trusts_1
++) {
6927 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_SCALARS
, &r
->trusts
[cntr_trusts_1
]));
6929 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->num_trusts
; cntr_trusts_1
++) {
6930 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr
, NDR_BUFFERS
, &r
->trusts
[cntr_trusts_1
]));
6932 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_1
, 0);
6933 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_0
, 0);
6936 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->trusts
, r
->num_trusts
));
6939 return NT_STATUS_OK
;
6942 _PUBLIC_
void ndr_print_netr_DomainInfo1(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainInfo1
*r
)
6944 uint32_t cntr_trusts_1
;
6945 uint32_t cntr_unknown_0
;
6946 ndr_print_struct(ndr
, name
, "netr_DomainInfo1");
6948 ndr_print_netr_DomainTrustInfo(ndr
, "domaininfo", &r
->domaininfo
);
6949 ndr_print_uint32(ndr
, "num_trusts", r
->num_trusts
);
6950 ndr_print_ptr(ndr
, "trusts", r
->trusts
);
6953 ndr
->print(ndr
, "%s: ARRAY(%d)", "trusts", r
->num_trusts
);
6955 for (cntr_trusts_1
=0;cntr_trusts_1
<r
->num_trusts
;cntr_trusts_1
++) {
6957 asprintf(&idx_1
, "[%d]", cntr_trusts_1
);
6959 ndr_print_netr_DomainTrustInfo(ndr
, "trusts", &r
->trusts
[cntr_trusts_1
]);
6966 ndr
->print(ndr
, "%s: ARRAY(%d)", "unknown", 14);
6968 for (cntr_unknown_0
=0;cntr_unknown_0
<14;cntr_unknown_0
++) {
6970 asprintf(&idx_0
, "[%d]", cntr_unknown_0
);
6972 ndr_print_uint32(ndr
, "unknown", r
->unknown
[cntr_unknown_0
]);
6980 NTSTATUS
ndr_push_netr_DomainInfo(struct ndr_push
*ndr
, int ndr_flags
, const union netr_DomainInfo
*r
)
6983 level
= ndr_push_get_switch_value(ndr
, r
);
6984 if (ndr_flags
& NDR_SCALARS
) {
6985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6988 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
6992 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
6996 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
6999 if (ndr_flags
& NDR_BUFFERS
) {
7003 NDR_CHECK(ndr_push_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7009 NDR_CHECK(ndr_push_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7014 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7017 return NT_STATUS_OK
;
7020 NTSTATUS
ndr_pull_netr_DomainInfo(struct ndr_pull
*ndr
, int ndr_flags
, union netr_DomainInfo
*r
)
7024 TALLOC_CTX
*_mem_save_info1_0
;
7025 level
= ndr_pull_get_switch_value(ndr
, r
);
7026 if (ndr_flags
& NDR_SCALARS
) {
7027 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7028 if (_level
!= level
) {
7029 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for netr_DomainInfo", _level
);
7033 uint32_t _ptr_info1
;
7034 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
7036 NDR_PULL_ALLOC(ndr
, r
->info1
);
7043 uint32_t _ptr_info1
;
7044 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
7046 NDR_PULL_ALLOC(ndr
, r
->info1
);
7053 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7056 if (ndr_flags
& NDR_BUFFERS
) {
7060 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7061 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7062 NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7063 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7069 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7070 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7071 NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7072 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7077 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
7080 return NT_STATUS_OK
;
7083 _PUBLIC_
void ndr_print_netr_DomainInfo(struct ndr_print
*ndr
, const char *name
, const union netr_DomainInfo
*r
)
7086 level
= ndr_print_get_switch_value(ndr
, r
);
7087 ndr_print_union(ndr
, name
, level
, "netr_DomainInfo");
7090 ndr_print_ptr(ndr
, "info1", r
->info1
);
7093 ndr_print_netr_DomainInfo1(ndr
, "info1", r
->info1
);
7099 ndr_print_ptr(ndr
, "info1", r
->info1
);
7102 ndr_print_netr_DomainInfo1(ndr
, "info1", r
->info1
);
7108 ndr_print_bad_level(ndr
, name
, level
);
7112 NTSTATUS
ndr_push_netr_CryptPassword(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_CryptPassword
*r
)
7115 uint32_t _flags_save_STRUCT
= ndr
->flags
;
7116 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
7117 if (ndr_flags
& NDR_SCALARS
) {
7118 NDR_CHECK(ndr_push_align(ndr
, 4));
7119 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
7120 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
7122 if (ndr_flags
& NDR_BUFFERS
) {
7124 ndr
->flags
= _flags_save_STRUCT
;
7126 return NT_STATUS_OK
;
7129 NTSTATUS
ndr_pull_netr_CryptPassword(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_CryptPassword
*r
)
7132 uint32_t _flags_save_STRUCT
= ndr
->flags
;
7133 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
7134 if (ndr_flags
& NDR_SCALARS
) {
7135 NDR_CHECK(ndr_pull_align(ndr
, 4));
7136 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, 512));
7137 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
7139 if (ndr_flags
& NDR_BUFFERS
) {
7141 ndr
->flags
= _flags_save_STRUCT
;
7143 return NT_STATUS_OK
;
7146 _PUBLIC_
void ndr_print_netr_CryptPassword(struct ndr_print
*ndr
, const char *name
, const struct netr_CryptPassword
*r
)
7148 ndr_print_struct(ndr
, name
, "netr_CryptPassword");
7150 uint32_t _flags_save_STRUCT
= ndr
->flags
;
7151 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
7153 ndr_print_array_uint8(ndr
, "data", r
->data
, 512);
7154 ndr_print_uint32(ndr
, "length", r
->length
);
7156 ndr
->flags
= _flags_save_STRUCT
;
7160 NTSTATUS
ndr_push_netr_TrustFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7163 return NT_STATUS_OK
;
7166 NTSTATUS
ndr_pull_netr_TrustFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7169 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7171 return NT_STATUS_OK
;
7174 _PUBLIC_
void ndr_print_netr_TrustFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7176 ndr_print_uint32(ndr
, name
, r
);
7178 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST
, r
);
7179 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND
, r
);
7180 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT
, r
);
7181 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY
, r
);
7182 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE
, r
);
7183 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND
, r
);
7187 NTSTATUS
ndr_push_netr_TrustType(struct ndr_push
*ndr
, int ndr_flags
, enum netr_TrustType r
)
7189 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7190 return NT_STATUS_OK
;
7193 NTSTATUS
ndr_pull_netr_TrustType(struct ndr_pull
*ndr
, int ndr_flags
, enum netr_TrustType
*r
)
7196 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7198 return NT_STATUS_OK
;
7201 _PUBLIC_
void ndr_print_netr_TrustType(struct ndr_print
*ndr
, const char *name
, enum netr_TrustType r
)
7203 const char *val
= NULL
;
7206 case NETR_TRUST_TYPE_DOWNLEVEL
: val
= "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7207 case NETR_TRUST_TYPE_UPLEVEL
: val
= "NETR_TRUST_TYPE_UPLEVEL"; break;
7208 case NETR_TRUST_TYPE_MIT
: val
= "NETR_TRUST_TYPE_MIT"; break;
7209 case NETR_TRUST_TYPE_DCE
: val
= "NETR_TRUST_TYPE_DCE"; break;
7211 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
7214 NTSTATUS
ndr_push_netr_TrustAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
7216 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7217 return NT_STATUS_OK
;
7220 NTSTATUS
ndr_pull_netr_TrustAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
7223 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7225 return NT_STATUS_OK
;
7228 _PUBLIC_
void ndr_print_netr_TrustAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
7230 ndr_print_uint32(ndr
, name
, r
);
7232 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE
, r
);
7233 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY
, r
);
7234 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN
, r
);
7235 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE
, r
);
7236 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION
, r
);
7237 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST
, r
);
7238 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL
, r
);
7242 NTSTATUS
ndr_push_netr_DomainTrust(struct ndr_push
*ndr
, int ndr_flags
, const struct netr_DomainTrust
*r
)
7244 if (ndr_flags
& NDR_SCALARS
) {
7245 NDR_CHECK(ndr_push_align(ndr
, 4));
7246 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->netbios_name
));
7247 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_name
));
7248 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->trust_flags
));
7249 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->parent_index
));
7250 NDR_CHECK(ndr_push_netr_TrustType(ndr
, NDR_SCALARS
, r
->trust_type
));
7251 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr
, NDR_SCALARS
, r
->trust_attributes
));
7252 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
7253 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
7255 if (ndr_flags
& NDR_BUFFERS
) {
7256 if (r
->netbios_name
) {
7257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
7258 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
7260 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->netbios_name
, ndr_charset_length(r
->netbios_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7263 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
7264 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7265 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
7266 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_name
, ndr_charset_length(r
->dns_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7269 NDR_CHECK(ndr_push_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
7271 NDR_CHECK(ndr_push_GUID(ndr
, NDR_BUFFERS
, &r
->guid
));
7273 return NT_STATUS_OK
;
7276 NTSTATUS
ndr_pull_netr_DomainTrust(struct ndr_pull
*ndr
, int ndr_flags
, struct netr_DomainTrust
*r
)
7278 uint32_t _ptr_netbios_name
;
7279 TALLOC_CTX
*_mem_save_netbios_name_0
;
7280 uint32_t _ptr_dns_name
;
7281 TALLOC_CTX
*_mem_save_dns_name_0
;
7283 TALLOC_CTX
*_mem_save_sid_0
;
7284 if (ndr_flags
& NDR_SCALARS
) {
7285 NDR_CHECK(ndr_pull_align(ndr
, 4));
7286 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_netbios_name
));
7287 if (_ptr_netbios_name
) {
7288 NDR_PULL_ALLOC(ndr
, r
->netbios_name
);
7290 r
->netbios_name
= NULL
;
7292 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_name
));
7293 if (_ptr_dns_name
) {
7294 NDR_PULL_ALLOC(ndr
, r
->dns_name
);
7298 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->trust_flags
));
7299 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->parent_index
));
7300 NDR_CHECK(ndr_pull_netr_TrustType(ndr
, NDR_SCALARS
, &r
->trust_type
));
7301 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr
, NDR_SCALARS
, &r
->trust_attributes
));
7302 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
7304 NDR_PULL_ALLOC(ndr
, r
->sid
);
7308 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
7310 if (ndr_flags
& NDR_BUFFERS
) {
7311 if (r
->netbios_name
) {
7312 _mem_save_netbios_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7313 NDR_PULL_SET_MEM_CTX(ndr
, r
->netbios_name
, 0);
7314 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->netbios_name
));
7315 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->netbios_name
));
7316 if (ndr_get_array_length(ndr
, &r
->netbios_name
) > ndr_get_array_size(ndr
, &r
->netbios_name
)) {
7317 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->netbios_name
), ndr_get_array_length(ndr
, &r
->netbios_name
));
7319 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t)));
7320 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->netbios_name
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t), CH_UTF16
));
7321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_netbios_name_0
, 0);
7324 _mem_save_dns_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7325 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_name
, 0);
7326 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_name
));
7327 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_name
));
7328 if (ndr_get_array_length(ndr
, &r
->dns_name
) > ndr_get_array_size(ndr
, &r
->dns_name
)) {
7329 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dns_name
), ndr_get_array_length(ndr
, &r
->dns_name
));
7331 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t)));
7332 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_name
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t), CH_UTF16
));
7333 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_name_0
, 0);
7336 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7337 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
7338 NDR_CHECK(ndr_pull_dom_sid2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sid
));
7339 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
7341 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_BUFFERS
, &r
->guid
));
7343 return NT_STATUS_OK
;
7346 _PUBLIC_
void ndr_print_netr_DomainTrust(struct ndr_print
*ndr
, const char *name
, const struct netr_DomainTrust
*r
)
7348 ndr_print_struct(ndr
, name
, "netr_DomainTrust");
7350 ndr_print_ptr(ndr
, "netbios_name", r
->netbios_name
);
7352 if (r
->netbios_name
) {
7353 ndr_print_string(ndr
, "netbios_name", r
->netbios_name
);
7356 ndr_print_ptr(ndr
, "dns_name", r
->dns_name
);
7359 ndr_print_string(ndr
, "dns_name", r
->dns_name
);
7362 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->trust_flags
);
7363 ndr_print_uint32(ndr
, "parent_index", r
->parent_index
);
7364 ndr_print_netr_TrustType(ndr
, "trust_type", r
->trust_type
);
7365 ndr_print_netr_TrustAttributes(ndr
, "trust_attributes", r
->trust_attributes
);
7366 ndr_print_ptr(ndr
, "sid", r
->sid
);
7369 ndr_print_dom_sid2(ndr
, "sid", r
->sid
);
7372 ndr_print_GUID(ndr
, "guid", &r
->guid
);
7376 NTSTATUS
ndr_push_netr_LogonUasLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogon
*r
)
7378 if (flags
& NDR_IN
) {
7379 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
7380 if (r
->in
.server_name
) {
7381 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
7382 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7383 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
7384 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
7387 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7388 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
7389 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7390 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
7391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7392 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
7393 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7395 if (flags
& NDR_OUT
) {
7396 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
7398 NDR_CHECK(ndr_push_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
7400 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
7402 return NT_STATUS_OK
;
7405 NTSTATUS
ndr_pull_netr_LogonUasLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogon
*r
)
7407 uint32_t _ptr_server_name
;
7409 TALLOC_CTX
*_mem_save_server_name_0
;
7410 TALLOC_CTX
*_mem_save_info_0
;
7411 if (flags
& NDR_IN
) {
7412 ZERO_STRUCT(r
->out
);
7414 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
7415 if (_ptr_server_name
) {
7416 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
7418 r
->in
.server_name
= NULL
;
7420 if (r
->in
.server_name
) {
7421 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7422 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
7423 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
7424 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
7425 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
7426 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
7428 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
7429 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
7430 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
7432 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
7433 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
7434 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
7435 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
7437 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
7438 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
7439 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
7440 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
7441 if (ndr_get_array_length(ndr
, &r
->in
.workstation
) > ndr_get_array_size(ndr
, &r
->in
.workstation
)) {
7442 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.workstation
), ndr_get_array_length(ndr
, &r
->in
.workstation
));
7444 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t)));
7445 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t), CH_UTF16
));
7447 if (flags
& NDR_OUT
) {
7448 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
7450 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
7455 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7456 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
7457 NDR_CHECK(ndr_pull_netr_UasInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
7458 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
7460 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
7462 return NT_STATUS_OK
;
7465 _PUBLIC_
void ndr_print_netr_LogonUasLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogon
*r
)
7467 ndr_print_struct(ndr
, name
, "netr_LogonUasLogon");
7469 if (flags
& NDR_SET_VALUES
) {
7470 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
7472 if (flags
& NDR_IN
) {
7473 ndr_print_struct(ndr
, "in", "netr_LogonUasLogon");
7475 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
7477 if (r
->in
.server_name
) {
7478 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
7481 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
7482 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
7485 if (flags
& NDR_OUT
) {
7486 ndr_print_struct(ndr
, "out", "netr_LogonUasLogon");
7488 ndr_print_ptr(ndr
, "info", r
->out
.info
);
7491 ndr_print_netr_UasInfo(ndr
, "info", r
->out
.info
);
7494 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
7500 NTSTATUS
ndr_push_netr_LogonUasLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonUasLogoff
*r
)
7502 if (flags
& NDR_IN
) {
7503 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
7504 if (r
->in
.server_name
) {
7505 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
7506 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7507 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
7508 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7510 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
7511 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7512 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
7513 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
7515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7516 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
)));
7517 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.workstation
, ndr_charset_length(r
->in
.workstation
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7519 if (flags
& NDR_OUT
) {
7520 if (r
->out
.info
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
7521 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
7522 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
7524 return NT_STATUS_OK
;
7527 NTSTATUS
ndr_pull_netr_LogonUasLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonUasLogoff
*r
)
7529 uint32_t _ptr_server_name
;
7530 TALLOC_CTX
*_mem_save_server_name_0
;
7531 TALLOC_CTX
*_mem_save_info_0
;
7532 if (flags
& NDR_IN
) {
7533 ZERO_STRUCT(r
->out
);
7535 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
7536 if (_ptr_server_name
) {
7537 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
7539 r
->in
.server_name
= NULL
;
7541 if (r
->in
.server_name
) {
7542 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7543 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
7544 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
7545 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
7546 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
7547 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
7549 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
7550 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
7551 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
7553 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
7554 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
7555 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
7556 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
7558 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
7559 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
7560 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.workstation
));
7561 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.workstation
));
7562 if (ndr_get_array_length(ndr
, &r
->in
.workstation
) > ndr_get_array_size(ndr
, &r
->in
.workstation
)) {
7563 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.workstation
), ndr_get_array_length(ndr
, &r
->in
.workstation
));
7565 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t)));
7566 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.workstation
, ndr_get_array_length(ndr
, &r
->in
.workstation
), sizeof(uint16_t), CH_UTF16
));
7567 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
7568 ZERO_STRUCTP(r
->out
.info
);
7570 if (flags
& NDR_OUT
) {
7571 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7572 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
7574 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7575 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
7576 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr
, NDR_SCALARS
, r
->out
.info
));
7577 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
7578 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
7580 return NT_STATUS_OK
;
7583 _PUBLIC_
void ndr_print_netr_LogonUasLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonUasLogoff
*r
)
7585 ndr_print_struct(ndr
, name
, "netr_LogonUasLogoff");
7587 if (flags
& NDR_SET_VALUES
) {
7588 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
7590 if (flags
& NDR_IN
) {
7591 ndr_print_struct(ndr
, "in", "netr_LogonUasLogoff");
7593 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
7595 if (r
->in
.server_name
) {
7596 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
7599 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
7600 ndr_print_string(ndr
, "workstation", r
->in
.workstation
);
7603 if (flags
& NDR_OUT
) {
7604 ndr_print_struct(ndr
, "out", "netr_LogonUasLogoff");
7606 ndr_print_ptr(ndr
, "info", r
->out
.info
);
7608 ndr_print_netr_UasLogoffInfo(ndr
, "info", r
->out
.info
);
7610 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
7616 NTSTATUS
ndr_push_netr_LogonSamLogon(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogon
*r
)
7618 if (flags
& NDR_IN
) {
7619 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
7620 if (r
->in
.server_name
) {
7621 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
7622 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7623 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
7624 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7626 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
7627 if (r
->in
.computer_name
) {
7628 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
7629 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7630 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
7631 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7633 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
7634 if (r
->in
.credential
) {
7635 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
7637 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
7638 if (r
->in
.return_authenticator
) {
7639 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
7641 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
7642 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
7643 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
7644 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
7646 if (flags
& NDR_OUT
) {
7647 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
7648 if (r
->out
.return_authenticator
) {
7649 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
7651 if (r
->out
.validation
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
7652 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
7653 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
7654 if (r
->out
.authoritative
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
7655 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
7656 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
7658 return NT_STATUS_OK
;
7661 NTSTATUS
ndr_pull_netr_LogonSamLogon(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogon
*r
)
7663 uint32_t _ptr_server_name
;
7664 uint32_t _ptr_computer_name
;
7665 uint32_t _ptr_credential
;
7666 uint32_t _ptr_return_authenticator
;
7667 TALLOC_CTX
*_mem_save_server_name_0
;
7668 TALLOC_CTX
*_mem_save_computer_name_0
;
7669 TALLOC_CTX
*_mem_save_credential_0
;
7670 TALLOC_CTX
*_mem_save_return_authenticator_0
;
7671 TALLOC_CTX
*_mem_save_validation_0
;
7672 TALLOC_CTX
*_mem_save_authoritative_0
;
7673 if (flags
& NDR_IN
) {
7674 ZERO_STRUCT(r
->out
);
7676 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
7677 if (_ptr_server_name
) {
7678 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
7680 r
->in
.server_name
= NULL
;
7682 if (r
->in
.server_name
) {
7683 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7684 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
7685 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
7686 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
7687 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
7688 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
7690 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
7691 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
7692 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
7694 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
7695 if (_ptr_computer_name
) {
7696 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
7698 r
->in
.computer_name
= NULL
;
7700 if (r
->in
.computer_name
) {
7701 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7702 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
7703 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
7704 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
7705 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
7706 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
7708 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
7709 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
7710 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
7712 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
7713 if (_ptr_credential
) {
7714 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
7716 r
->in
.credential
= NULL
;
7718 if (r
->in
.credential
) {
7719 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7720 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
7721 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
7722 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
7724 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
7725 if (_ptr_return_authenticator
) {
7726 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
7728 r
->in
.return_authenticator
= NULL
;
7730 if (r
->in
.return_authenticator
) {
7731 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7732 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
7733 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
7734 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
7736 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
7737 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
7738 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
7739 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
7740 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
7741 ZERO_STRUCTP(r
->out
.validation
);
7742 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
7743 ZERO_STRUCTP(r
->out
.authoritative
);
7745 if (flags
& NDR_OUT
) {
7746 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
7747 if (_ptr_return_authenticator
) {
7748 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
7750 r
->out
.return_authenticator
= NULL
;
7752 if (r
->out
.return_authenticator
) {
7753 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7754 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
7755 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
7756 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
7758 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7759 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
7761 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7762 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
7763 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
7764 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
7765 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
7766 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
7767 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
7769 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7770 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
7771 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
7772 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
7773 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
7775 return NT_STATUS_OK
;
7778 _PUBLIC_
void ndr_print_netr_LogonSamLogon(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogon
*r
)
7780 ndr_print_struct(ndr
, name
, "netr_LogonSamLogon");
7782 if (flags
& NDR_SET_VALUES
) {
7783 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
7785 if (flags
& NDR_IN
) {
7786 ndr_print_struct(ndr
, "in", "netr_LogonSamLogon");
7788 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
7790 if (r
->in
.server_name
) {
7791 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
7794 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
7796 if (r
->in
.computer_name
) {
7797 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
7800 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
7802 if (r
->in
.credential
) {
7803 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
7806 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
7808 if (r
->in
.return_authenticator
) {
7809 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
7812 ndr_print_uint16(ndr
, "logon_level", r
->in
.logon_level
);
7813 ndr_print_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
);
7814 ndr_print_netr_LogonLevel(ndr
, "logon", &r
->in
.logon
);
7815 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
7818 if (flags
& NDR_OUT
) {
7819 ndr_print_struct(ndr
, "out", "netr_LogonSamLogon");
7821 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
7823 if (r
->out
.return_authenticator
) {
7824 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
7827 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
7829 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
7830 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
7832 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
7834 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
7836 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
7842 NTSTATUS
ndr_push_netr_LogonSamLogoff(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogoff
*r
)
7844 if (flags
& NDR_IN
) {
7845 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
7846 if (r
->in
.server_name
) {
7847 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
7848 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7849 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
7850 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7852 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
7853 if (r
->in
.computer_name
) {
7854 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
7855 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7856 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
7857 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7859 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
7860 if (r
->in
.credential
) {
7861 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
7863 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
7864 if (r
->in
.return_authenticator
) {
7865 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
7867 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
7868 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
7869 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
7871 if (flags
& NDR_OUT
) {
7872 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
7873 if (r
->out
.return_authenticator
) {
7874 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
7876 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
7878 return NT_STATUS_OK
;
7881 NTSTATUS
ndr_pull_netr_LogonSamLogoff(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogoff
*r
)
7883 uint32_t _ptr_server_name
;
7884 uint32_t _ptr_computer_name
;
7885 uint32_t _ptr_credential
;
7886 uint32_t _ptr_return_authenticator
;
7887 TALLOC_CTX
*_mem_save_server_name_0
;
7888 TALLOC_CTX
*_mem_save_computer_name_0
;
7889 TALLOC_CTX
*_mem_save_credential_0
;
7890 TALLOC_CTX
*_mem_save_return_authenticator_0
;
7891 if (flags
& NDR_IN
) {
7892 ZERO_STRUCT(r
->out
);
7894 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
7895 if (_ptr_server_name
) {
7896 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
7898 r
->in
.server_name
= NULL
;
7900 if (r
->in
.server_name
) {
7901 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7902 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
7903 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
7904 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
7905 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
7906 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
7908 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
7909 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
7910 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
7912 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
7913 if (_ptr_computer_name
) {
7914 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
7916 r
->in
.computer_name
= NULL
;
7918 if (r
->in
.computer_name
) {
7919 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7920 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
7921 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
7922 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
7923 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
7924 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
7926 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
7927 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
7928 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
7930 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
7931 if (_ptr_credential
) {
7932 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
7934 r
->in
.credential
= NULL
;
7936 if (r
->in
.credential
) {
7937 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7938 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
7939 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
7940 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
7942 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
7943 if (_ptr_return_authenticator
) {
7944 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
7946 r
->in
.return_authenticator
= NULL
;
7948 if (r
->in
.return_authenticator
) {
7949 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7950 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
7951 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
7952 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
7954 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
7955 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
7956 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
7958 if (flags
& NDR_OUT
) {
7959 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
7960 if (_ptr_return_authenticator
) {
7961 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
7963 r
->out
.return_authenticator
= NULL
;
7965 if (r
->out
.return_authenticator
) {
7966 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7967 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
7968 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
7969 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
7971 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
7973 return NT_STATUS_OK
;
7976 _PUBLIC_
void ndr_print_netr_LogonSamLogoff(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogoff
*r
)
7978 ndr_print_struct(ndr
, name
, "netr_LogonSamLogoff");
7980 if (flags
& NDR_SET_VALUES
) {
7981 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
7983 if (flags
& NDR_IN
) {
7984 ndr_print_struct(ndr
, "in", "netr_LogonSamLogoff");
7986 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
7988 if (r
->in
.server_name
) {
7989 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
7992 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
7994 if (r
->in
.computer_name
) {
7995 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
7998 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
8000 if (r
->in
.credential
) {
8001 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
8004 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8006 if (r
->in
.return_authenticator
) {
8007 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8010 ndr_print_uint16(ndr
, "logon_level", r
->in
.logon_level
);
8011 ndr_print_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
);
8012 ndr_print_netr_LogonLevel(ndr
, "logon", &r
->in
.logon
);
8015 if (flags
& NDR_OUT
) {
8016 ndr_print_struct(ndr
, "out", "netr_LogonSamLogoff");
8018 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8020 if (r
->out
.return_authenticator
) {
8021 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8024 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8030 NTSTATUS
ndr_push_netr_ServerReqChallenge(struct ndr_push
*ndr
, int flags
, const struct netr_ServerReqChallenge
*r
)
8032 if (flags
& NDR_IN
) {
8033 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8034 if (r
->in
.server_name
) {
8035 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8036 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8037 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8038 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8040 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8041 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8042 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8043 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8044 if (r
->in
.credentials
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8045 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
8047 if (flags
& NDR_OUT
) {
8048 if (r
->out
.credentials
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8049 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.credentials
));
8050 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8052 return NT_STATUS_OK
;
8055 NTSTATUS
ndr_pull_netr_ServerReqChallenge(struct ndr_pull
*ndr
, int flags
, struct netr_ServerReqChallenge
*r
)
8057 uint32_t _ptr_server_name
;
8058 TALLOC_CTX
*_mem_save_server_name_0
;
8059 TALLOC_CTX
*_mem_save_credentials_0
;
8060 if (flags
& NDR_IN
) {
8061 ZERO_STRUCT(r
->out
);
8063 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
8064 if (_ptr_server_name
) {
8065 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
8067 r
->in
.server_name
= NULL
;
8069 if (r
->in
.server_name
) {
8070 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8071 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
8072 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
8073 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
8074 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
8075 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
8077 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
8078 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
8079 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
8081 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
8082 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
8083 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
8084 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
8086 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
8087 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
8088 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8089 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
8091 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8092 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
8093 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
8094 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
8095 NDR_PULL_ALLOC(ndr
, r
->out
.credentials
);
8096 *r
->out
.credentials
= *r
->in
.credentials
;
8098 if (flags
& NDR_OUT
) {
8099 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8100 NDR_PULL_ALLOC(ndr
, r
->out
.credentials
);
8102 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8103 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
8104 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.credentials
));
8105 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
8106 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8108 return NT_STATUS_OK
;
8111 _PUBLIC_
void ndr_print_netr_ServerReqChallenge(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerReqChallenge
*r
)
8113 ndr_print_struct(ndr
, name
, "netr_ServerReqChallenge");
8115 if (flags
& NDR_SET_VALUES
) {
8116 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8118 if (flags
& NDR_IN
) {
8119 ndr_print_struct(ndr
, "in", "netr_ServerReqChallenge");
8121 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
8123 if (r
->in
.server_name
) {
8124 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
8127 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
8128 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
8130 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
8134 if (flags
& NDR_OUT
) {
8135 ndr_print_struct(ndr
, "out", "netr_ServerReqChallenge");
8137 ndr_print_ptr(ndr
, "credentials", r
->out
.credentials
);
8139 ndr_print_netr_Credential(ndr
, "credentials", r
->out
.credentials
);
8141 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8147 NTSTATUS
ndr_push_netr_ServerAuthenticate(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate
*r
)
8149 if (flags
& NDR_IN
) {
8150 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8151 if (r
->in
.server_name
) {
8152 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8153 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8154 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8155 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8157 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8158 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8159 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8160 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8161 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
8162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8163 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8164 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8165 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8166 if (r
->in
.credentials
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8167 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
8169 if (flags
& NDR_OUT
) {
8170 if (r
->out
.credentials
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8171 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.credentials
));
8172 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8174 return NT_STATUS_OK
;
8177 NTSTATUS
ndr_pull_netr_ServerAuthenticate(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate
*r
)
8179 uint32_t _ptr_server_name
;
8180 TALLOC_CTX
*_mem_save_server_name_0
;
8181 TALLOC_CTX
*_mem_save_credentials_0
;
8182 if (flags
& NDR_IN
) {
8183 ZERO_STRUCT(r
->out
);
8185 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
8186 if (_ptr_server_name
) {
8187 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
8189 r
->in
.server_name
= NULL
;
8191 if (r
->in
.server_name
) {
8192 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8193 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
8194 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
8195 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
8196 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
8197 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
8199 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
8200 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
8201 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
8203 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
8204 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
8205 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
8206 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
8208 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
8209 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
8210 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
8211 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
8212 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
8213 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
8214 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
8216 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
8217 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
8218 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8219 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
8221 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8222 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
8223 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
8224 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
8225 NDR_PULL_ALLOC(ndr
, r
->out
.credentials
);
8226 *r
->out
.credentials
= *r
->in
.credentials
;
8228 if (flags
& NDR_OUT
) {
8229 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8230 NDR_PULL_ALLOC(ndr
, r
->out
.credentials
);
8232 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8233 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
8234 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.credentials
));
8235 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
8236 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8238 return NT_STATUS_OK
;
8241 _PUBLIC_
void ndr_print_netr_ServerAuthenticate(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate
*r
)
8243 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate");
8245 if (flags
& NDR_SET_VALUES
) {
8246 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8248 if (flags
& NDR_IN
) {
8249 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate");
8251 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
8253 if (r
->in
.server_name
) {
8254 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
8257 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
8258 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
8259 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
8260 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
8262 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
8266 if (flags
& NDR_OUT
) {
8267 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate");
8269 ndr_print_ptr(ndr
, "credentials", r
->out
.credentials
);
8271 ndr_print_netr_Credential(ndr
, "credentials", r
->out
.credentials
);
8273 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8279 NTSTATUS
ndr_push_netr_ServerPasswordSet(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet
*r
)
8281 if (flags
& NDR_IN
) {
8282 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
8283 if (r
->in
.server_name
) {
8284 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8285 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8286 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
8287 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8289 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8290 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8291 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
8292 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8293 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
8294 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
8297 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8298 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
8299 NDR_CHECK(ndr_push_samr_Password(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.new_password
));
8301 if (flags
& NDR_OUT
) {
8302 if (r
->out
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8303 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8304 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8306 return NT_STATUS_OK
;
8309 NTSTATUS
ndr_pull_netr_ServerPasswordSet(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet
*r
)
8311 uint32_t _ptr_server_name
;
8312 TALLOC_CTX
*_mem_save_server_name_0
;
8313 TALLOC_CTX
*_mem_save_return_authenticator_0
;
8314 if (flags
& NDR_IN
) {
8315 ZERO_STRUCT(r
->out
);
8317 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
8318 if (_ptr_server_name
) {
8319 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
8321 r
->in
.server_name
= NULL
;
8323 if (r
->in
.server_name
) {
8324 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8325 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
8326 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
8327 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
8328 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
8329 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
8331 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
8332 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
8333 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
8335 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
8336 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
8337 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
8338 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
8340 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
8341 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
8342 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
8343 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
8344 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
8345 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
8346 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
8348 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
8349 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
8350 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
8351 NDR_CHECK(ndr_pull_samr_Password(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.new_password
));
8352 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
8353 ZERO_STRUCTP(r
->out
.return_authenticator
);
8355 if (flags
& NDR_OUT
) {
8356 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8357 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
8359 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8360 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
8361 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8362 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
8363 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8365 return NT_STATUS_OK
;
8368 _PUBLIC_
void ndr_print_netr_ServerPasswordSet(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet
*r
)
8370 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet");
8372 if (flags
& NDR_SET_VALUES
) {
8373 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8375 if (flags
& NDR_IN
) {
8376 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet");
8378 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
8380 if (r
->in
.server_name
) {
8381 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
8384 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
8385 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
8386 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
8387 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
8388 ndr_print_samr_Password(ndr
, "new_password", &r
->in
.new_password
);
8391 if (flags
& NDR_OUT
) {
8392 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet");
8394 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8396 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8398 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8404 NTSTATUS
ndr_push_netr_DatabaseDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseDeltas
*r
)
8406 if (flags
& NDR_IN
) {
8407 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
8408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
8410 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8411 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
8412 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8413 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
8414 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8415 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
8416 if (r
->in
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8417 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8418 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
8419 if (r
->in
.sequence_num
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8420 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->in
.sequence_num
));
8421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
8423 if (flags
& NDR_OUT
) {
8424 if (r
->out
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8425 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8426 if (r
->out
.sequence_num
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8427 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, *r
->out
.sequence_num
));
8428 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.delta_enum_array
));
8429 if (r
->out
.delta_enum_array
) {
8430 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.delta_enum_array
));
8432 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8434 return NT_STATUS_OK
;
8437 NTSTATUS
ndr_pull_netr_DatabaseDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseDeltas
*r
)
8439 uint32_t _ptr_delta_enum_array
;
8440 TALLOC_CTX
*_mem_save_return_authenticator_0
;
8441 TALLOC_CTX
*_mem_save_sequence_num_0
;
8442 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
8443 if (flags
& NDR_IN
) {
8444 ZERO_STRUCT(r
->out
);
8446 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
8447 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
8448 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
8449 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
8451 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
8452 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
8453 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
8454 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
8455 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
8456 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computername
), ndr_get_array_length(ndr
, &r
->in
.computername
));
8458 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
8459 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
8460 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
8461 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8462 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
8464 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8465 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
8466 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8467 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
8468 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
8469 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8470 NDR_PULL_ALLOC(ndr
, r
->in
.sequence_num
);
8472 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8473 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
8474 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->in
.sequence_num
));
8475 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
8476 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
8477 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
8478 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
8479 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
8480 *r
->out
.sequence_num
= *r
->in
.sequence_num
;
8482 if (flags
& NDR_OUT
) {
8483 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8484 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
8486 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8487 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
8488 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8489 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
8490 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8491 NDR_PULL_ALLOC(ndr
, r
->out
.sequence_num
);
8493 _mem_save_sequence_num_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8494 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sequence_num
, LIBNDR_FLAG_REF_ALLOC
);
8495 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, r
->out
.sequence_num
));
8496 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sequence_num_0
, LIBNDR_FLAG_REF_ALLOC
);
8497 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
8498 if (_ptr_delta_enum_array
) {
8499 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
8501 r
->out
.delta_enum_array
= NULL
;
8503 if (r
->out
.delta_enum_array
) {
8504 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8505 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, 0);
8506 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.delta_enum_array
));
8507 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, 0);
8509 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8511 return NT_STATUS_OK
;
8514 _PUBLIC_
void ndr_print_netr_DatabaseDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseDeltas
*r
)
8516 ndr_print_struct(ndr
, name
, "netr_DatabaseDeltas");
8518 if (flags
& NDR_SET_VALUES
) {
8519 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8521 if (flags
& NDR_IN
) {
8522 ndr_print_struct(ndr
, "in", "netr_DatabaseDeltas");
8524 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
8525 ndr_print_string(ndr
, "computername", r
->in
.computername
);
8526 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
8527 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8529 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8531 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
8532 ndr_print_ptr(ndr
, "sequence_num", r
->in
.sequence_num
);
8534 ndr_print_udlong(ndr
, "sequence_num", *r
->in
.sequence_num
);
8536 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
8539 if (flags
& NDR_OUT
) {
8540 ndr_print_struct(ndr
, "out", "netr_DatabaseDeltas");
8542 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8544 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8546 ndr_print_ptr(ndr
, "sequence_num", r
->out
.sequence_num
);
8548 ndr_print_udlong(ndr
, "sequence_num", *r
->out
.sequence_num
);
8550 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
8552 if (r
->out
.delta_enum_array
) {
8553 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
8556 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8562 NTSTATUS
ndr_push_netr_DatabaseSync(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync
*r
)
8564 if (flags
& NDR_IN
) {
8565 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
8566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8567 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
8568 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
8570 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8571 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
8572 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8573 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
8574 if (r
->in
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8575 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8576 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
8577 if (r
->in
.sync_context
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8578 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
8579 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
8581 if (flags
& NDR_OUT
) {
8582 if (r
->out
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8583 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8584 if (r
->out
.sync_context
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8585 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
8586 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.delta_enum_array
));
8587 if (r
->out
.delta_enum_array
) {
8588 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.delta_enum_array
));
8590 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8592 return NT_STATUS_OK
;
8595 NTSTATUS
ndr_pull_netr_DatabaseSync(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync
*r
)
8597 uint32_t _ptr_delta_enum_array
;
8598 TALLOC_CTX
*_mem_save_return_authenticator_0
;
8599 TALLOC_CTX
*_mem_save_sync_context_0
;
8600 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
8601 if (flags
& NDR_IN
) {
8602 ZERO_STRUCT(r
->out
);
8604 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
8605 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
8606 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
8607 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
8609 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
8610 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
8611 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
8612 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
8613 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
8614 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computername
), ndr_get_array_length(ndr
, &r
->in
.computername
));
8616 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
8617 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
8618 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
8619 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8620 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
8622 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8623 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
8624 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8625 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
8626 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
8627 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8628 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
8630 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8631 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
8632 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
8633 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
8634 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
8635 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
8636 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
8637 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
8638 *r
->out
.sync_context
= *r
->in
.sync_context
;
8640 if (flags
& NDR_OUT
) {
8641 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8642 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
8644 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8645 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
8646 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8647 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
8648 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8649 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
8651 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8652 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
8653 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
8654 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
8655 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
8656 if (_ptr_delta_enum_array
) {
8657 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
8659 r
->out
.delta_enum_array
= NULL
;
8661 if (r
->out
.delta_enum_array
) {
8662 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8663 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, 0);
8664 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.delta_enum_array
));
8665 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, 0);
8667 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8669 return NT_STATUS_OK
;
8672 _PUBLIC_
void ndr_print_netr_DatabaseSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync
*r
)
8674 ndr_print_struct(ndr
, name
, "netr_DatabaseSync");
8676 if (flags
& NDR_SET_VALUES
) {
8677 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8679 if (flags
& NDR_IN
) {
8680 ndr_print_struct(ndr
, "in", "netr_DatabaseSync");
8682 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
8683 ndr_print_string(ndr
, "computername", r
->in
.computername
);
8684 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
8685 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8687 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8689 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
8690 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
8692 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
8694 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
8697 if (flags
& NDR_OUT
) {
8698 ndr_print_struct(ndr
, "out", "netr_DatabaseSync");
8700 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8702 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8704 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
8706 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
8708 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
8710 if (r
->out
.delta_enum_array
) {
8711 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
8714 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8720 NTSTATUS
ndr_push_netr_AccountDeltas(struct ndr_push
*ndr
, int flags
, const struct netr_AccountDeltas
*r
)
8722 if (flags
& NDR_IN
) {
8723 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
8724 if (r
->in
.logon_server
) {
8725 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
8726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
8728 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8730 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
8731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
8733 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8734 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
8735 if (r
->in
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8736 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8737 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
8738 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
8739 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
8740 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
8742 if (flags
& NDR_OUT
) {
8743 if (r
->out
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8744 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8745 if (r
->out
.buffer
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8747 struct ndr_push
*_ndr_buffer
;
8748 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
8749 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
8750 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
8752 if (r
->out
.count_returned
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8753 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
8754 if (r
->out
.total_entries
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8755 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
8756 if (r
->out
.recordid
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8757 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
8758 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8760 return NT_STATUS_OK
;
8763 NTSTATUS
ndr_pull_netr_AccountDeltas(struct ndr_pull
*ndr
, int flags
, struct netr_AccountDeltas
*r
)
8765 uint32_t _ptr_logon_server
;
8766 TALLOC_CTX
*_mem_save_logon_server_0
;
8767 TALLOC_CTX
*_mem_save_return_authenticator_0
;
8768 TALLOC_CTX
*_mem_save_buffer_0
;
8769 TALLOC_CTX
*_mem_save_count_returned_0
;
8770 TALLOC_CTX
*_mem_save_total_entries_0
;
8771 TALLOC_CTX
*_mem_save_recordid_0
;
8772 if (flags
& NDR_IN
) {
8773 ZERO_STRUCT(r
->out
);
8775 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
8776 if (_ptr_logon_server
) {
8777 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
8779 r
->in
.logon_server
= NULL
;
8781 if (r
->in
.logon_server
) {
8782 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8783 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
8784 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
8785 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
8786 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
8787 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
8789 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
8790 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
8791 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
8793 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
8794 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
8795 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
8796 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computername
), ndr_get_array_length(ndr
, &r
->in
.computername
));
8798 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
8799 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
8800 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
8801 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8802 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
8804 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8805 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
8806 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8807 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
8808 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, &r
->in
.uas
));
8809 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
8810 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
8811 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
8812 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
8813 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
8814 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
8815 ZERO_STRUCTP(r
->out
.buffer
);
8816 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
8817 ZERO_STRUCTP(r
->out
.count_returned
);
8818 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
8819 ZERO_STRUCTP(r
->out
.total_entries
);
8820 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
8821 ZERO_STRUCTP(r
->out
.recordid
);
8823 if (flags
& NDR_OUT
) {
8824 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8825 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
8827 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8828 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
8829 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8830 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
8831 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8832 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
8834 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8835 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
8837 struct ndr_pull
*_ndr_buffer
;
8838 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
8839 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
8840 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
8842 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
8843 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8844 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
8846 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8847 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
8848 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
8849 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
8850 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8851 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
8853 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8854 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
8855 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
8856 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
8857 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
8858 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
8860 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8861 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
8862 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
8863 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
8864 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
8866 return NT_STATUS_OK
;
8869 _PUBLIC_
void ndr_print_netr_AccountDeltas(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountDeltas
*r
)
8871 ndr_print_struct(ndr
, name
, "netr_AccountDeltas");
8873 if (flags
& NDR_SET_VALUES
) {
8874 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
8876 if (flags
& NDR_IN
) {
8877 ndr_print_struct(ndr
, "in", "netr_AccountDeltas");
8879 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
8881 if (r
->in
.logon_server
) {
8882 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
8885 ndr_print_string(ndr
, "computername", r
->in
.computername
);
8886 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
8887 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8889 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
8891 ndr_print_netr_UAS_INFO_0(ndr
, "uas", &r
->in
.uas
);
8892 ndr_print_uint32(ndr
, "count", r
->in
.count
);
8893 ndr_print_uint32(ndr
, "level", r
->in
.level
);
8894 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
8897 if (flags
& NDR_OUT
) {
8898 ndr_print_struct(ndr
, "out", "netr_AccountDeltas");
8900 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8902 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
8904 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
8906 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
8908 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
8910 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
8912 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
8914 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
8916 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
8918 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
8920 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
8926 NTSTATUS
ndr_push_netr_AccountSync(struct ndr_push
*ndr
, int flags
, const struct netr_AccountSync
*r
)
8928 if (flags
& NDR_IN
) {
8929 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
8930 if (r
->in
.logon_server
) {
8931 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
8932 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
8934 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
8937 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8938 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
8939 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8940 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
8941 if (r
->in
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8942 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
8943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reference
));
8944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
8945 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.buffersize
));
8946 if (r
->in
.recordid
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8947 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
8949 if (flags
& NDR_OUT
) {
8950 if (r
->out
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8951 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
8952 if (r
->out
.buffer
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8954 struct ndr_push
*_ndr_buffer
;
8955 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
8956 NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
8957 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
8959 if (r
->out
.count_returned
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8960 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count_returned
));
8961 if (r
->out
.total_entries
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.total_entries
));
8963 if (r
->out
.next_reference
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8964 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.next_reference
));
8965 if (r
->out
.recordid
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
8966 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
8967 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
8969 return NT_STATUS_OK
;
8972 NTSTATUS
ndr_pull_netr_AccountSync(struct ndr_pull
*ndr
, int flags
, struct netr_AccountSync
*r
)
8974 uint32_t _ptr_logon_server
;
8975 TALLOC_CTX
*_mem_save_logon_server_0
;
8976 TALLOC_CTX
*_mem_save_return_authenticator_0
;
8977 TALLOC_CTX
*_mem_save_buffer_0
;
8978 TALLOC_CTX
*_mem_save_count_returned_0
;
8979 TALLOC_CTX
*_mem_save_total_entries_0
;
8980 TALLOC_CTX
*_mem_save_next_reference_0
;
8981 TALLOC_CTX
*_mem_save_recordid_0
;
8982 if (flags
& NDR_IN
) {
8983 ZERO_STRUCT(r
->out
);
8985 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
8986 if (_ptr_logon_server
) {
8987 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
8989 r
->in
.logon_server
= NULL
;
8991 if (r
->in
.logon_server
) {
8992 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8993 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
8994 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
8995 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
8996 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
8997 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
8999 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9000 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
9001 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
9003 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
9004 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
9005 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
9006 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computername
), ndr_get_array_length(ndr
, &r
->in
.computername
));
9008 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
9009 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
9010 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9011 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9012 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9014 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9015 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9016 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9017 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9018 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reference
));
9019 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
9020 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.buffersize
));
9021 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9022 NDR_PULL_ALLOC(ndr
, r
->in
.recordid
);
9024 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9025 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
9026 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->in
.recordid
));
9027 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
9028 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9029 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
9030 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
9031 ZERO_STRUCTP(r
->out
.buffer
);
9032 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
9033 ZERO_STRUCTP(r
->out
.count_returned
);
9034 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
9035 ZERO_STRUCTP(r
->out
.total_entries
);
9036 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
9037 ZERO_STRUCTP(r
->out
.next_reference
);
9038 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
9039 *r
->out
.recordid
= *r
->in
.recordid
;
9041 if (flags
& NDR_OUT
) {
9042 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9043 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9045 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9046 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9047 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9048 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9049 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9050 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
9052 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9053 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
9055 struct ndr_pull
*_ndr_buffer
;
9056 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_buffer
, 4, -1));
9057 NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer
, NDR_SCALARS
, r
->out
.buffer
));
9058 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_buffer
, 4, -1));
9060 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
9061 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9062 NDR_PULL_ALLOC(ndr
, r
->out
.count_returned
);
9064 _mem_save_count_returned_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9065 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count_returned
, LIBNDR_FLAG_REF_ALLOC
);
9066 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count_returned
));
9067 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_returned_0
, LIBNDR_FLAG_REF_ALLOC
);
9068 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9069 NDR_PULL_ALLOC(ndr
, r
->out
.total_entries
);
9071 _mem_save_total_entries_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9072 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.total_entries
, LIBNDR_FLAG_REF_ALLOC
);
9073 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.total_entries
));
9074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_total_entries_0
, LIBNDR_FLAG_REF_ALLOC
);
9075 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9076 NDR_PULL_ALLOC(ndr
, r
->out
.next_reference
);
9078 _mem_save_next_reference_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9079 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.next_reference
, LIBNDR_FLAG_REF_ALLOC
);
9080 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.next_reference
));
9081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_next_reference_0
, LIBNDR_FLAG_REF_ALLOC
);
9082 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9083 NDR_PULL_ALLOC(ndr
, r
->out
.recordid
);
9085 _mem_save_recordid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9086 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.recordid
, LIBNDR_FLAG_REF_ALLOC
);
9087 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr
, NDR_SCALARS
, r
->out
.recordid
));
9088 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_recordid_0
, LIBNDR_FLAG_REF_ALLOC
);
9089 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9091 return NT_STATUS_OK
;
9094 _PUBLIC_
void ndr_print_netr_AccountSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_AccountSync
*r
)
9096 ndr_print_struct(ndr
, name
, "netr_AccountSync");
9098 if (flags
& NDR_SET_VALUES
) {
9099 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9101 if (flags
& NDR_IN
) {
9102 ndr_print_struct(ndr
, "in", "netr_AccountSync");
9104 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
9106 if (r
->in
.logon_server
) {
9107 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
9110 ndr_print_string(ndr
, "computername", r
->in
.computername
);
9111 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
9112 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9114 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9116 ndr_print_uint32(ndr
, "reference", r
->in
.reference
);
9117 ndr_print_uint32(ndr
, "level", r
->in
.level
);
9118 ndr_print_uint32(ndr
, "buffersize", r
->in
.buffersize
);
9119 ndr_print_ptr(ndr
, "recordid", r
->in
.recordid
);
9121 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->in
.recordid
);
9125 if (flags
& NDR_OUT
) {
9126 ndr_print_struct(ndr
, "out", "netr_AccountSync");
9128 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9130 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9132 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
9134 ndr_print_netr_AccountBuffer(ndr
, "buffer", r
->out
.buffer
);
9136 ndr_print_ptr(ndr
, "count_returned", r
->out
.count_returned
);
9138 ndr_print_uint32(ndr
, "count_returned", *r
->out
.count_returned
);
9140 ndr_print_ptr(ndr
, "total_entries", r
->out
.total_entries
);
9142 ndr_print_uint32(ndr
, "total_entries", *r
->out
.total_entries
);
9144 ndr_print_ptr(ndr
, "next_reference", r
->out
.next_reference
);
9146 ndr_print_uint32(ndr
, "next_reference", *r
->out
.next_reference
);
9148 ndr_print_ptr(ndr
, "recordid", r
->out
.recordid
);
9150 ndr_print_netr_UAS_INFO_0(ndr
, "recordid", r
->out
.recordid
);
9152 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9158 NTSTATUS
ndr_push_netr_GetDcName(struct ndr_push
*ndr
, int flags
, const struct netr_GetDcName
*r
)
9160 if (flags
& NDR_IN
) {
9161 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9163 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9164 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9165 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
9166 if (r
->in
.domainname
) {
9167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
9168 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9169 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
9170 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9173 if (flags
& NDR_OUT
) {
9174 if (r
->out
.dcname
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9175 if (*r
->out
.dcname
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9176 NDR_CHECK(ndr_push_ref_ptr(ndr
));
9177 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
9178 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9179 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
9180 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9181 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9183 return NT_STATUS_OK
;
9186 NTSTATUS
ndr_pull_netr_GetDcName(struct ndr_pull
*ndr
, int flags
, struct netr_GetDcName
*r
)
9188 uint32_t _ptr_domainname
;
9189 uint32_t _ptr_dcname
;
9190 TALLOC_CTX
*_mem_save_domainname_0
;
9191 TALLOC_CTX
*_mem_save_dcname_0
;
9192 if (flags
& NDR_IN
) {
9193 ZERO_STRUCT(r
->out
);
9195 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9196 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9197 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9198 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
9200 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9201 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
9202 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
9203 if (_ptr_domainname
) {
9204 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
9206 r
->in
.domainname
= NULL
;
9208 if (r
->in
.domainname
) {
9209 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9210 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
9211 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
9212 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
9213 if (ndr_get_array_length(ndr
, &r
->in
.domainname
) > ndr_get_array_size(ndr
, &r
->in
.domainname
)) {
9214 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.domainname
), ndr_get_array_length(ndr
, &r
->in
.domainname
));
9216 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t)));
9217 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t), CH_UTF16
));
9218 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
9220 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
9221 ZERO_STRUCTP(r
->out
.dcname
);
9223 if (flags
& NDR_OUT
) {
9224 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9225 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
9227 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9228 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
9229 NDR_CHECK(ndr_pull_ref_ptr(ndr
, &_ptr_dcname
));
9230 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
9231 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
9232 if (ndr_get_array_length(ndr
, r
->out
.dcname
) > ndr_get_array_size(ndr
, r
->out
.dcname
)) {
9233 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, r
->out
.dcname
), ndr_get_array_length(ndr
, r
->out
.dcname
));
9235 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t)));
9236 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t), CH_UTF16
));
9237 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
9238 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9240 return NT_STATUS_OK
;
9243 _PUBLIC_
void ndr_print_netr_GetDcName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetDcName
*r
)
9245 ndr_print_struct(ndr
, name
, "netr_GetDcName");
9247 if (flags
& NDR_SET_VALUES
) {
9248 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9250 if (flags
& NDR_IN
) {
9251 ndr_print_struct(ndr
, "in", "netr_GetDcName");
9253 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
9254 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
9256 if (r
->in
.domainname
) {
9257 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
9262 if (flags
& NDR_OUT
) {
9263 ndr_print_struct(ndr
, "out", "netr_GetDcName");
9265 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
9267 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
9269 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
9272 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9278 NTSTATUS
ndr_push_netr_LogonControl(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl
*r
)
9280 if (flags
& NDR_IN
) {
9281 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
9282 if (r
->in
.logon_server
) {
9283 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9284 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9285 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9286 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9288 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr
, NDR_SCALARS
, r
->in
.function_code
));
9289 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
9291 if (flags
& NDR_OUT
) {
9292 if (r
->out
.info
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9293 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
9294 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
9295 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
9297 return NT_STATUS_OK
;
9300 NTSTATUS
ndr_pull_netr_LogonControl(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl
*r
)
9302 uint32_t _ptr_logon_server
;
9303 TALLOC_CTX
*_mem_save_logon_server_0
;
9304 TALLOC_CTX
*_mem_save_info_0
;
9305 if (flags
& NDR_IN
) {
9306 ZERO_STRUCT(r
->out
);
9308 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
9309 if (_ptr_logon_server
) {
9310 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
9312 r
->in
.logon_server
= NULL
;
9314 if (r
->in
.logon_server
) {
9315 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9316 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
9317 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9318 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9319 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9320 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
9322 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9323 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
9324 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
9326 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
9327 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
9328 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9329 ZERO_STRUCTP(r
->out
.info
);
9331 if (flags
& NDR_OUT
) {
9332 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9333 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
9335 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9336 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
9337 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
9338 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
9339 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
9340 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
9342 return NT_STATUS_OK
;
9345 _PUBLIC_
void ndr_print_netr_LogonControl(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl
*r
)
9347 ndr_print_struct(ndr
, name
, "netr_LogonControl");
9349 if (flags
& NDR_SET_VALUES
) {
9350 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9352 if (flags
& NDR_IN
) {
9353 ndr_print_struct(ndr
, "in", "netr_LogonControl");
9355 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
9357 if (r
->in
.logon_server
) {
9358 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
9361 ndr_print_netr_LogonControlCode(ndr
, "function_code", r
->in
.function_code
);
9362 ndr_print_uint32(ndr
, "level", r
->in
.level
);
9365 if (flags
& NDR_OUT
) {
9366 ndr_print_struct(ndr
, "out", "netr_LogonControl");
9368 ndr_print_ptr(ndr
, "info", r
->out
.info
);
9370 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
9371 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "info", r
->out
.info
);
9373 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
9379 NTSTATUS
ndr_push_netr_GetAnyDCName(struct ndr_push
*ndr
, int flags
, const struct netr_GetAnyDCName
*r
)
9381 if (flags
& NDR_IN
) {
9382 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
9383 if (r
->in
.logon_server
) {
9384 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9387 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9389 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domainname
));
9390 if (r
->in
.domainname
) {
9391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
9392 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
)));
9394 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domainname
, ndr_charset_length(r
->in
.domainname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9397 if (flags
& NDR_OUT
) {
9398 if (r
->out
.dcname
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9399 if (*r
->out
.dcname
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9400 NDR_CHECK(ndr_push_ref_ptr(ndr
));
9401 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
9402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
)));
9404 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.dcname
, ndr_charset_length(*r
->out
.dcname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9405 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
9407 return NT_STATUS_OK
;
9410 NTSTATUS
ndr_pull_netr_GetAnyDCName(struct ndr_pull
*ndr
, int flags
, struct netr_GetAnyDCName
*r
)
9412 uint32_t _ptr_logon_server
;
9413 uint32_t _ptr_domainname
;
9414 uint32_t _ptr_dcname
;
9415 TALLOC_CTX
*_mem_save_logon_server_0
;
9416 TALLOC_CTX
*_mem_save_domainname_0
;
9417 TALLOC_CTX
*_mem_save_dcname_0
;
9418 if (flags
& NDR_IN
) {
9419 ZERO_STRUCT(r
->out
);
9421 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
9422 if (_ptr_logon_server
) {
9423 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
9425 r
->in
.logon_server
= NULL
;
9427 if (r
->in
.logon_server
) {
9428 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9429 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
9430 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9431 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9432 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9433 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
9435 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9436 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
9437 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
9439 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domainname
));
9440 if (_ptr_domainname
) {
9441 NDR_PULL_ALLOC(ndr
, r
->in
.domainname
);
9443 r
->in
.domainname
= NULL
;
9445 if (r
->in
.domainname
) {
9446 _mem_save_domainname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9447 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domainname
, 0);
9448 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domainname
));
9449 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domainname
));
9450 if (ndr_get_array_length(ndr
, &r
->in
.domainname
) > ndr_get_array_size(ndr
, &r
->in
.domainname
)) {
9451 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.domainname
), ndr_get_array_length(ndr
, &r
->in
.domainname
));
9453 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t)));
9454 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domainname
, ndr_get_array_length(ndr
, &r
->in
.domainname
), sizeof(uint16_t), CH_UTF16
));
9455 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domainname_0
, 0);
9457 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
9458 ZERO_STRUCTP(r
->out
.dcname
);
9460 if (flags
& NDR_OUT
) {
9461 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9462 NDR_PULL_ALLOC(ndr
, r
->out
.dcname
);
9464 _mem_save_dcname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9465 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.dcname
, LIBNDR_FLAG_REF_ALLOC
);
9466 NDR_CHECK(ndr_pull_ref_ptr(ndr
, &_ptr_dcname
));
9467 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.dcname
));
9468 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.dcname
));
9469 if (ndr_get_array_length(ndr
, r
->out
.dcname
) > ndr_get_array_size(ndr
, r
->out
.dcname
)) {
9470 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, r
->out
.dcname
), ndr_get_array_length(ndr
, r
->out
.dcname
));
9472 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t)));
9473 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.dcname
, ndr_get_array_length(ndr
, r
->out
.dcname
), sizeof(uint16_t), CH_UTF16
));
9474 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dcname_0
, LIBNDR_FLAG_REF_ALLOC
);
9475 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
9477 return NT_STATUS_OK
;
9480 _PUBLIC_
void ndr_print_netr_GetAnyDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_GetAnyDCName
*r
)
9482 ndr_print_struct(ndr
, name
, "netr_GetAnyDCName");
9484 if (flags
& NDR_SET_VALUES
) {
9485 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9487 if (flags
& NDR_IN
) {
9488 ndr_print_struct(ndr
, "in", "netr_GetAnyDCName");
9490 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
9492 if (r
->in
.logon_server
) {
9493 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
9496 ndr_print_ptr(ndr
, "domainname", r
->in
.domainname
);
9498 if (r
->in
.domainname
) {
9499 ndr_print_string(ndr
, "domainname", r
->in
.domainname
);
9504 if (flags
& NDR_OUT
) {
9505 ndr_print_struct(ndr
, "out", "netr_GetAnyDCName");
9507 ndr_print_ptr(ndr
, "dcname", r
->out
.dcname
);
9509 ndr_print_ptr(ndr
, "dcname", *r
->out
.dcname
);
9511 ndr_print_string(ndr
, "dcname", *r
->out
.dcname
);
9514 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
9520 NTSTATUS
ndr_push_netr_LogonControl2(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2
*r
)
9522 if (flags
& NDR_IN
) {
9523 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
9524 if (r
->in
.logon_server
) {
9525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9527 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9528 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.function_code
));
9531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
9532 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.data
, r
->in
.function_code
));
9533 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
9535 if (flags
& NDR_OUT
) {
9536 if (r
->out
.query
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9537 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
9538 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
9539 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
9541 return NT_STATUS_OK
;
9544 NTSTATUS
ndr_pull_netr_LogonControl2(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2
*r
)
9546 uint32_t _ptr_logon_server
;
9547 TALLOC_CTX
*_mem_save_logon_server_0
;
9548 TALLOC_CTX
*_mem_save_query_0
;
9549 if (flags
& NDR_IN
) {
9550 ZERO_STRUCT(r
->out
);
9552 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
9553 if (_ptr_logon_server
) {
9554 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
9556 r
->in
.logon_server
= NULL
;
9558 if (r
->in
.logon_server
) {
9559 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9560 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
9561 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9562 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9563 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9564 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
9566 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9567 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
9568 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
9570 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
9571 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
9572 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.data
, r
->in
.function_code
));
9573 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
9574 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
9575 ZERO_STRUCTP(r
->out
.query
);
9577 if (flags
& NDR_OUT
) {
9578 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9579 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
9581 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9582 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
9583 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
9584 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
9585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
9586 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
9588 return NT_STATUS_OK
;
9591 _PUBLIC_
void ndr_print_netr_LogonControl2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2
*r
)
9593 ndr_print_struct(ndr
, name
, "netr_LogonControl2");
9595 if (flags
& NDR_SET_VALUES
) {
9596 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9598 if (flags
& NDR_IN
) {
9599 ndr_print_struct(ndr
, "in", "netr_LogonControl2");
9601 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
9603 if (r
->in
.logon_server
) {
9604 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
9607 ndr_print_uint32(ndr
, "function_code", r
->in
.function_code
);
9608 ndr_print_uint32(ndr
, "level", r
->in
.level
);
9609 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.function_code
);
9610 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", &r
->in
.data
);
9613 if (flags
& NDR_OUT
) {
9614 ndr_print_struct(ndr
, "out", "netr_LogonControl2");
9616 ndr_print_ptr(ndr
, "query", r
->out
.query
);
9618 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
9619 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
9621 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
9627 NTSTATUS
ndr_push_netr_ServerAuthenticate2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate2
*r
)
9629 if (flags
& NDR_IN
) {
9630 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
9631 if (r
->in
.server_name
) {
9632 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9633 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
9635 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9637 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9638 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9639 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
9640 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9641 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
9642 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9644 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
9645 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9646 if (r
->in
.credentials
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9647 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
9648 if (r
->in
.negotiate_flags
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9649 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
9651 if (flags
& NDR_OUT
) {
9652 if (r
->out
.credentials
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9653 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.credentials
));
9654 if (r
->out
.negotiate_flags
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9655 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
9656 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9658 return NT_STATUS_OK
;
9661 NTSTATUS
ndr_pull_netr_ServerAuthenticate2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate2
*r
)
9663 uint32_t _ptr_server_name
;
9664 TALLOC_CTX
*_mem_save_server_name_0
;
9665 TALLOC_CTX
*_mem_save_credentials_0
;
9666 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
9667 if (flags
& NDR_IN
) {
9668 ZERO_STRUCT(r
->out
);
9670 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
9671 if (_ptr_server_name
) {
9672 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
9674 r
->in
.server_name
= NULL
;
9676 if (r
->in
.server_name
) {
9677 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9678 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
9679 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
9680 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
9681 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
9682 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
9684 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
9685 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
9686 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
9688 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
9689 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
9690 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
9691 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
9693 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
9694 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
9695 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
9696 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
9697 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
9698 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
9699 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
9701 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
9702 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
9703 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9704 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
9706 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9707 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
9708 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
9709 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
9710 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9711 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
9713 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9714 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
9715 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
9716 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
9717 NDR_PULL_ALLOC(ndr
, r
->out
.credentials
);
9718 *r
->out
.credentials
= *r
->in
.credentials
;
9719 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
9720 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
9722 if (flags
& NDR_OUT
) {
9723 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9724 NDR_PULL_ALLOC(ndr
, r
->out
.credentials
);
9726 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9727 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
9728 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.credentials
));
9729 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
9730 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9731 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
9733 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9734 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
9735 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
9736 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
9737 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9739 return NT_STATUS_OK
;
9742 _PUBLIC_
void ndr_print_netr_ServerAuthenticate2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate2
*r
)
9744 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate2");
9746 if (flags
& NDR_SET_VALUES
) {
9747 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9749 if (flags
& NDR_IN
) {
9750 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate2");
9752 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
9754 if (r
->in
.server_name
) {
9755 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
9758 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
9759 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
9760 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
9761 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
9763 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
9765 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
9767 ndr_print_uint32(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
9771 if (flags
& NDR_OUT
) {
9772 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate2");
9774 ndr_print_ptr(ndr
, "credentials", r
->out
.credentials
);
9776 ndr_print_netr_Credential(ndr
, "credentials", r
->out
.credentials
);
9778 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
9780 ndr_print_uint32(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
9782 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9788 NTSTATUS
ndr_push_netr_DatabaseSync2(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseSync2
*r
)
9790 if (flags
& NDR_IN
) {
9791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9794 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9796 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9797 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9798 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9799 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9800 if (r
->in
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9801 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9802 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr
, NDR_SCALARS
, r
->in
.database_id
));
9803 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.restart_state
));
9804 if (r
->in
.sync_context
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9805 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.sync_context
));
9806 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.preferredmaximumlength
));
9808 if (flags
& NDR_OUT
) {
9809 if (r
->out
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9810 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9811 if (r
->out
.sync_context
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.sync_context
));
9813 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.delta_enum_array
));
9814 if (r
->out
.delta_enum_array
) {
9815 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.delta_enum_array
));
9817 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9819 return NT_STATUS_OK
;
9822 NTSTATUS
ndr_pull_netr_DatabaseSync2(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseSync2
*r
)
9824 uint32_t _ptr_delta_enum_array
;
9825 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9826 TALLOC_CTX
*_mem_save_sync_context_0
;
9827 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
9828 if (flags
& NDR_IN
) {
9829 ZERO_STRUCT(r
->out
);
9831 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9832 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9833 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9834 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
9836 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9837 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
9838 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
9839 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
9840 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
9841 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computername
), ndr_get_array_length(ndr
, &r
->in
.computername
));
9843 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
9844 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
9845 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9846 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9847 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
9849 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9850 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9851 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9852 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9853 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr
, NDR_SCALARS
, &r
->in
.database_id
));
9854 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.restart_state
));
9855 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9856 NDR_PULL_ALLOC(ndr
, r
->in
.sync_context
);
9858 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9859 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
9860 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.sync_context
));
9861 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
9862 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.preferredmaximumlength
));
9863 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9864 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
9865 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
9866 *r
->out
.sync_context
= *r
->in
.sync_context
;
9868 if (flags
& NDR_OUT
) {
9869 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9870 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
9872 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9873 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
9874 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9875 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
9876 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
9877 NDR_PULL_ALLOC(ndr
, r
->out
.sync_context
);
9879 _mem_save_sync_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9880 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.sync_context
, LIBNDR_FLAG_REF_ALLOC
);
9881 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.sync_context
));
9882 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sync_context_0
, LIBNDR_FLAG_REF_ALLOC
);
9883 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
9884 if (_ptr_delta_enum_array
) {
9885 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
9887 r
->out
.delta_enum_array
= NULL
;
9889 if (r
->out
.delta_enum_array
) {
9890 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9891 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, 0);
9892 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.delta_enum_array
));
9893 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, 0);
9895 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
9897 return NT_STATUS_OK
;
9900 _PUBLIC_
void ndr_print_netr_DatabaseSync2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseSync2
*r
)
9902 ndr_print_struct(ndr
, name
, "netr_DatabaseSync2");
9904 if (flags
& NDR_SET_VALUES
) {
9905 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
9907 if (flags
& NDR_IN
) {
9908 ndr_print_struct(ndr
, "in", "netr_DatabaseSync2");
9910 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
9911 ndr_print_string(ndr
, "computername", r
->in
.computername
);
9912 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
9913 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9915 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
9917 ndr_print_netr_SamDatabaseID(ndr
, "database_id", r
->in
.database_id
);
9918 ndr_print_uint16(ndr
, "restart_state", r
->in
.restart_state
);
9919 ndr_print_ptr(ndr
, "sync_context", r
->in
.sync_context
);
9921 ndr_print_uint32(ndr
, "sync_context", *r
->in
.sync_context
);
9923 ndr_print_uint32(ndr
, "preferredmaximumlength", r
->in
.preferredmaximumlength
);
9926 if (flags
& NDR_OUT
) {
9927 ndr_print_struct(ndr
, "out", "netr_DatabaseSync2");
9929 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9931 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
9933 ndr_print_ptr(ndr
, "sync_context", r
->out
.sync_context
);
9935 ndr_print_uint32(ndr
, "sync_context", *r
->out
.sync_context
);
9937 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
9939 if (r
->out
.delta_enum_array
) {
9940 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
9943 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
9949 NTSTATUS
ndr_push_netr_DatabaseRedo(struct ndr_push
*ndr
, int flags
, const struct netr_DatabaseRedo
*r
)
9951 if (flags
& NDR_IN
) {
9952 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9954 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
9955 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9958 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computername
, CH_UTF16
)));
9959 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computername
, ndr_charset_length(r
->in
.computername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9960 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
9961 if (r
->in
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9962 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
9963 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.change_log_entry
));
9964 if (r
->in
.change_log_entry
) {
9965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_log_entry_size
));
9966 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.change_log_entry
, r
->in
.change_log_entry_size
));
9968 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_log_entry_size
));
9970 if (flags
& NDR_OUT
) {
9971 if (r
->out
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
9972 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
9973 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.delta_enum_array
));
9974 if (r
->out
.delta_enum_array
) {
9975 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.delta_enum_array
));
9977 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
9979 return NT_STATUS_OK
;
9982 NTSTATUS
ndr_pull_netr_DatabaseRedo(struct ndr_pull
*ndr
, int flags
, struct netr_DatabaseRedo
*r
)
9984 uint32_t _ptr_change_log_entry
;
9985 uint32_t _ptr_delta_enum_array
;
9986 TALLOC_CTX
*_mem_save_return_authenticator_0
;
9987 TALLOC_CTX
*_mem_save_change_log_entry_0
;
9988 TALLOC_CTX
*_mem_save_delta_enum_array_0
;
9989 if (flags
& NDR_IN
) {
9990 ZERO_STRUCT(r
->out
);
9992 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
9993 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
9994 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
9995 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
9997 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
9998 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
9999 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computername
));
10000 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computername
));
10001 if (ndr_get_array_length(ndr
, &r
->in
.computername
) > ndr_get_array_size(ndr
, &r
->in
.computername
)) {
10002 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computername
), ndr_get_array_length(ndr
, &r
->in
.computername
));
10004 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t)));
10005 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computername
, ndr_get_array_length(ndr
, &r
->in
.computername
), sizeof(uint16_t), CH_UTF16
));
10006 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
10007 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10008 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
10010 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10011 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10012 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
10013 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10014 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_change_log_entry
));
10015 if (_ptr_change_log_entry
) {
10016 NDR_PULL_ALLOC(ndr
, r
->in
.change_log_entry
);
10018 r
->in
.change_log_entry
= NULL
;
10020 if (r
->in
.change_log_entry
) {
10021 _mem_save_change_log_entry_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10022 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.change_log_entry
, 0);
10023 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.change_log_entry
));
10024 NDR_PULL_ALLOC_N(ndr
, r
->in
.change_log_entry
, ndr_get_array_size(ndr
, &r
->in
.change_log_entry
));
10025 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.change_log_entry
, ndr_get_array_size(ndr
, &r
->in
.change_log_entry
)));
10026 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_change_log_entry_0
, 0);
10028 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_log_entry_size
));
10029 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10030 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
10031 if (r
->in
.change_log_entry
) {
10032 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.change_log_entry
, r
->in
.change_log_entry_size
));
10035 if (flags
& NDR_OUT
) {
10036 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10037 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
10039 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10040 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
10041 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
10042 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
10043 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_delta_enum_array
));
10044 if (_ptr_delta_enum_array
) {
10045 NDR_PULL_ALLOC(ndr
, r
->out
.delta_enum_array
);
10047 r
->out
.delta_enum_array
= NULL
;
10049 if (r
->out
.delta_enum_array
) {
10050 _mem_save_delta_enum_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10051 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.delta_enum_array
, 0);
10052 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.delta_enum_array
));
10053 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_delta_enum_array_0
, 0);
10055 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10057 return NT_STATUS_OK
;
10060 _PUBLIC_
void ndr_print_netr_DatabaseRedo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DatabaseRedo
*r
)
10062 ndr_print_struct(ndr
, name
, "netr_DatabaseRedo");
10064 if (flags
& NDR_SET_VALUES
) {
10065 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10067 if (flags
& NDR_IN
) {
10068 ndr_print_struct(ndr
, "in", "netr_DatabaseRedo");
10070 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10071 ndr_print_string(ndr
, "computername", r
->in
.computername
);
10072 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
10073 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10075 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
10077 ndr_print_ptr(ndr
, "change_log_entry", r
->in
.change_log_entry
);
10079 if (r
->in
.change_log_entry
) {
10080 ndr_print_array_uint8(ndr
, "change_log_entry", r
->in
.change_log_entry
, r
->in
.change_log_entry_size
);
10083 ndr_print_uint32(ndr
, "change_log_entry_size", r
->in
.change_log_entry_size
);
10086 if (flags
& NDR_OUT
) {
10087 ndr_print_struct(ndr
, "out", "netr_DatabaseRedo");
10089 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10091 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
10093 ndr_print_ptr(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10095 if (r
->out
.delta_enum_array
) {
10096 ndr_print_netr_DELTA_ENUM_ARRAY(ndr
, "delta_enum_array", r
->out
.delta_enum_array
);
10099 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10105 NTSTATUS
ndr_push_netr_LogonControl2Ex(struct ndr_push
*ndr
, int flags
, const struct netr_LogonControl2Ex
*r
)
10107 if (flags
& NDR_IN
) {
10108 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.logon_server
));
10109 if (r
->in
.logon_server
) {
10110 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10112 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
)));
10113 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.logon_server
, ndr_charset_length(r
->in
.logon_server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10115 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.function_code
));
10116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
10117 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.data
, r
->in
.function_code
));
10118 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
10120 if (flags
& NDR_OUT
) {
10121 if (r
->out
.query
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
10122 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
10123 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
10124 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10126 return NT_STATUS_OK
;
10129 NTSTATUS
ndr_pull_netr_LogonControl2Ex(struct ndr_pull
*ndr
, int flags
, struct netr_LogonControl2Ex
*r
)
10131 uint32_t _ptr_logon_server
;
10132 TALLOC_CTX
*_mem_save_logon_server_0
;
10133 TALLOC_CTX
*_mem_save_query_0
;
10134 if (flags
& NDR_IN
) {
10135 ZERO_STRUCT(r
->out
);
10137 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_logon_server
));
10138 if (_ptr_logon_server
) {
10139 NDR_PULL_ALLOC(ndr
, r
->in
.logon_server
);
10141 r
->in
.logon_server
= NULL
;
10143 if (r
->in
.logon_server
) {
10144 _mem_save_logon_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10145 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.logon_server
, 0);
10146 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.logon_server
));
10147 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.logon_server
));
10148 if (ndr_get_array_length(ndr
, &r
->in
.logon_server
) > ndr_get_array_size(ndr
, &r
->in
.logon_server
)) {
10149 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.logon_server
), ndr_get_array_length(ndr
, &r
->in
.logon_server
));
10151 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t)));
10152 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.logon_server
, ndr_get_array_length(ndr
, &r
->in
.logon_server
), sizeof(uint16_t), CH_UTF16
));
10153 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_logon_server_0
, 0);
10155 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.function_code
));
10156 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
10157 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.data
, r
->in
.function_code
));
10158 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
10159 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
10160 ZERO_STRUCTP(r
->out
.query
);
10162 if (flags
& NDR_OUT
) {
10163 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10164 NDR_PULL_ALLOC(ndr
, r
->out
.query
);
10166 _mem_save_query_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10167 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.query
, LIBNDR_FLAG_REF_ALLOC
);
10168 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
));
10169 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.query
));
10170 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_query_0
, LIBNDR_FLAG_REF_ALLOC
);
10171 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10173 return NT_STATUS_OK
;
10176 _PUBLIC_
void ndr_print_netr_LogonControl2Ex(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonControl2Ex
*r
)
10178 ndr_print_struct(ndr
, name
, "netr_LogonControl2Ex");
10180 if (flags
& NDR_SET_VALUES
) {
10181 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10183 if (flags
& NDR_IN
) {
10184 ndr_print_struct(ndr
, "in", "netr_LogonControl2Ex");
10186 ndr_print_ptr(ndr
, "logon_server", r
->in
.logon_server
);
10188 if (r
->in
.logon_server
) {
10189 ndr_print_string(ndr
, "logon_server", r
->in
.logon_server
);
10192 ndr_print_uint32(ndr
, "function_code", r
->in
.function_code
);
10193 ndr_print_uint32(ndr
, "level", r
->in
.level
);
10194 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.function_code
);
10195 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr
, "data", &r
->in
.data
);
10198 if (flags
& NDR_OUT
) {
10199 ndr_print_struct(ndr
, "out", "netr_LogonControl2Ex");
10201 ndr_print_ptr(ndr
, "query", r
->out
.query
);
10203 ndr_print_set_switch_value(ndr
, r
->out
.query
, r
->in
.level
);
10204 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr
, "query", r
->out
.query
);
10206 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10212 NTSTATUS
ndr_push_netr_NETRENUMERATETRUSTEDDOMAINS(struct ndr_push
*ndr
, int flags
, const struct netr_NETRENUMERATETRUSTEDDOMAINS
*r
)
10214 if (flags
& NDR_IN
) {
10216 if (flags
& NDR_OUT
) {
10217 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10219 return NT_STATUS_OK
;
10222 NTSTATUS
ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINS(struct ndr_pull
*ndr
, int flags
, struct netr_NETRENUMERATETRUSTEDDOMAINS
*r
)
10224 if (flags
& NDR_IN
) {
10226 if (flags
& NDR_OUT
) {
10227 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10229 return NT_STATUS_OK
;
10232 _PUBLIC_
void ndr_print_netr_NETRENUMERATETRUSTEDDOMAINS(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRENUMERATETRUSTEDDOMAINS
*r
)
10234 ndr_print_struct(ndr
, name
, "netr_NETRENUMERATETRUSTEDDOMAINS");
10236 if (flags
& NDR_SET_VALUES
) {
10237 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10239 if (flags
& NDR_IN
) {
10240 ndr_print_struct(ndr
, "in", "netr_NETRENUMERATETRUSTEDDOMAINS");
10244 if (flags
& NDR_OUT
) {
10245 ndr_print_struct(ndr
, "out", "netr_NETRENUMERATETRUSTEDDOMAINS");
10247 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10253 NTSTATUS
ndr_push_netr_DsRGetDCName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCName
*r
)
10255 if (flags
& NDR_IN
) {
10256 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
10257 if (r
->in
.server_unc
) {
10258 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
10259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10260 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
10261 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_unc
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10263 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
10264 if (r
->in
.domain_name
) {
10265 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
10266 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10267 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
10268 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domain_name
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10270 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
10271 if (r
->in
.domain_guid
) {
10272 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_guid
));
10274 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_guid
));
10275 if (r
->in
.site_guid
) {
10276 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.site_guid
));
10278 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
10280 if (flags
& NDR_OUT
) {
10281 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
10283 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
10285 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10287 return NT_STATUS_OK
;
10290 NTSTATUS
ndr_pull_netr_DsRGetDCName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCName
*r
)
10292 uint32_t _ptr_server_unc
;
10293 uint32_t _ptr_domain_name
;
10294 uint32_t _ptr_domain_guid
;
10295 uint32_t _ptr_site_guid
;
10296 uint32_t _ptr_info
;
10297 TALLOC_CTX
*_mem_save_server_unc_0
;
10298 TALLOC_CTX
*_mem_save_domain_name_0
;
10299 TALLOC_CTX
*_mem_save_domain_guid_0
;
10300 TALLOC_CTX
*_mem_save_site_guid_0
;
10301 TALLOC_CTX
*_mem_save_info_0
;
10302 if (flags
& NDR_IN
) {
10303 ZERO_STRUCT(r
->out
);
10305 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
10306 if (_ptr_server_unc
) {
10307 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
10309 r
->in
.server_unc
= NULL
;
10311 if (r
->in
.server_unc
) {
10312 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10313 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
10314 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
10315 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
10316 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
10317 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_unc
), ndr_get_array_length(ndr
, &r
->in
.server_unc
));
10319 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
10320 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_unc
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t), CH_UTF16
));
10321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
10323 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
10324 if (_ptr_domain_name
) {
10325 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
10327 r
->in
.domain_name
= NULL
;
10329 if (r
->in
.domain_name
) {
10330 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10331 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
10332 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
10333 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
10334 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
10335 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.domain_name
), ndr_get_array_length(ndr
, &r
->in
.domain_name
));
10337 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
10338 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain_name
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t), CH_UTF16
));
10339 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
10341 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
10342 if (_ptr_domain_guid
) {
10343 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
10345 r
->in
.domain_guid
= NULL
;
10347 if (r
->in
.domain_guid
) {
10348 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10349 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
10350 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_guid
));
10351 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
10353 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_guid
));
10354 if (_ptr_site_guid
) {
10355 NDR_PULL_ALLOC(ndr
, r
->in
.site_guid
);
10357 r
->in
.site_guid
= NULL
;
10359 if (r
->in
.site_guid
) {
10360 _mem_save_site_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10361 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_guid
, 0);
10362 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.site_guid
));
10363 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_guid_0
, 0);
10365 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
10367 if (flags
& NDR_OUT
) {
10368 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
10370 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
10372 r
->out
.info
= NULL
;
10375 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10376 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
10377 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
10378 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
10380 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10382 return NT_STATUS_OK
;
10385 _PUBLIC_
void ndr_print_netr_DsRGetDCName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCName
*r
)
10387 ndr_print_struct(ndr
, name
, "netr_DsRGetDCName");
10389 if (flags
& NDR_SET_VALUES
) {
10390 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10392 if (flags
& NDR_IN
) {
10393 ndr_print_struct(ndr
, "in", "netr_DsRGetDCName");
10395 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
10397 if (r
->in
.server_unc
) {
10398 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
10401 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
10403 if (r
->in
.domain_name
) {
10404 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
10407 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
10409 if (r
->in
.domain_guid
) {
10410 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
10413 ndr_print_ptr(ndr
, "site_guid", r
->in
.site_guid
);
10415 if (r
->in
.site_guid
) {
10416 ndr_print_GUID(ndr
, "site_guid", r
->in
.site_guid
);
10419 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
10422 if (flags
& NDR_OUT
) {
10423 ndr_print_struct(ndr
, "out", "netr_DsRGetDCName");
10425 ndr_print_ptr(ndr
, "info", r
->out
.info
);
10428 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", r
->out
.info
);
10431 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10437 NTSTATUS
ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONDUMMYROUTINE1
*r
)
10439 if (flags
& NDR_IN
) {
10441 if (flags
& NDR_OUT
) {
10442 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10444 return NT_STATUS_OK
;
10447 NTSTATUS
ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONDUMMYROUTINE1
*r
)
10449 if (flags
& NDR_IN
) {
10451 if (flags
& NDR_OUT
) {
10452 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10454 return NT_STATUS_OK
;
10457 _PUBLIC_
void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONDUMMYROUTINE1
*r
)
10459 ndr_print_struct(ndr
, name
, "netr_NETRLOGONDUMMYROUTINE1");
10461 if (flags
& NDR_SET_VALUES
) {
10462 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10464 if (flags
& NDR_IN
) {
10465 ndr_print_struct(ndr
, "in", "netr_NETRLOGONDUMMYROUTINE1");
10469 if (flags
& NDR_OUT
) {
10470 ndr_print_struct(ndr
, "out", "netr_NETRLOGONDUMMYROUTINE1");
10472 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10478 NTSTATUS
ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
10480 if (flags
& NDR_IN
) {
10482 if (flags
& NDR_OUT
) {
10483 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10485 return NT_STATUS_OK
;
10488 NTSTATUS
ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSETSERVICEBITS
*r
)
10490 if (flags
& NDR_IN
) {
10492 if (flags
& NDR_OUT
) {
10493 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10495 return NT_STATUS_OK
;
10498 _PUBLIC_
void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSETSERVICEBITS
*r
)
10500 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSETSERVICEBITS");
10502 if (flags
& NDR_SET_VALUES
) {
10503 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10505 if (flags
& NDR_IN
) {
10506 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSETSERVICEBITS");
10510 if (flags
& NDR_OUT
) {
10511 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSETSERVICEBITS");
10513 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10519 NTSTATUS
ndr_push_netr_NETRLOGONGETTRUSTRID(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONGETTRUSTRID
*r
)
10521 if (flags
& NDR_IN
) {
10523 if (flags
& NDR_OUT
) {
10524 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10526 return NT_STATUS_OK
;
10529 NTSTATUS
ndr_pull_netr_NETRLOGONGETTRUSTRID(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONGETTRUSTRID
*r
)
10531 if (flags
& NDR_IN
) {
10533 if (flags
& NDR_OUT
) {
10534 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10536 return NT_STATUS_OK
;
10539 _PUBLIC_
void ndr_print_netr_NETRLOGONGETTRUSTRID(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONGETTRUSTRID
*r
)
10541 ndr_print_struct(ndr
, name
, "netr_NETRLOGONGETTRUSTRID");
10543 if (flags
& NDR_SET_VALUES
) {
10544 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10546 if (flags
& NDR_IN
) {
10547 ndr_print_struct(ndr
, "in", "netr_NETRLOGONGETTRUSTRID");
10551 if (flags
& NDR_OUT
) {
10552 ndr_print_struct(ndr
, "out", "netr_NETRLOGONGETTRUSTRID");
10554 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10560 NTSTATUS
ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
10562 if (flags
& NDR_IN
) {
10564 if (flags
& NDR_OUT
) {
10565 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10567 return NT_STATUS_OK
;
10570 NTSTATUS
ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
10572 if (flags
& NDR_IN
) {
10574 if (flags
& NDR_OUT
) {
10575 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10577 return NT_STATUS_OK
;
10580 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTESERVERDIGEST
*r
)
10582 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTESERVERDIGEST");
10584 if (flags
& NDR_SET_VALUES
) {
10585 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10587 if (flags
& NDR_IN
) {
10588 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
10592 if (flags
& NDR_OUT
) {
10593 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
10595 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10601 NTSTATUS
ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
10603 if (flags
& NDR_IN
) {
10605 if (flags
& NDR_OUT
) {
10606 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10608 return NT_STATUS_OK
;
10611 NTSTATUS
ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
10613 if (flags
& NDR_IN
) {
10615 if (flags
& NDR_OUT
) {
10616 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10618 return NT_STATUS_OK
;
10621 _PUBLIC_
void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST
*r
)
10623 ndr_print_struct(ndr
, name
, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
10625 if (flags
& NDR_SET_VALUES
) {
10626 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10628 if (flags
& NDR_IN
) {
10629 ndr_print_struct(ndr
, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
10633 if (flags
& NDR_OUT
) {
10634 ndr_print_struct(ndr
, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
10636 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
10642 NTSTATUS
ndr_push_netr_ServerAuthenticate3(struct ndr_push
*ndr
, int flags
, const struct netr_ServerAuthenticate3
*r
)
10644 if (flags
& NDR_IN
) {
10645 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
10646 if (r
->in
.server_name
) {
10647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10648 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10649 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
10650 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10652 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10653 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10654 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
10655 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10656 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
10657 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10658 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10659 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
10660 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10661 if (r
->in
.credentials
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
10662 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10663 if (r
->in
.negotiate_flags
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
10664 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.negotiate_flags
));
10666 if (flags
& NDR_OUT
) {
10667 if (r
->out
.credentials
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
10668 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.credentials
));
10669 if (r
->out
.negotiate_flags
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
10670 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.negotiate_flags
));
10671 if (r
->out
.rid
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
10672 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.rid
));
10673 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
10675 return NT_STATUS_OK
;
10678 NTSTATUS
ndr_pull_netr_ServerAuthenticate3(struct ndr_pull
*ndr
, int flags
, struct netr_ServerAuthenticate3
*r
)
10680 uint32_t _ptr_server_name
;
10681 TALLOC_CTX
*_mem_save_server_name_0
;
10682 TALLOC_CTX
*_mem_save_credentials_0
;
10683 TALLOC_CTX
*_mem_save_negotiate_flags_0
;
10684 TALLOC_CTX
*_mem_save_rid_0
;
10685 if (flags
& NDR_IN
) {
10686 ZERO_STRUCT(r
->out
);
10688 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
10689 if (_ptr_server_name
) {
10690 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
10692 r
->in
.server_name
= NULL
;
10694 if (r
->in
.server_name
) {
10695 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10696 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
10697 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
10698 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
10699 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
10700 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
10702 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
10703 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
10704 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
10706 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
10707 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
10708 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
10709 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
10711 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
10712 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
10713 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
10714 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
10715 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
10716 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
10717 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
10719 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
10720 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
10721 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10722 NDR_PULL_ALLOC(ndr
, r
->in
.credentials
);
10724 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10725 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
10726 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->in
.credentials
));
10727 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10728 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10729 NDR_PULL_ALLOC(ndr
, r
->in
.negotiate_flags
);
10731 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10732 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
10733 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.negotiate_flags
));
10734 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
10735 NDR_PULL_ALLOC(ndr
, r
->out
.credentials
);
10736 *r
->out
.credentials
= *r
->in
.credentials
;
10737 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
10738 *r
->out
.negotiate_flags
= *r
->in
.negotiate_flags
;
10739 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
10740 ZERO_STRUCTP(r
->out
.rid
);
10742 if (flags
& NDR_OUT
) {
10743 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10744 NDR_PULL_ALLOC(ndr
, r
->out
.credentials
);
10746 _mem_save_credentials_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10747 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.credentials
, LIBNDR_FLAG_REF_ALLOC
);
10748 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, r
->out
.credentials
));
10749 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credentials_0
, LIBNDR_FLAG_REF_ALLOC
);
10750 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10751 NDR_PULL_ALLOC(ndr
, r
->out
.negotiate_flags
);
10753 _mem_save_negotiate_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10754 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.negotiate_flags
, LIBNDR_FLAG_REF_ALLOC
);
10755 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.negotiate_flags
));
10756 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_negotiate_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
10757 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
10758 NDR_PULL_ALLOC(ndr
, r
->out
.rid
);
10760 _mem_save_rid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10761 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.rid
, LIBNDR_FLAG_REF_ALLOC
);
10762 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.rid
));
10763 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_rid_0
, LIBNDR_FLAG_REF_ALLOC
);
10764 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
10766 return NT_STATUS_OK
;
10769 _PUBLIC_
void ndr_print_netr_ServerAuthenticate3(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerAuthenticate3
*r
)
10771 ndr_print_struct(ndr
, name
, "netr_ServerAuthenticate3");
10773 if (flags
& NDR_SET_VALUES
) {
10774 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10776 if (flags
& NDR_IN
) {
10777 ndr_print_struct(ndr
, "in", "netr_ServerAuthenticate3");
10779 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
10781 if (r
->in
.server_name
) {
10782 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
10785 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
10786 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
10787 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
10788 ndr_print_ptr(ndr
, "credentials", r
->in
.credentials
);
10790 ndr_print_netr_Credential(ndr
, "credentials", r
->in
.credentials
);
10792 ndr_print_ptr(ndr
, "negotiate_flags", r
->in
.negotiate_flags
);
10794 ndr_print_uint32(ndr
, "negotiate_flags", *r
->in
.negotiate_flags
);
10798 if (flags
& NDR_OUT
) {
10799 ndr_print_struct(ndr
, "out", "netr_ServerAuthenticate3");
10801 ndr_print_ptr(ndr
, "credentials", r
->out
.credentials
);
10803 ndr_print_netr_Credential(ndr
, "credentials", r
->out
.credentials
);
10805 ndr_print_ptr(ndr
, "negotiate_flags", r
->out
.negotiate_flags
);
10807 ndr_print_uint32(ndr
, "negotiate_flags", *r
->out
.negotiate_flags
);
10809 ndr_print_ptr(ndr
, "rid", r
->out
.rid
);
10811 ndr_print_uint32(ndr
, "rid", *r
->out
.rid
);
10813 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
10819 NTSTATUS
ndr_push_netr_DsRGetDCNameEx(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
10821 if (flags
& NDR_IN
) {
10822 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
10823 if (r
->in
.server_unc
) {
10824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
10825 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10826 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
10827 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_unc
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10829 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
10830 if (r
->in
.domain_name
) {
10831 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
10832 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10833 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
10834 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domain_name
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10836 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
10837 if (r
->in
.domain_guid
) {
10838 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_guid
));
10840 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
10841 if (r
->in
.site_name
) {
10842 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
10843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10844 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
10845 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.site_name
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10847 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
10849 if (flags
& NDR_OUT
) {
10850 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
10852 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
10854 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
10856 return NT_STATUS_OK
;
10859 NTSTATUS
ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx
*r
)
10861 uint32_t _ptr_server_unc
;
10862 uint32_t _ptr_domain_name
;
10863 uint32_t _ptr_domain_guid
;
10864 uint32_t _ptr_site_name
;
10865 uint32_t _ptr_info
;
10866 TALLOC_CTX
*_mem_save_server_unc_0
;
10867 TALLOC_CTX
*_mem_save_domain_name_0
;
10868 TALLOC_CTX
*_mem_save_domain_guid_0
;
10869 TALLOC_CTX
*_mem_save_site_name_0
;
10870 TALLOC_CTX
*_mem_save_info_0
;
10871 if (flags
& NDR_IN
) {
10872 ZERO_STRUCT(r
->out
);
10874 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
10875 if (_ptr_server_unc
) {
10876 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
10878 r
->in
.server_unc
= NULL
;
10880 if (r
->in
.server_unc
) {
10881 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10882 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
10883 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
10884 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
10885 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
10886 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_unc
), ndr_get_array_length(ndr
, &r
->in
.server_unc
));
10888 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
10889 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_unc
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t), CH_UTF16
));
10890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
10892 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
10893 if (_ptr_domain_name
) {
10894 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
10896 r
->in
.domain_name
= NULL
;
10898 if (r
->in
.domain_name
) {
10899 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10900 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
10901 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
10902 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
10903 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
10904 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.domain_name
), ndr_get_array_length(ndr
, &r
->in
.domain_name
));
10906 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
10907 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain_name
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t), CH_UTF16
));
10908 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
10910 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
10911 if (_ptr_domain_guid
) {
10912 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
10914 r
->in
.domain_guid
= NULL
;
10916 if (r
->in
.domain_guid
) {
10917 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10918 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
10919 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_guid
));
10920 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
10922 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
10923 if (_ptr_site_name
) {
10924 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
10926 r
->in
.site_name
= NULL
;
10928 if (r
->in
.site_name
) {
10929 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10930 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
10931 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
10932 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
10933 if (ndr_get_array_length(ndr
, &r
->in
.site_name
) > ndr_get_array_size(ndr
, &r
->in
.site_name
)) {
10934 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.site_name
), ndr_get_array_length(ndr
, &r
->in
.site_name
));
10936 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t)));
10937 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.site_name
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t), CH_UTF16
));
10938 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
10940 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
10942 if (flags
& NDR_OUT
) {
10943 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
10945 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
10947 r
->out
.info
= NULL
;
10950 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10951 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
10952 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
10953 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
10955 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
10957 return NT_STATUS_OK
;
10960 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx
*r
)
10962 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx");
10964 if (flags
& NDR_SET_VALUES
) {
10965 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
10967 if (flags
& NDR_IN
) {
10968 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx");
10970 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
10972 if (r
->in
.server_unc
) {
10973 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
10976 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
10978 if (r
->in
.domain_name
) {
10979 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
10982 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
10984 if (r
->in
.domain_guid
) {
10985 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
10988 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
10990 if (r
->in
.site_name
) {
10991 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
10994 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
10997 if (flags
& NDR_OUT
) {
10998 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx");
11000 ndr_print_ptr(ndr
, "info", r
->out
.info
);
11003 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", r
->out
.info
);
11006 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11012 NTSTATUS
ndr_push_netr_DsRGetSiteName(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetSiteName
*r
)
11014 if (flags
& NDR_IN
) {
11015 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
11016 if (r
->in
.computer_name
) {
11017 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11018 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11019 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11020 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11023 if (flags
& NDR_OUT
) {
11024 if (r
->out
.site
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
11025 if (*r
->out
.site
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
11026 NDR_CHECK(ndr_push_ref_ptr(ndr
));
11027 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
11028 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11029 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(*r
->out
.site
, CH_UTF16
)));
11030 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, *r
->out
.site
, ndr_charset_length(*r
->out
.site
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11031 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11033 return NT_STATUS_OK
;
11036 NTSTATUS
ndr_pull_netr_DsRGetSiteName(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetSiteName
*r
)
11038 uint32_t _ptr_computer_name
;
11039 uint32_t _ptr_site
;
11040 TALLOC_CTX
*_mem_save_computer_name_0
;
11041 TALLOC_CTX
*_mem_save_site_0
;
11042 if (flags
& NDR_IN
) {
11043 ZERO_STRUCT(r
->out
);
11045 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
11046 if (_ptr_computer_name
) {
11047 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
11049 r
->in
.computer_name
= NULL
;
11051 if (r
->in
.computer_name
) {
11052 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11053 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
11054 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
11055 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
11056 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
11057 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
11059 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
11060 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
11061 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
11063 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
11064 ZERO_STRUCTP(r
->out
.site
);
11066 if (flags
& NDR_OUT
) {
11067 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11068 NDR_PULL_ALLOC(ndr
, r
->out
.site
);
11070 _mem_save_site_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11071 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.site
, LIBNDR_FLAG_REF_ALLOC
);
11072 NDR_CHECK(ndr_pull_ref_ptr(ndr
, &_ptr_site
));
11073 NDR_CHECK(ndr_pull_array_size(ndr
, r
->out
.site
));
11074 NDR_CHECK(ndr_pull_array_length(ndr
, r
->out
.site
));
11075 if (ndr_get_array_length(ndr
, r
->out
.site
) > ndr_get_array_size(ndr
, r
->out
.site
)) {
11076 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, r
->out
.site
), ndr_get_array_length(ndr
, r
->out
.site
));
11078 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, r
->out
.site
), sizeof(uint16_t)));
11079 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, r
->out
.site
, ndr_get_array_length(ndr
, r
->out
.site
), sizeof(uint16_t), CH_UTF16
));
11080 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_0
, LIBNDR_FLAG_REF_ALLOC
);
11081 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11083 return NT_STATUS_OK
;
11086 _PUBLIC_
void ndr_print_netr_DsRGetSiteName(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetSiteName
*r
)
11088 ndr_print_struct(ndr
, name
, "netr_DsRGetSiteName");
11090 if (flags
& NDR_SET_VALUES
) {
11091 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11093 if (flags
& NDR_IN
) {
11094 ndr_print_struct(ndr
, "in", "netr_DsRGetSiteName");
11096 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
11098 if (r
->in
.computer_name
) {
11099 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
11104 if (flags
& NDR_OUT
) {
11105 ndr_print_struct(ndr
, "out", "netr_DsRGetSiteName");
11107 ndr_print_ptr(ndr
, "site", r
->out
.site
);
11109 ndr_print_ptr(ndr
, "site", *r
->out
.site
);
11111 ndr_print_string(ndr
, "site", *r
->out
.site
);
11114 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11120 NTSTATUS
ndr_push_netr_LogonGetDomainInfo(struct ndr_push
*ndr
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
11122 if (flags
& NDR_IN
) {
11123 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11124 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11125 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11126 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11127 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
11128 if (r
->in
.computer_name
) {
11129 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11130 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11132 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11134 if (r
->in
.credential
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
11135 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
11136 if (r
->in
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
11137 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
11139 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.query
, r
->in
.level
));
11140 NDR_CHECK(ndr_push_netr_DomainQuery(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.query
));
11142 if (flags
& NDR_OUT
) {
11143 if (r
->out
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
11144 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11145 if (r
->out
.info
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
11146 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
11147 NDR_CHECK(ndr_push_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
11148 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11150 return NT_STATUS_OK
;
11153 NTSTATUS
ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull
*ndr
, int flags
, struct netr_LogonGetDomainInfo
*r
)
11155 uint32_t _ptr_computer_name
;
11156 TALLOC_CTX
*_mem_save_computer_name_0
;
11157 TALLOC_CTX
*_mem_save_credential_0
;
11158 TALLOC_CTX
*_mem_save_return_authenticator_0
;
11159 TALLOC_CTX
*_mem_save_info_0
;
11160 if (flags
& NDR_IN
) {
11161 ZERO_STRUCT(r
->out
);
11163 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11164 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11165 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
11166 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
11168 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
11169 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
11170 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
11171 if (_ptr_computer_name
) {
11172 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
11174 r
->in
.computer_name
= NULL
;
11176 if (r
->in
.computer_name
) {
11177 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11178 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
11179 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
11180 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
11181 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
11182 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
11184 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
11185 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
11186 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
11188 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11189 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
11191 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11192 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, LIBNDR_FLAG_REF_ALLOC
);
11193 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
11194 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, LIBNDR_FLAG_REF_ALLOC
);
11195 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11196 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
11198 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11199 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11200 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
11201 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11202 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
11203 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.query
, r
->in
.level
));
11204 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.query
));
11205 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11206 *r
->out
.return_authenticator
= *r
->in
.return_authenticator
;
11207 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
11208 ZERO_STRUCTP(r
->out
.info
);
11210 if (flags
& NDR_OUT
) {
11211 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11212 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11214 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11215 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11216 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11217 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11218 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11219 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
11221 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11222 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
11223 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
));
11224 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
11225 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
11226 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11228 return NT_STATUS_OK
;
11231 _PUBLIC_
void ndr_print_netr_LogonGetDomainInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonGetDomainInfo
*r
)
11233 ndr_print_struct(ndr
, name
, "netr_LogonGetDomainInfo");
11235 if (flags
& NDR_SET_VALUES
) {
11236 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11238 if (flags
& NDR_IN
) {
11239 ndr_print_struct(ndr
, "in", "netr_LogonGetDomainInfo");
11241 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
11242 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
11244 if (r
->in
.computer_name
) {
11245 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
11248 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
11250 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
11252 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11254 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
11256 ndr_print_uint32(ndr
, "level", r
->in
.level
);
11257 ndr_print_set_switch_value(ndr
, &r
->in
.query
, r
->in
.level
);
11258 ndr_print_netr_DomainQuery(ndr
, "query", &r
->in
.query
);
11261 if (flags
& NDR_OUT
) {
11262 ndr_print_struct(ndr
, "out", "netr_LogonGetDomainInfo");
11264 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11266 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11268 ndr_print_ptr(ndr
, "info", r
->out
.info
);
11270 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
11271 ndr_print_netr_DomainInfo(ndr
, "info", r
->out
.info
);
11273 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11279 NTSTATUS
ndr_push_netr_ServerPasswordSet2(struct ndr_push
*ndr
, int flags
, const struct netr_ServerPasswordSet2
*r
)
11281 if (flags
& NDR_IN
) {
11282 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
11283 if (r
->in
.server_name
) {
11284 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11285 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11286 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11287 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11289 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11290 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11291 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
)));
11292 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.account_name
, ndr_charset_length(r
->in
.account_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11293 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->in
.secure_channel_type
));
11294 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11297 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11298 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
11299 NDR_CHECK(ndr_push_netr_CryptPassword(ndr
, NDR_SCALARS
, &r
->in
.new_password
));
11301 if (flags
& NDR_OUT
) {
11302 if (r
->out
.return_authenticator
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
11303 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11304 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11306 return NT_STATUS_OK
;
11309 NTSTATUS
ndr_pull_netr_ServerPasswordSet2(struct ndr_pull
*ndr
, int flags
, struct netr_ServerPasswordSet2
*r
)
11311 uint32_t _ptr_server_name
;
11312 TALLOC_CTX
*_mem_save_server_name_0
;
11313 TALLOC_CTX
*_mem_save_return_authenticator_0
;
11314 if (flags
& NDR_IN
) {
11315 ZERO_STRUCT(r
->out
);
11317 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
11318 if (_ptr_server_name
) {
11319 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
11321 r
->in
.server_name
= NULL
;
11323 if (r
->in
.server_name
) {
11324 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11325 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
11326 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11327 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11328 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
11329 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
11331 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
11332 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
11333 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
11335 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.account_name
));
11336 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.account_name
));
11337 if (ndr_get_array_length(ndr
, &r
->in
.account_name
) > ndr_get_array_size(ndr
, &r
->in
.account_name
)) {
11338 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.account_name
), ndr_get_array_length(ndr
, &r
->in
.account_name
));
11340 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t)));
11341 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.account_name
, ndr_get_array_length(ndr
, &r
->in
.account_name
), sizeof(uint16_t), CH_UTF16
));
11342 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->in
.secure_channel_type
));
11343 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
11344 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
11345 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
11346 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
11348 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
11349 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
11350 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, &r
->in
.credential
));
11351 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr
, NDR_SCALARS
, &r
->in
.new_password
));
11352 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11353 ZERO_STRUCTP(r
->out
.return_authenticator
);
11355 if (flags
& NDR_OUT
) {
11356 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
11357 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
11359 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11360 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, LIBNDR_FLAG_REF_ALLOC
);
11361 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
11362 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, LIBNDR_FLAG_REF_ALLOC
);
11363 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
11365 return NT_STATUS_OK
;
11368 _PUBLIC_
void ndr_print_netr_ServerPasswordSet2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_ServerPasswordSet2
*r
)
11370 ndr_print_struct(ndr
, name
, "netr_ServerPasswordSet2");
11372 if (flags
& NDR_SET_VALUES
) {
11373 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11375 if (flags
& NDR_IN
) {
11376 ndr_print_struct(ndr
, "in", "netr_ServerPasswordSet2");
11378 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
11380 if (r
->in
.server_name
) {
11381 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
11384 ndr_print_string(ndr
, "account_name", r
->in
.account_name
);
11385 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->in
.secure_channel_type
);
11386 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
11387 ndr_print_netr_Authenticator(ndr
, "credential", &r
->in
.credential
);
11388 ndr_print_netr_CryptPassword(ndr
, "new_password", &r
->in
.new_password
);
11391 if (flags
& NDR_OUT
) {
11392 ndr_print_struct(ndr
, "out", "netr_ServerPasswordSet2");
11394 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11396 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
11398 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
11404 NTSTATUS
ndr_push_netr_NETRSERVERPASSWORDGET(struct ndr_push
*ndr
, int flags
, const struct netr_NETRSERVERPASSWORDGET
*r
)
11406 if (flags
& NDR_IN
) {
11408 if (flags
& NDR_OUT
) {
11409 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11411 return NT_STATUS_OK
;
11414 NTSTATUS
ndr_pull_netr_NETRSERVERPASSWORDGET(struct ndr_pull
*ndr
, int flags
, struct netr_NETRSERVERPASSWORDGET
*r
)
11416 if (flags
& NDR_IN
) {
11418 if (flags
& NDR_OUT
) {
11419 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11421 return NT_STATUS_OK
;
11424 _PUBLIC_
void ndr_print_netr_NETRSERVERPASSWORDGET(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRSERVERPASSWORDGET
*r
)
11426 ndr_print_struct(ndr
, name
, "netr_NETRSERVERPASSWORDGET");
11428 if (flags
& NDR_SET_VALUES
) {
11429 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11431 if (flags
& NDR_IN
) {
11432 ndr_print_struct(ndr
, "in", "netr_NETRSERVERPASSWORDGET");
11436 if (flags
& NDR_OUT
) {
11437 ndr_print_struct(ndr
, "out", "netr_NETRSERVERPASSWORDGET");
11439 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11445 NTSTATUS
ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
11447 if (flags
& NDR_IN
) {
11449 if (flags
& NDR_OUT
) {
11450 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11452 return NT_STATUS_OK
;
11455 NTSTATUS
ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONSENDTOSAM
*r
)
11457 if (flags
& NDR_IN
) {
11459 if (flags
& NDR_OUT
) {
11460 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11462 return NT_STATUS_OK
;
11465 _PUBLIC_
void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONSENDTOSAM
*r
)
11467 ndr_print_struct(ndr
, name
, "netr_NETRLOGONSENDTOSAM");
11469 if (flags
& NDR_SET_VALUES
) {
11470 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11472 if (flags
& NDR_IN
) {
11473 ndr_print_struct(ndr
, "in", "netr_NETRLOGONSENDTOSAM");
11477 if (flags
& NDR_OUT
) {
11478 ndr_print_struct(ndr
, "out", "netr_NETRLOGONSENDTOSAM");
11480 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11486 NTSTATUS
ndr_push_netr_DSRADDRESSTOSITENAMESW(struct ndr_push
*ndr
, int flags
, const struct netr_DSRADDRESSTOSITENAMESW
*r
)
11488 if (flags
& NDR_IN
) {
11490 if (flags
& NDR_OUT
) {
11491 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11493 return NT_STATUS_OK
;
11496 NTSTATUS
ndr_pull_netr_DSRADDRESSTOSITENAMESW(struct ndr_pull
*ndr
, int flags
, struct netr_DSRADDRESSTOSITENAMESW
*r
)
11498 if (flags
& NDR_IN
) {
11500 if (flags
& NDR_OUT
) {
11501 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11503 return NT_STATUS_OK
;
11506 _PUBLIC_
void ndr_print_netr_DSRADDRESSTOSITENAMESW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DSRADDRESSTOSITENAMESW
*r
)
11508 ndr_print_struct(ndr
, name
, "netr_DSRADDRESSTOSITENAMESW");
11510 if (flags
& NDR_SET_VALUES
) {
11511 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11513 if (flags
& NDR_IN
) {
11514 ndr_print_struct(ndr
, "in", "netr_DSRADDRESSTOSITENAMESW");
11518 if (flags
& NDR_OUT
) {
11519 ndr_print_struct(ndr
, "out", "netr_DSRADDRESSTOSITENAMESW");
11521 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11527 NTSTATUS
ndr_push_netr_DsRGetDCNameEx2(struct ndr_push
*ndr
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
11529 if (flags
& NDR_IN
) {
11530 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_unc
));
11531 if (r
->in
.server_unc
) {
11532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
11533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
)));
11535 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_unc
, ndr_charset_length(r
->in
.server_unc
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11537 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.client_account
));
11538 if (r
->in
.client_account
) {
11539 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
11540 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
)));
11542 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.client_account
, ndr_charset_length(r
->in
.client_account
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11544 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.mask
));
11545 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_name
));
11546 if (r
->in
.domain_name
) {
11547 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
11548 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11549 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
)));
11550 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.domain_name
, ndr_charset_length(r
->in
.domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11552 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.domain_guid
));
11553 if (r
->in
.domain_guid
) {
11554 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_guid
));
11556 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.site_name
));
11557 if (r
->in
.site_name
) {
11558 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
11559 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
)));
11561 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.site_name
, ndr_charset_length(r
->in
.site_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11563 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
11565 if (flags
& NDR_OUT
) {
11566 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
11568 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
11570 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11572 return NT_STATUS_OK
;
11575 NTSTATUS
ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull
*ndr
, int flags
, struct netr_DsRGetDCNameEx2
*r
)
11577 uint32_t _ptr_server_unc
;
11578 uint32_t _ptr_client_account
;
11579 uint32_t _ptr_domain_name
;
11580 uint32_t _ptr_domain_guid
;
11581 uint32_t _ptr_site_name
;
11582 uint32_t _ptr_info
;
11583 TALLOC_CTX
*_mem_save_server_unc_0
;
11584 TALLOC_CTX
*_mem_save_client_account_0
;
11585 TALLOC_CTX
*_mem_save_domain_name_0
;
11586 TALLOC_CTX
*_mem_save_domain_guid_0
;
11587 TALLOC_CTX
*_mem_save_site_name_0
;
11588 TALLOC_CTX
*_mem_save_info_0
;
11589 if (flags
& NDR_IN
) {
11590 ZERO_STRUCT(r
->out
);
11592 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_unc
));
11593 if (_ptr_server_unc
) {
11594 NDR_PULL_ALLOC(ndr
, r
->in
.server_unc
);
11596 r
->in
.server_unc
= NULL
;
11598 if (r
->in
.server_unc
) {
11599 _mem_save_server_unc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11600 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_unc
, 0);
11601 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_unc
));
11602 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_unc
));
11603 if (ndr_get_array_length(ndr
, &r
->in
.server_unc
) > ndr_get_array_size(ndr
, &r
->in
.server_unc
)) {
11604 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_unc
), ndr_get_array_length(ndr
, &r
->in
.server_unc
));
11606 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t)));
11607 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_unc
, ndr_get_array_length(ndr
, &r
->in
.server_unc
), sizeof(uint16_t), CH_UTF16
));
11608 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_unc_0
, 0);
11610 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_account
));
11611 if (_ptr_client_account
) {
11612 NDR_PULL_ALLOC(ndr
, r
->in
.client_account
);
11614 r
->in
.client_account
= NULL
;
11616 if (r
->in
.client_account
) {
11617 _mem_save_client_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11618 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.client_account
, 0);
11619 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.client_account
));
11620 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.client_account
));
11621 if (ndr_get_array_length(ndr
, &r
->in
.client_account
) > ndr_get_array_size(ndr
, &r
->in
.client_account
)) {
11622 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.client_account
), ndr_get_array_length(ndr
, &r
->in
.client_account
));
11624 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.client_account
), sizeof(uint16_t)));
11625 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.client_account
, ndr_get_array_length(ndr
, &r
->in
.client_account
), sizeof(uint16_t), CH_UTF16
));
11626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_account_0
, 0);
11628 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.mask
));
11629 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
11630 if (_ptr_domain_name
) {
11631 NDR_PULL_ALLOC(ndr
, r
->in
.domain_name
);
11633 r
->in
.domain_name
= NULL
;
11635 if (r
->in
.domain_name
) {
11636 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11637 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_name
, 0);
11638 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.domain_name
));
11639 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.domain_name
));
11640 if (ndr_get_array_length(ndr
, &r
->in
.domain_name
) > ndr_get_array_size(ndr
, &r
->in
.domain_name
)) {
11641 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.domain_name
), ndr_get_array_length(ndr
, &r
->in
.domain_name
));
11643 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t)));
11644 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.domain_name
, ndr_get_array_length(ndr
, &r
->in
.domain_name
), sizeof(uint16_t), CH_UTF16
));
11645 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
11647 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_guid
));
11648 if (_ptr_domain_guid
) {
11649 NDR_PULL_ALLOC(ndr
, r
->in
.domain_guid
);
11651 r
->in
.domain_guid
= NULL
;
11653 if (r
->in
.domain_guid
) {
11654 _mem_save_domain_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11655 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.domain_guid
, 0);
11656 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.domain_guid
));
11657 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_guid_0
, 0);
11659 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
11660 if (_ptr_site_name
) {
11661 NDR_PULL_ALLOC(ndr
, r
->in
.site_name
);
11663 r
->in
.site_name
= NULL
;
11665 if (r
->in
.site_name
) {
11666 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11667 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.site_name
, 0);
11668 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.site_name
));
11669 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.site_name
));
11670 if (ndr_get_array_length(ndr
, &r
->in
.site_name
) > ndr_get_array_size(ndr
, &r
->in
.site_name
)) {
11671 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.site_name
), ndr_get_array_length(ndr
, &r
->in
.site_name
));
11673 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t)));
11674 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.site_name
, ndr_get_array_length(ndr
, &r
->in
.site_name
), sizeof(uint16_t), CH_UTF16
));
11675 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
11677 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.flags
));
11679 if (flags
& NDR_OUT
) {
11680 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
11682 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
11684 r
->out
.info
= NULL
;
11687 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11688 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
11689 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
11690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
11692 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11694 return NT_STATUS_OK
;
11697 _PUBLIC_
void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsRGetDCNameEx2
*r
)
11699 ndr_print_struct(ndr
, name
, "netr_DsRGetDCNameEx2");
11701 if (flags
& NDR_SET_VALUES
) {
11702 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11704 if (flags
& NDR_IN
) {
11705 ndr_print_struct(ndr
, "in", "netr_DsRGetDCNameEx2");
11707 ndr_print_ptr(ndr
, "server_unc", r
->in
.server_unc
);
11709 if (r
->in
.server_unc
) {
11710 ndr_print_string(ndr
, "server_unc", r
->in
.server_unc
);
11713 ndr_print_ptr(ndr
, "client_account", r
->in
.client_account
);
11715 if (r
->in
.client_account
) {
11716 ndr_print_string(ndr
, "client_account", r
->in
.client_account
);
11719 ndr_print_uint32(ndr
, "mask", r
->in
.mask
);
11720 ndr_print_ptr(ndr
, "domain_name", r
->in
.domain_name
);
11722 if (r
->in
.domain_name
) {
11723 ndr_print_string(ndr
, "domain_name", r
->in
.domain_name
);
11726 ndr_print_ptr(ndr
, "domain_guid", r
->in
.domain_guid
);
11728 if (r
->in
.domain_guid
) {
11729 ndr_print_GUID(ndr
, "domain_guid", r
->in
.domain_guid
);
11732 ndr_print_ptr(ndr
, "site_name", r
->in
.site_name
);
11734 if (r
->in
.site_name
) {
11735 ndr_print_string(ndr
, "site_name", r
->in
.site_name
);
11738 ndr_print_uint32(ndr
, "flags", r
->in
.flags
);
11741 if (flags
& NDR_OUT
) {
11742 ndr_print_struct(ndr
, "out", "netr_DsRGetDCNameEx2");
11744 ndr_print_ptr(ndr
, "info", r
->out
.info
);
11747 ndr_print_netr_DsRGetDCNameInfo(ndr
, "info", r
->out
.info
);
11750 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11756 NTSTATUS
ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push
*ndr
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
11758 if (flags
& NDR_IN
) {
11760 if (flags
& NDR_OUT
) {
11761 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11763 return NT_STATUS_OK
;
11766 NTSTATUS
ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull
*ndr
, int flags
, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
11768 if (flags
& NDR_IN
) {
11770 if (flags
& NDR_OUT
) {
11771 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11773 return NT_STATUS_OK
;
11776 _PUBLIC_
void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
*r
)
11778 ndr_print_struct(ndr
, name
, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
11780 if (flags
& NDR_SET_VALUES
) {
11781 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11783 if (flags
& NDR_IN
) {
11784 ndr_print_struct(ndr
, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
11788 if (flags
& NDR_OUT
) {
11789 ndr_print_struct(ndr
, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
11791 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11797 NTSTATUS
ndr_push_netr_NETRENUMERATETRUSTEDDOMAINSEX(struct ndr_push
*ndr
, int flags
, const struct netr_NETRENUMERATETRUSTEDDOMAINSEX
*r
)
11799 if (flags
& NDR_IN
) {
11801 if (flags
& NDR_OUT
) {
11802 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11804 return NT_STATUS_OK
;
11807 NTSTATUS
ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINSEX(struct ndr_pull
*ndr
, int flags
, struct netr_NETRENUMERATETRUSTEDDOMAINSEX
*r
)
11809 if (flags
& NDR_IN
) {
11811 if (flags
& NDR_OUT
) {
11812 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11814 return NT_STATUS_OK
;
11817 _PUBLIC_
void ndr_print_netr_NETRENUMERATETRUSTEDDOMAINSEX(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRENUMERATETRUSTEDDOMAINSEX
*r
)
11819 ndr_print_struct(ndr
, name
, "netr_NETRENUMERATETRUSTEDDOMAINSEX");
11821 if (flags
& NDR_SET_VALUES
) {
11822 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11824 if (flags
& NDR_IN
) {
11825 ndr_print_struct(ndr
, "in", "netr_NETRENUMERATETRUSTEDDOMAINSEX");
11829 if (flags
& NDR_OUT
) {
11830 ndr_print_struct(ndr
, "out", "netr_NETRENUMERATETRUSTEDDOMAINSEX");
11832 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11838 NTSTATUS
ndr_push_netr_DSRADDRESSTOSITENAMESEXW(struct ndr_push
*ndr
, int flags
, const struct netr_DSRADDRESSTOSITENAMESEXW
*r
)
11840 if (flags
& NDR_IN
) {
11842 if (flags
& NDR_OUT
) {
11843 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11845 return NT_STATUS_OK
;
11848 NTSTATUS
ndr_pull_netr_DSRADDRESSTOSITENAMESEXW(struct ndr_pull
*ndr
, int flags
, struct netr_DSRADDRESSTOSITENAMESEXW
*r
)
11850 if (flags
& NDR_IN
) {
11852 if (flags
& NDR_OUT
) {
11853 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11855 return NT_STATUS_OK
;
11858 _PUBLIC_
void ndr_print_netr_DSRADDRESSTOSITENAMESEXW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DSRADDRESSTOSITENAMESEXW
*r
)
11860 ndr_print_struct(ndr
, name
, "netr_DSRADDRESSTOSITENAMESEXW");
11862 if (flags
& NDR_SET_VALUES
) {
11863 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11865 if (flags
& NDR_IN
) {
11866 ndr_print_struct(ndr
, "in", "netr_DSRADDRESSTOSITENAMESEXW");
11870 if (flags
& NDR_OUT
) {
11871 ndr_print_struct(ndr
, "out", "netr_DSRADDRESSTOSITENAMESEXW");
11873 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11879 NTSTATUS
ndr_push_netr_DSRGETDCSITECOVERAGEW(struct ndr_push
*ndr
, int flags
, const struct netr_DSRGETDCSITECOVERAGEW
*r
)
11881 if (flags
& NDR_IN
) {
11883 if (flags
& NDR_OUT
) {
11884 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
11886 return NT_STATUS_OK
;
11889 NTSTATUS
ndr_pull_netr_DSRGETDCSITECOVERAGEW(struct ndr_pull
*ndr
, int flags
, struct netr_DSRGETDCSITECOVERAGEW
*r
)
11891 if (flags
& NDR_IN
) {
11893 if (flags
& NDR_OUT
) {
11894 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
11896 return NT_STATUS_OK
;
11899 _PUBLIC_
void ndr_print_netr_DSRGETDCSITECOVERAGEW(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DSRGETDCSITECOVERAGEW
*r
)
11901 ndr_print_struct(ndr
, name
, "netr_DSRGETDCSITECOVERAGEW");
11903 if (flags
& NDR_SET_VALUES
) {
11904 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
11906 if (flags
& NDR_IN
) {
11907 ndr_print_struct(ndr
, "in", "netr_DSRGETDCSITECOVERAGEW");
11911 if (flags
& NDR_OUT
) {
11912 ndr_print_struct(ndr
, "out", "netr_DSRGETDCSITECOVERAGEW");
11914 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
11920 NTSTATUS
ndr_push_netr_LogonSamLogonEx(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonEx
*r
)
11922 if (flags
& NDR_IN
) {
11923 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
11924 if (r
->in
.server_name
) {
11925 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11926 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
11928 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11930 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
11931 if (r
->in
.computer_name
) {
11932 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
11935 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11937 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
11938 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
11939 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
11940 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
11941 if (r
->in
.flags
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
11942 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
11944 if (flags
& NDR_OUT
) {
11945 if (r
->out
.validation
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
11946 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
11947 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
11948 if (r
->out
.authoritative
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
11949 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
11950 if (r
->out
.flags
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
11951 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
11952 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
11954 return NT_STATUS_OK
;
11957 NTSTATUS
ndr_pull_netr_LogonSamLogonEx(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonEx
*r
)
11959 uint32_t _ptr_server_name
;
11960 uint32_t _ptr_computer_name
;
11961 TALLOC_CTX
*_mem_save_server_name_0
;
11962 TALLOC_CTX
*_mem_save_computer_name_0
;
11963 TALLOC_CTX
*_mem_save_validation_0
;
11964 TALLOC_CTX
*_mem_save_authoritative_0
;
11965 TALLOC_CTX
*_mem_save_flags_0
;
11966 if (flags
& NDR_IN
) {
11967 ZERO_STRUCT(r
->out
);
11969 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
11970 if (_ptr_server_name
) {
11971 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
11973 r
->in
.server_name
= NULL
;
11975 if (r
->in
.server_name
) {
11976 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11977 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
11978 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
11979 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
11980 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
11981 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
11983 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
11984 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
11985 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
11987 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
11988 if (_ptr_computer_name
) {
11989 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
11991 r
->in
.computer_name
= NULL
;
11993 if (r
->in
.computer_name
) {
11994 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11995 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
11996 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
11997 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
11998 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
11999 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
12001 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12002 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
12003 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
12005 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
12006 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
12007 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
12008 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
12009 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12010 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
12012 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12013 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
12014 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
12015 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
12016 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
12017 ZERO_STRUCTP(r
->out
.validation
);
12018 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
12019 ZERO_STRUCTP(r
->out
.authoritative
);
12020 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
12021 *r
->out
.flags
= *r
->in
.flags
;
12023 if (flags
& NDR_OUT
) {
12024 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12025 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
12027 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12028 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
12029 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
12030 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
12031 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
12032 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12033 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
12035 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12036 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
12037 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
12038 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
12039 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12040 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
12042 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12043 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
12044 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
12045 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
12046 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12048 return NT_STATUS_OK
;
12051 _PUBLIC_
void ndr_print_netr_LogonSamLogonEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonEx
*r
)
12053 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonEx");
12055 if (flags
& NDR_SET_VALUES
) {
12056 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12058 if (flags
& NDR_IN
) {
12059 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonEx");
12061 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12063 if (r
->in
.server_name
) {
12064 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12067 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
12069 if (r
->in
.computer_name
) {
12070 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12073 ndr_print_uint16(ndr
, "logon_level", r
->in
.logon_level
);
12074 ndr_print_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
);
12075 ndr_print_netr_LogonLevel(ndr
, "logon", &r
->in
.logon
);
12076 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
12077 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
12079 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
12083 if (flags
& NDR_OUT
) {
12084 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonEx");
12086 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
12088 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
12089 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
12091 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
12093 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
12095 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
12097 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
12099 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12105 NTSTATUS
ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push
*ndr
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
12107 uint32_t cntr_trusts_1
;
12108 if (flags
& NDR_IN
) {
12109 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
12110 if (r
->in
.server_name
) {
12111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12112 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12113 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12114 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12116 NDR_CHECK(ndr_push_netr_TrustFlags(ndr
, NDR_SCALARS
, r
->in
.trust_flags
));
12118 if (flags
& NDR_OUT
) {
12119 if (r
->out
.count
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
12120 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
12121 if (r
->out
.trusts
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
12122 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
12123 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->out
.count
; cntr_trusts_1
++) {
12124 if (r
->out
.trusts
[cntr_trusts_1
] == NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
12125 NDR_CHECK(ndr_push_ref_ptr(ndr
));
12127 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->out
.count
; cntr_trusts_1
++) {
12128 NDR_CHECK(ndr_push_netr_DomainTrust(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
[cntr_trusts_1
]));
12130 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12132 return NT_STATUS_OK
;
12135 NTSTATUS
ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull
*ndr
, int flags
, struct netr_DsrEnumerateDomainTrusts
*r
)
12137 uint32_t _ptr_server_name
;
12138 uint32_t _ptr_trusts
;
12139 uint32_t cntr_trusts_1
;
12140 TALLOC_CTX
*_mem_save_server_name_0
;
12141 TALLOC_CTX
*_mem_save_count_0
;
12142 TALLOC_CTX
*_mem_save_trusts_1
;
12143 TALLOC_CTX
*_mem_save_trusts_2
;
12144 if (flags
& NDR_IN
) {
12145 ZERO_STRUCT(r
->out
);
12147 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
12148 if (_ptr_server_name
) {
12149 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
12151 r
->in
.server_name
= NULL
;
12153 if (r
->in
.server_name
) {
12154 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12155 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
12156 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12157 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12158 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12159 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
12161 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12162 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
12163 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
12165 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr
, NDR_SCALARS
, &r
->in
.trust_flags
));
12166 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
12167 ZERO_STRUCTP(r
->out
.count
);
12168 NDR_PULL_ALLOC_N(ndr
, r
->out
.trusts
, count
);
12169 memset(r
->out
.trusts
, 0, count
* sizeof(*r
->out
.trusts
));
12171 if (flags
& NDR_OUT
) {
12172 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12173 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
12175 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12176 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
12177 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
12178 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
12179 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.trusts
));
12180 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12181 NDR_PULL_ALLOC_N(ndr
, r
->out
.trusts
, ndr_get_array_size(ndr
, &r
->out
.trusts
));
12183 _mem_save_trusts_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12184 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusts
, 0);
12185 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->out
.count
; cntr_trusts_1
++) {
12186 NDR_CHECK(ndr_pull_ref_ptr(ndr
, &_ptr_trusts
));
12187 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12188 NDR_PULL_ALLOC(ndr
, r
->out
.trusts
[cntr_trusts_1
]);
12191 for (cntr_trusts_1
= 0; cntr_trusts_1
< r
->out
.count
; cntr_trusts_1
++) {
12192 _mem_save_trusts_2
= NDR_PULL_GET_MEM_CTX(ndr
);
12193 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.trusts
[cntr_trusts_1
], LIBNDR_FLAG_REF_ALLOC
);
12194 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.trusts
[cntr_trusts_1
]));
12195 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_2
, LIBNDR_FLAG_REF_ALLOC
);
12197 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_trusts_1
, 0);
12198 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12199 if (r
->out
.trusts
) {
12200 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.trusts
, r
->out
.count
));
12203 return NT_STATUS_OK
;
12206 _PUBLIC_
void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DsrEnumerateDomainTrusts
*r
)
12208 uint32_t cntr_trusts_1
;
12209 ndr_print_struct(ndr
, name
, "netr_DsrEnumerateDomainTrusts");
12211 if (flags
& NDR_SET_VALUES
) {
12212 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12214 if (flags
& NDR_IN
) {
12215 ndr_print_struct(ndr
, "in", "netr_DsrEnumerateDomainTrusts");
12217 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12219 if (r
->in
.server_name
) {
12220 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12223 ndr_print_netr_TrustFlags(ndr
, "trust_flags", r
->in
.trust_flags
);
12226 if (flags
& NDR_OUT
) {
12227 ndr_print_struct(ndr
, "out", "netr_DsrEnumerateDomainTrusts");
12229 ndr_print_ptr(ndr
, "count", r
->out
.count
);
12231 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
12233 ndr_print_ptr(ndr
, "trusts", r
->out
.trusts
);
12235 ndr
->print(ndr
, "%s: ARRAY(%d)", "trusts", r
->out
.count
);
12237 for (cntr_trusts_1
=0;cntr_trusts_1
<r
->out
.count
;cntr_trusts_1
++) {
12239 asprintf(&idx_1
, "[%d]", cntr_trusts_1
);
12241 ndr_print_ptr(ndr
, "trusts", r
->out
.trusts
[cntr_trusts_1
]);
12243 ndr_print_netr_DomainTrust(ndr
, "trusts", r
->out
.trusts
[cntr_trusts_1
]);
12250 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12256 NTSTATUS
ndr_push_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_push
*ndr
, int flags
, const struct netr_DSRDEREGISTERDNSHOSTRECORDS
*r
)
12258 if (flags
& NDR_IN
) {
12260 if (flags
& NDR_OUT
) {
12261 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12263 return NT_STATUS_OK
;
12266 NTSTATUS
ndr_pull_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_pull
*ndr
, int flags
, struct netr_DSRDEREGISTERDNSHOSTRECORDS
*r
)
12268 if (flags
& NDR_IN
) {
12270 if (flags
& NDR_OUT
) {
12271 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12273 return NT_STATUS_OK
;
12276 _PUBLIC_
void ndr_print_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DSRDEREGISTERDNSHOSTRECORDS
*r
)
12278 ndr_print_struct(ndr
, name
, "netr_DSRDEREGISTERDNSHOSTRECORDS");
12280 if (flags
& NDR_SET_VALUES
) {
12281 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12283 if (flags
& NDR_IN
) {
12284 ndr_print_struct(ndr
, "in", "netr_DSRDEREGISTERDNSHOSTRECORDS");
12288 if (flags
& NDR_OUT
) {
12289 ndr_print_struct(ndr
, "out", "netr_DSRDEREGISTERDNSHOSTRECORDS");
12291 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12297 NTSTATUS
ndr_push_netr_NETRSERVERTRUSTPASSWORDSGET(struct ndr_push
*ndr
, int flags
, const struct netr_NETRSERVERTRUSTPASSWORDSGET
*r
)
12299 if (flags
& NDR_IN
) {
12301 if (flags
& NDR_OUT
) {
12302 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12304 return NT_STATUS_OK
;
12307 NTSTATUS
ndr_pull_netr_NETRSERVERTRUSTPASSWORDSGET(struct ndr_pull
*ndr
, int flags
, struct netr_NETRSERVERTRUSTPASSWORDSGET
*r
)
12309 if (flags
& NDR_IN
) {
12311 if (flags
& NDR_OUT
) {
12312 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12314 return NT_STATUS_OK
;
12317 _PUBLIC_
void ndr_print_netr_NETRSERVERTRUSTPASSWORDSGET(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRSERVERTRUSTPASSWORDSGET
*r
)
12319 ndr_print_struct(ndr
, name
, "netr_NETRSERVERTRUSTPASSWORDSGET");
12321 if (flags
& NDR_SET_VALUES
) {
12322 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12324 if (flags
& NDR_IN
) {
12325 ndr_print_struct(ndr
, "in", "netr_NETRSERVERTRUSTPASSWORDSGET");
12329 if (flags
& NDR_OUT
) {
12330 ndr_print_struct(ndr
, "out", "netr_NETRSERVERTRUSTPASSWORDSGET");
12332 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12338 NTSTATUS
ndr_push_netr_DSRGETFORESTTRUSTINFORMATION(struct ndr_push
*ndr
, int flags
, const struct netr_DSRGETFORESTTRUSTINFORMATION
*r
)
12340 if (flags
& NDR_IN
) {
12342 if (flags
& NDR_OUT
) {
12343 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12345 return NT_STATUS_OK
;
12348 NTSTATUS
ndr_pull_netr_DSRGETFORESTTRUSTINFORMATION(struct ndr_pull
*ndr
, int flags
, struct netr_DSRGETFORESTTRUSTINFORMATION
*r
)
12350 if (flags
& NDR_IN
) {
12352 if (flags
& NDR_OUT
) {
12353 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12355 return NT_STATUS_OK
;
12358 _PUBLIC_
void ndr_print_netr_DSRGETFORESTTRUSTINFORMATION(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_DSRGETFORESTTRUSTINFORMATION
*r
)
12360 ndr_print_struct(ndr
, name
, "netr_DSRGETFORESTTRUSTINFORMATION");
12362 if (flags
& NDR_SET_VALUES
) {
12363 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12365 if (flags
& NDR_IN
) {
12366 ndr_print_struct(ndr
, "in", "netr_DSRGETFORESTTRUSTINFORMATION");
12370 if (flags
& NDR_OUT
) {
12371 ndr_print_struct(ndr
, "out", "netr_DSRGETFORESTTRUSTINFORMATION");
12373 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12379 NTSTATUS
ndr_push_netr_NETRGETFORESTTRUSTINFORMATION(struct ndr_push
*ndr
, int flags
, const struct netr_NETRGETFORESTTRUSTINFORMATION
*r
)
12381 if (flags
& NDR_IN
) {
12383 if (flags
& NDR_OUT
) {
12384 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12386 return NT_STATUS_OK
;
12389 NTSTATUS
ndr_pull_netr_NETRGETFORESTTRUSTINFORMATION(struct ndr_pull
*ndr
, int flags
, struct netr_NETRGETFORESTTRUSTINFORMATION
*r
)
12391 if (flags
& NDR_IN
) {
12393 if (flags
& NDR_OUT
) {
12394 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12396 return NT_STATUS_OK
;
12399 _PUBLIC_
void ndr_print_netr_NETRGETFORESTTRUSTINFORMATION(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRGETFORESTTRUSTINFORMATION
*r
)
12401 ndr_print_struct(ndr
, name
, "netr_NETRGETFORESTTRUSTINFORMATION");
12403 if (flags
& NDR_SET_VALUES
) {
12404 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12406 if (flags
& NDR_IN
) {
12407 ndr_print_struct(ndr
, "in", "netr_NETRGETFORESTTRUSTINFORMATION");
12411 if (flags
& NDR_OUT
) {
12412 ndr_print_struct(ndr
, "out", "netr_NETRGETFORESTTRUSTINFORMATION");
12414 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12420 NTSTATUS
ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push
*ndr
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
12422 if (flags
& NDR_IN
) {
12423 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
12424 if (r
->in
.server_name
) {
12425 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12426 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12427 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
12428 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server_name
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12430 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.computer_name
));
12431 if (r
->in
.computer_name
) {
12432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12433 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
)));
12435 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.computer_name
, ndr_charset_length(r
->in
.computer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12437 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.credential
));
12438 if (r
->in
.credential
) {
12439 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12441 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.return_authenticator
));
12442 if (r
->in
.return_authenticator
) {
12443 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12445 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.logon_level
));
12446 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
12447 NDR_CHECK(ndr_push_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
12448 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->in
.validation_level
));
12449 if (r
->in
.flags
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
12450 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.flags
));
12452 if (flags
& NDR_OUT
) {
12453 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.return_authenticator
));
12454 if (r
->out
.return_authenticator
) {
12455 NDR_CHECK(ndr_push_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12457 if (r
->out
.validation
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
12458 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
12459 NDR_CHECK(ndr_push_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
12460 if (r
->out
.authoritative
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
12461 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, *r
->out
.authoritative
));
12462 if (r
->out
.flags
== NULL
) return NT_STATUS_INVALID_PARAMETER_MIX
;
12463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.flags
));
12464 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->out
.result
));
12466 return NT_STATUS_OK
;
12469 NTSTATUS
ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull
*ndr
, int flags
, struct netr_LogonSamLogonWithFlags
*r
)
12471 uint32_t _ptr_server_name
;
12472 uint32_t _ptr_computer_name
;
12473 uint32_t _ptr_credential
;
12474 uint32_t _ptr_return_authenticator
;
12475 TALLOC_CTX
*_mem_save_server_name_0
;
12476 TALLOC_CTX
*_mem_save_computer_name_0
;
12477 TALLOC_CTX
*_mem_save_credential_0
;
12478 TALLOC_CTX
*_mem_save_return_authenticator_0
;
12479 TALLOC_CTX
*_mem_save_validation_0
;
12480 TALLOC_CTX
*_mem_save_authoritative_0
;
12481 TALLOC_CTX
*_mem_save_flags_0
;
12482 if (flags
& NDR_IN
) {
12483 ZERO_STRUCT(r
->out
);
12485 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
12486 if (_ptr_server_name
) {
12487 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
12489 r
->in
.server_name
= NULL
;
12491 if (r
->in
.server_name
) {
12492 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12493 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
12494 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
12495 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
12496 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
12497 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
12499 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
12500 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
12501 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
12503 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_name
));
12504 if (_ptr_computer_name
) {
12505 NDR_PULL_ALLOC(ndr
, r
->in
.computer_name
);
12507 r
->in
.computer_name
= NULL
;
12509 if (r
->in
.computer_name
) {
12510 _mem_save_computer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12511 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.computer_name
, 0);
12512 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.computer_name
));
12513 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.computer_name
));
12514 if (ndr_get_array_length(ndr
, &r
->in
.computer_name
) > ndr_get_array_size(ndr
, &r
->in
.computer_name
)) {
12515 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.computer_name
), ndr_get_array_length(ndr
, &r
->in
.computer_name
));
12517 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t)));
12518 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.computer_name
, ndr_get_array_length(ndr
, &r
->in
.computer_name
), sizeof(uint16_t), CH_UTF16
));
12519 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_name_0
, 0);
12521 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_credential
));
12522 if (_ptr_credential
) {
12523 NDR_PULL_ALLOC(ndr
, r
->in
.credential
);
12525 r
->in
.credential
= NULL
;
12527 if (r
->in
.credential
) {
12528 _mem_save_credential_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12529 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.credential
, 0);
12530 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.credential
));
12531 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_credential_0
, 0);
12533 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
12534 if (_ptr_return_authenticator
) {
12535 NDR_PULL_ALLOC(ndr
, r
->in
.return_authenticator
);
12537 r
->in
.return_authenticator
= NULL
;
12539 if (r
->in
.return_authenticator
) {
12540 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12541 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.return_authenticator
, 0);
12542 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->in
.return_authenticator
));
12543 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
12545 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.logon_level
));
12546 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
));
12547 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.logon
));
12548 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->in
.validation_level
));
12549 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12550 NDR_PULL_ALLOC(ndr
, r
->in
.flags
);
12552 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12553 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.flags
, LIBNDR_FLAG_REF_ALLOC
);
12554 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.flags
));
12555 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
12556 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
12557 ZERO_STRUCTP(r
->out
.validation
);
12558 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
12559 ZERO_STRUCTP(r
->out
.authoritative
);
12560 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
12561 *r
->out
.flags
= *r
->in
.flags
;
12563 if (flags
& NDR_OUT
) {
12564 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_return_authenticator
));
12565 if (_ptr_return_authenticator
) {
12566 NDR_PULL_ALLOC(ndr
, r
->out
.return_authenticator
);
12568 r
->out
.return_authenticator
= NULL
;
12570 if (r
->out
.return_authenticator
) {
12571 _mem_save_return_authenticator_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12572 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.return_authenticator
, 0);
12573 NDR_CHECK(ndr_pull_netr_Authenticator(ndr
, NDR_SCALARS
, r
->out
.return_authenticator
));
12574 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_return_authenticator_0
, 0);
12576 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12577 NDR_PULL_ALLOC(ndr
, r
->out
.validation
);
12579 _mem_save_validation_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12580 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.validation
, LIBNDR_FLAG_REF_ALLOC
);
12581 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
));
12582 NDR_CHECK(ndr_pull_netr_Validation(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.validation
));
12583 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_validation_0
, LIBNDR_FLAG_REF_ALLOC
);
12584 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12585 NDR_PULL_ALLOC(ndr
, r
->out
.authoritative
);
12587 _mem_save_authoritative_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12588 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.authoritative
, LIBNDR_FLAG_REF_ALLOC
);
12589 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, r
->out
.authoritative
));
12590 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_authoritative_0
, LIBNDR_FLAG_REF_ALLOC
);
12591 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12592 NDR_PULL_ALLOC(ndr
, r
->out
.flags
);
12594 _mem_save_flags_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12595 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.flags
, LIBNDR_FLAG_REF_ALLOC
);
12596 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.flags
));
12597 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_flags_0
, LIBNDR_FLAG_REF_ALLOC
);
12598 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->out
.result
));
12600 return NT_STATUS_OK
;
12603 _PUBLIC_
void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_LogonSamLogonWithFlags
*r
)
12605 ndr_print_struct(ndr
, name
, "netr_LogonSamLogonWithFlags");
12607 if (flags
& NDR_SET_VALUES
) {
12608 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12610 if (flags
& NDR_IN
) {
12611 ndr_print_struct(ndr
, "in", "netr_LogonSamLogonWithFlags");
12613 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
12615 if (r
->in
.server_name
) {
12616 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
12619 ndr_print_ptr(ndr
, "computer_name", r
->in
.computer_name
);
12621 if (r
->in
.computer_name
) {
12622 ndr_print_string(ndr
, "computer_name", r
->in
.computer_name
);
12625 ndr_print_ptr(ndr
, "credential", r
->in
.credential
);
12627 if (r
->in
.credential
) {
12628 ndr_print_netr_Authenticator(ndr
, "credential", r
->in
.credential
);
12631 ndr_print_ptr(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12633 if (r
->in
.return_authenticator
) {
12634 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->in
.return_authenticator
);
12637 ndr_print_uint16(ndr
, "logon_level", r
->in
.logon_level
);
12638 ndr_print_set_switch_value(ndr
, &r
->in
.logon
, r
->in
.logon_level
);
12639 ndr_print_netr_LogonLevel(ndr
, "logon", &r
->in
.logon
);
12640 ndr_print_uint16(ndr
, "validation_level", r
->in
.validation_level
);
12641 ndr_print_ptr(ndr
, "flags", r
->in
.flags
);
12643 ndr_print_uint32(ndr
, "flags", *r
->in
.flags
);
12647 if (flags
& NDR_OUT
) {
12648 ndr_print_struct(ndr
, "out", "netr_LogonSamLogonWithFlags");
12650 ndr_print_ptr(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12652 if (r
->out
.return_authenticator
) {
12653 ndr_print_netr_Authenticator(ndr
, "return_authenticator", r
->out
.return_authenticator
);
12656 ndr_print_ptr(ndr
, "validation", r
->out
.validation
);
12658 ndr_print_set_switch_value(ndr
, r
->out
.validation
, r
->in
.validation_level
);
12659 ndr_print_netr_Validation(ndr
, "validation", r
->out
.validation
);
12661 ndr_print_ptr(ndr
, "authoritative", r
->out
.authoritative
);
12663 ndr_print_uint8(ndr
, "authoritative", *r
->out
.authoritative
);
12665 ndr_print_ptr(ndr
, "flags", r
->out
.flags
);
12667 ndr_print_uint32(ndr
, "flags", *r
->out
.flags
);
12669 ndr_print_NTSTATUS(ndr
, "result", r
->out
.result
);
12675 NTSTATUS
ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push
*ndr
, int flags
, const struct netr_NETRSERVERGETTRUSTINFO
*r
)
12677 if (flags
& NDR_IN
) {
12679 if (flags
& NDR_OUT
) {
12680 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12682 return NT_STATUS_OK
;
12685 NTSTATUS
ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull
*ndr
, int flags
, struct netr_NETRSERVERGETTRUSTINFO
*r
)
12687 if (flags
& NDR_IN
) {
12689 if (flags
& NDR_OUT
) {
12690 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12692 return NT_STATUS_OK
;
12695 _PUBLIC_
void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print
*ndr
, const char *name
, int flags
, const struct netr_NETRSERVERGETTRUSTINFO
*r
)
12697 ndr_print_struct(ndr
, name
, "netr_NETRSERVERGETTRUSTINFO");
12699 if (flags
& NDR_SET_VALUES
) {
12700 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12702 if (flags
& NDR_IN
) {
12703 ndr_print_struct(ndr
, "in", "netr_NETRSERVERGETTRUSTINFO");
12707 if (flags
& NDR_OUT
) {
12708 ndr_print_struct(ndr
, "out", "netr_NETRSERVERGETTRUSTINFO");
12710 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
12716 const struct dcerpc_interface_call netlogon_calls
[] = {
12718 "netr_LogonUasLogon",
12719 sizeof(struct netr_LogonUasLogon
),
12720 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogon
,
12721 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogon
,
12722 (ndr_print_function_t
) ndr_print_netr_LogonUasLogon
,
12726 "netr_LogonUasLogoff",
12727 sizeof(struct netr_LogonUasLogoff
),
12728 (ndr_push_flags_fn_t
) ndr_push_netr_LogonUasLogoff
,
12729 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonUasLogoff
,
12730 (ndr_print_function_t
) ndr_print_netr_LogonUasLogoff
,
12734 "netr_LogonSamLogon",
12735 sizeof(struct netr_LogonSamLogon
),
12736 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogon
,
12737 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogon
,
12738 (ndr_print_function_t
) ndr_print_netr_LogonSamLogon
,
12742 "netr_LogonSamLogoff",
12743 sizeof(struct netr_LogonSamLogoff
),
12744 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogoff
,
12745 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogoff
,
12746 (ndr_print_function_t
) ndr_print_netr_LogonSamLogoff
,
12750 "netr_ServerReqChallenge",
12751 sizeof(struct netr_ServerReqChallenge
),
12752 (ndr_push_flags_fn_t
) ndr_push_netr_ServerReqChallenge
,
12753 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerReqChallenge
,
12754 (ndr_print_function_t
) ndr_print_netr_ServerReqChallenge
,
12758 "netr_ServerAuthenticate",
12759 sizeof(struct netr_ServerAuthenticate
),
12760 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate
,
12761 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate
,
12762 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate
,
12766 "netr_ServerPasswordSet",
12767 sizeof(struct netr_ServerPasswordSet
),
12768 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet
,
12769 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet
,
12770 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet
,
12774 "netr_DatabaseDeltas",
12775 sizeof(struct netr_DatabaseDeltas
),
12776 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseDeltas
,
12777 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseDeltas
,
12778 (ndr_print_function_t
) ndr_print_netr_DatabaseDeltas
,
12782 "netr_DatabaseSync",
12783 sizeof(struct netr_DatabaseSync
),
12784 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync
,
12785 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync
,
12786 (ndr_print_function_t
) ndr_print_netr_DatabaseSync
,
12790 "netr_AccountDeltas",
12791 sizeof(struct netr_AccountDeltas
),
12792 (ndr_push_flags_fn_t
) ndr_push_netr_AccountDeltas
,
12793 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountDeltas
,
12794 (ndr_print_function_t
) ndr_print_netr_AccountDeltas
,
12798 "netr_AccountSync",
12799 sizeof(struct netr_AccountSync
),
12800 (ndr_push_flags_fn_t
) ndr_push_netr_AccountSync
,
12801 (ndr_pull_flags_fn_t
) ndr_pull_netr_AccountSync
,
12802 (ndr_print_function_t
) ndr_print_netr_AccountSync
,
12807 sizeof(struct netr_GetDcName
),
12808 (ndr_push_flags_fn_t
) ndr_push_netr_GetDcName
,
12809 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetDcName
,
12810 (ndr_print_function_t
) ndr_print_netr_GetDcName
,
12814 "netr_LogonControl",
12815 sizeof(struct netr_LogonControl
),
12816 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl
,
12817 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl
,
12818 (ndr_print_function_t
) ndr_print_netr_LogonControl
,
12822 "netr_GetAnyDCName",
12823 sizeof(struct netr_GetAnyDCName
),
12824 (ndr_push_flags_fn_t
) ndr_push_netr_GetAnyDCName
,
12825 (ndr_pull_flags_fn_t
) ndr_pull_netr_GetAnyDCName
,
12826 (ndr_print_function_t
) ndr_print_netr_GetAnyDCName
,
12830 "netr_LogonControl2",
12831 sizeof(struct netr_LogonControl2
),
12832 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2
,
12833 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2
,
12834 (ndr_print_function_t
) ndr_print_netr_LogonControl2
,
12838 "netr_ServerAuthenticate2",
12839 sizeof(struct netr_ServerAuthenticate2
),
12840 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate2
,
12841 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate2
,
12842 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate2
,
12846 "netr_DatabaseSync2",
12847 sizeof(struct netr_DatabaseSync2
),
12848 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseSync2
,
12849 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseSync2
,
12850 (ndr_print_function_t
) ndr_print_netr_DatabaseSync2
,
12854 "netr_DatabaseRedo",
12855 sizeof(struct netr_DatabaseRedo
),
12856 (ndr_push_flags_fn_t
) ndr_push_netr_DatabaseRedo
,
12857 (ndr_pull_flags_fn_t
) ndr_pull_netr_DatabaseRedo
,
12858 (ndr_print_function_t
) ndr_print_netr_DatabaseRedo
,
12862 "netr_LogonControl2Ex",
12863 sizeof(struct netr_LogonControl2Ex
),
12864 (ndr_push_flags_fn_t
) ndr_push_netr_LogonControl2Ex
,
12865 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonControl2Ex
,
12866 (ndr_print_function_t
) ndr_print_netr_LogonControl2Ex
,
12870 "netr_NETRENUMERATETRUSTEDDOMAINS",
12871 sizeof(struct netr_NETRENUMERATETRUSTEDDOMAINS
),
12872 (ndr_push_flags_fn_t
) ndr_push_netr_NETRENUMERATETRUSTEDDOMAINS
,
12873 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINS
,
12874 (ndr_print_function_t
) ndr_print_netr_NETRENUMERATETRUSTEDDOMAINS
,
12878 "netr_DsRGetDCName",
12879 sizeof(struct netr_DsRGetDCName
),
12880 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCName
,
12881 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCName
,
12882 (ndr_print_function_t
) ndr_print_netr_DsRGetDCName
,
12886 "netr_NETRLOGONDUMMYROUTINE1",
12887 sizeof(struct netr_NETRLOGONDUMMYROUTINE1
),
12888 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONDUMMYROUTINE1
,
12889 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONDUMMYROUTINE1
,
12890 (ndr_print_function_t
) ndr_print_netr_NETRLOGONDUMMYROUTINE1
,
12894 "netr_NETRLOGONSETSERVICEBITS",
12895 sizeof(struct netr_NETRLOGONSETSERVICEBITS
),
12896 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSETSERVICEBITS
,
12897 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSETSERVICEBITS
,
12898 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSETSERVICEBITS
,
12902 "netr_NETRLOGONGETTRUSTRID",
12903 sizeof(struct netr_NETRLOGONGETTRUSTRID
),
12904 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONGETTRUSTRID
,
12905 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONGETTRUSTRID
,
12906 (ndr_print_function_t
) ndr_print_netr_NETRLOGONGETTRUSTRID
,
12910 "netr_NETRLOGONCOMPUTESERVERDIGEST",
12911 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST
),
12912 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST
,
12913 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST
,
12914 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST
,
12918 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
12919 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST
),
12920 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
12921 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
12922 (ndr_print_function_t
) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST
,
12926 "netr_ServerAuthenticate3",
12927 sizeof(struct netr_ServerAuthenticate3
),
12928 (ndr_push_flags_fn_t
) ndr_push_netr_ServerAuthenticate3
,
12929 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerAuthenticate3
,
12930 (ndr_print_function_t
) ndr_print_netr_ServerAuthenticate3
,
12934 "netr_DsRGetDCNameEx",
12935 sizeof(struct netr_DsRGetDCNameEx
),
12936 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx
,
12937 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx
,
12938 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx
,
12942 "netr_DsRGetSiteName",
12943 sizeof(struct netr_DsRGetSiteName
),
12944 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetSiteName
,
12945 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetSiteName
,
12946 (ndr_print_function_t
) ndr_print_netr_DsRGetSiteName
,
12950 "netr_LogonGetDomainInfo",
12951 sizeof(struct netr_LogonGetDomainInfo
),
12952 (ndr_push_flags_fn_t
) ndr_push_netr_LogonGetDomainInfo
,
12953 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonGetDomainInfo
,
12954 (ndr_print_function_t
) ndr_print_netr_LogonGetDomainInfo
,
12958 "netr_ServerPasswordSet2",
12959 sizeof(struct netr_ServerPasswordSet2
),
12960 (ndr_push_flags_fn_t
) ndr_push_netr_ServerPasswordSet2
,
12961 (ndr_pull_flags_fn_t
) ndr_pull_netr_ServerPasswordSet2
,
12962 (ndr_print_function_t
) ndr_print_netr_ServerPasswordSet2
,
12966 "netr_NETRSERVERPASSWORDGET",
12967 sizeof(struct netr_NETRSERVERPASSWORDGET
),
12968 (ndr_push_flags_fn_t
) ndr_push_netr_NETRSERVERPASSWORDGET
,
12969 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRSERVERPASSWORDGET
,
12970 (ndr_print_function_t
) ndr_print_netr_NETRSERVERPASSWORDGET
,
12974 "netr_NETRLOGONSENDTOSAM",
12975 sizeof(struct netr_NETRLOGONSENDTOSAM
),
12976 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONSENDTOSAM
,
12977 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONSENDTOSAM
,
12978 (ndr_print_function_t
) ndr_print_netr_NETRLOGONSENDTOSAM
,
12982 "netr_DSRADDRESSTOSITENAMESW",
12983 sizeof(struct netr_DSRADDRESSTOSITENAMESW
),
12984 (ndr_push_flags_fn_t
) ndr_push_netr_DSRADDRESSTOSITENAMESW
,
12985 (ndr_pull_flags_fn_t
) ndr_pull_netr_DSRADDRESSTOSITENAMESW
,
12986 (ndr_print_function_t
) ndr_print_netr_DSRADDRESSTOSITENAMESW
,
12990 "netr_DsRGetDCNameEx2",
12991 sizeof(struct netr_DsRGetDCNameEx2
),
12992 (ndr_push_flags_fn_t
) ndr_push_netr_DsRGetDCNameEx2
,
12993 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsRGetDCNameEx2
,
12994 (ndr_print_function_t
) ndr_print_netr_DsRGetDCNameEx2
,
12998 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
12999 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
),
13000 (ndr_push_flags_fn_t
) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
13001 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
13002 (ndr_print_function_t
) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN
,
13006 "netr_NETRENUMERATETRUSTEDDOMAINSEX",
13007 sizeof(struct netr_NETRENUMERATETRUSTEDDOMAINSEX
),
13008 (ndr_push_flags_fn_t
) ndr_push_netr_NETRENUMERATETRUSTEDDOMAINSEX
,
13009 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRENUMERATETRUSTEDDOMAINSEX
,
13010 (ndr_print_function_t
) ndr_print_netr_NETRENUMERATETRUSTEDDOMAINSEX
,
13014 "netr_DSRADDRESSTOSITENAMESEXW",
13015 sizeof(struct netr_DSRADDRESSTOSITENAMESEXW
),
13016 (ndr_push_flags_fn_t
) ndr_push_netr_DSRADDRESSTOSITENAMESEXW
,
13017 (ndr_pull_flags_fn_t
) ndr_pull_netr_DSRADDRESSTOSITENAMESEXW
,
13018 (ndr_print_function_t
) ndr_print_netr_DSRADDRESSTOSITENAMESEXW
,
13022 "netr_DSRGETDCSITECOVERAGEW",
13023 sizeof(struct netr_DSRGETDCSITECOVERAGEW
),
13024 (ndr_push_flags_fn_t
) ndr_push_netr_DSRGETDCSITECOVERAGEW
,
13025 (ndr_pull_flags_fn_t
) ndr_pull_netr_DSRGETDCSITECOVERAGEW
,
13026 (ndr_print_function_t
) ndr_print_netr_DSRGETDCSITECOVERAGEW
,
13030 "netr_LogonSamLogonEx",
13031 sizeof(struct netr_LogonSamLogonEx
),
13032 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonEx
,
13033 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonEx
,
13034 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonEx
,
13038 "netr_DsrEnumerateDomainTrusts",
13039 sizeof(struct netr_DsrEnumerateDomainTrusts
),
13040 (ndr_push_flags_fn_t
) ndr_push_netr_DsrEnumerateDomainTrusts
,
13041 (ndr_pull_flags_fn_t
) ndr_pull_netr_DsrEnumerateDomainTrusts
,
13042 (ndr_print_function_t
) ndr_print_netr_DsrEnumerateDomainTrusts
,
13046 "netr_DSRDEREGISTERDNSHOSTRECORDS",
13047 sizeof(struct netr_DSRDEREGISTERDNSHOSTRECORDS
),
13048 (ndr_push_flags_fn_t
) ndr_push_netr_DSRDEREGISTERDNSHOSTRECORDS
,
13049 (ndr_pull_flags_fn_t
) ndr_pull_netr_DSRDEREGISTERDNSHOSTRECORDS
,
13050 (ndr_print_function_t
) ndr_print_netr_DSRDEREGISTERDNSHOSTRECORDS
,
13054 "netr_NETRSERVERTRUSTPASSWORDSGET",
13055 sizeof(struct netr_NETRSERVERTRUSTPASSWORDSGET
),
13056 (ndr_push_flags_fn_t
) ndr_push_netr_NETRSERVERTRUSTPASSWORDSGET
,
13057 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRSERVERTRUSTPASSWORDSGET
,
13058 (ndr_print_function_t
) ndr_print_netr_NETRSERVERTRUSTPASSWORDSGET
,
13062 "netr_DSRGETFORESTTRUSTINFORMATION",
13063 sizeof(struct netr_DSRGETFORESTTRUSTINFORMATION
),
13064 (ndr_push_flags_fn_t
) ndr_push_netr_DSRGETFORESTTRUSTINFORMATION
,
13065 (ndr_pull_flags_fn_t
) ndr_pull_netr_DSRGETFORESTTRUSTINFORMATION
,
13066 (ndr_print_function_t
) ndr_print_netr_DSRGETFORESTTRUSTINFORMATION
,
13070 "netr_NETRGETFORESTTRUSTINFORMATION",
13071 sizeof(struct netr_NETRGETFORESTTRUSTINFORMATION
),
13072 (ndr_push_flags_fn_t
) ndr_push_netr_NETRGETFORESTTRUSTINFORMATION
,
13073 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRGETFORESTTRUSTINFORMATION
,
13074 (ndr_print_function_t
) ndr_print_netr_NETRGETFORESTTRUSTINFORMATION
,
13078 "netr_LogonSamLogonWithFlags",
13079 sizeof(struct netr_LogonSamLogonWithFlags
),
13080 (ndr_push_flags_fn_t
) ndr_push_netr_LogonSamLogonWithFlags
,
13081 (ndr_pull_flags_fn_t
) ndr_pull_netr_LogonSamLogonWithFlags
,
13082 (ndr_print_function_t
) ndr_print_netr_LogonSamLogonWithFlags
,
13086 "netr_NETRSERVERGETTRUSTINFO",
13087 sizeof(struct netr_NETRSERVERGETTRUSTINFO
),
13088 (ndr_push_flags_fn_t
) ndr_push_netr_NETRSERVERGETTRUSTINFO
,
13089 (ndr_pull_flags_fn_t
) ndr_pull_netr_NETRSERVERGETTRUSTINFO
,
13090 (ndr_print_function_t
) ndr_print_netr_NETRSERVERGETTRUSTINFO
,
13093 { NULL
, 0, NULL
, NULL
, NULL
, False
}
13096 const char * const netlogon_endpoint_strings
[] = {
13097 "ncacn_np:[\\pipe\\netlogon]",
13102 const struct dcerpc_endpoint_list netlogon_endpoints
= {
13104 .names
= netlogon_endpoint_strings
13107 const char * const netlogon_authservice_strings
[] = {
13111 const struct dcerpc_authservice_list netlogon_authservices
= {
13113 .names
= netlogon_authservice_strings
13117 const struct dcerpc_interface_table dcerpc_table_netlogon
= {
13118 .name
= "netlogon",
13120 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
13121 DCERPC_NETLOGON_VERSION
13123 .helpstring
= DCERPC_NETLOGON_HELPSTRING
,
13125 .calls
= netlogon_calls
,
13126 .endpoints
= &netlogon_endpoints
,
13127 .authservices
= &netlogon_authservices